Table 7704 Item Identifier, source in 29
Source29
src/Layers/W1/BaseApp/Warehouse/ADCS/ItemIdentifier.Table.al135 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Warehouse.ADCS;
using Microsoft.Inventory.Item;
table 7704 "Item Identifier"
{
Caption = 'Item Identifier';
DataCaptionFields = "Code", "Item No.";
DrillDownPageID = "Item Identifiers List";
LookupPageID = "Item Identifiers List";
DataClassification = CustomerContent;
fields
{
field(1; "Code"; Code[20])
{
Caption = 'Code';
ToolTip = 'Specifies a unique code for a particular item in terms that are useful for automatic data capture.';
NotBlank = true;
ExtendedDatatype = Barcode;
}
field(2; "Item No."; Code[20])
{
Caption = 'Item No.';
ToolTip = 'Specifies the number of the item to be identified by the identifier code on the line.';
TableRelation = Item;
trigger OnValidate()
begin
GetItem();
end;
}
field(3; "Variant Code"; Code[10])
{
Caption = 'Variant Code';
ToolTip = 'Specifies the variant of the item on the line.';
TableRelation = "Item Variant".Code where("Item No." = field("Item No."));
trigger OnValidate()
var
ItemVariant: Record "Item Variant";
begin
if "Variant Code" <> '' then
ItemVariant.Get("Item No.", "Variant Code");
end;
}
field(4; "Unit of Measure Code"; Code[10])
{
Caption = 'Unit of Measure Code';
ToolTip = 'Specifies how each unit of the item or resource is measured, such as in pieces or hours. By default, the value in the Base Unit of Measure field on the item or resource card is inserted.';
TableRelation = "Item Unit of Measure".Code where("Item No." = field("Item No."));
trigger OnValidate()
begin
if "Item No." <> '' then
GetItemUnitOfMeasure();
end;
}
}
keys
{
key(Key1; "Code")
{
Clustered = true;
}
key(Key2; "Item No.", "Variant Code", "Unit of Measure Code")
{
}
}
fieldgroups
{
}
trigger OnInsert()
begin
TestField("Item No.");
if VerifyItem() = false then
Error(Text000, "Item No.");
end;
var
Item: Record Item;
ItemUnitOfMeasure: Record "Item Unit of Measure";
#pragma warning disable AA0074
#pragma warning disable AA0470
Text000: Label 'For Item %1 Identifier exists.';
#pragma warning restore AA0470
#pragma warning restore AA0074
local procedure GetItem()
begin
if Item."No." <> "Item No." then
Item.Get("Item No.");
end;
local procedure GetItemUnitOfMeasure()
begin
GetItem();
Item.TestField("No.");
if (Item."No." <> ItemUnitOfMeasure."Item No.") or
("Unit of Measure Code" <> ItemUnitOfMeasure.Code)
then
if not ItemUnitOfMeasure.Get(Item."No.", "Unit of Measure Code") then
ItemUnitOfMeasure.Get(Item."No.", Item."Base Unit of Measure");
end;
local procedure VerifyItem(): Boolean
var
ItemIdent: Record "Item Identifier";
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeVerifyItem(Rec, IsHandled);
if IsHandled then
exit(true);
ItemIdent.SetRange("Item No.", "Item No.");
ItemIdent.SetRange("Variant Code", "Variant Code");
ItemIdent.SetRange("Unit of Measure Code", "Unit of Measure Code");
exit(ItemIdent.IsEmpty);
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeVerifyItem(ItemIdentifier: Record "Item Identifier"; var IsHandled: Boolean)
begin
end;
}