Why do you need this change?
We would like to customise logic around TempWhseJnlLine."Unit of Measure Code" assignment inside CreateWhseJnlLine() in Report 5756 "Create Warehouse Location" , so we would need to have an event OnCreateWhseJnlLineOnBeforeGetItemUnitofMeasure() along with exposing GetItem() and GetItemUnitOfMeasure() procedures which are both currently local.
Describe the request
Hi Microsoft BC Dev Team,
Could you add this integration event OnCreateWhseJnlLineOnBeforeGetItemUnitofMeasure() with a IsHandled boolean inside procedure CreateWhseJnlLine() like below?
local procedure CreateWhseJnlLine(GroupedItemLedgerEntries: Query "Grouped Item Ledger Entries")
+ var
+ IsHandled: Boolean;
begin
LastLineNo += 10000;
TempWhseJnlLine.Init();
TempWhseJnlLine."Entry Type" := TempWhseJnlLine."Entry Type"::"Positive Adjmt.";
TempWhseJnlLine."Line No." := LastLineNo;
TempWhseJnlLine."Location Code" := GroupedItemLedgerEntries.Location_Code;
TempWhseJnlLine."Item No." := GroupedItemLedgerEntries.Item_No;
TempWhseJnlLine."Variant Code" := GroupedItemLedgerEntries.Variant_Code;
+ IsHandled := false;
+ OnCreateWhseJnlLineOnBeforeGetItemUnitofMeasure(TempWhseJnlLine, GroupedItemLedgerEntries, IsHandled);
+ if not IsHandled then begin
TempWhseJnlLine."Unit of Measure Code" := GroupedItemLedgerEntries.Unit_of_Measure_Code;
if TempWhseJnlLine."Unit of Measure Code" = '' then begin
GetItem(GroupedItemLedgerEntries.Item_No);
TempWhseJnlLine."Unit of Measure Code" := Item."Base Unit of Measure";
end;
GetItemUnitOfMeasure(GroupedItemLedgerEntries.Item_No, GroupedItemLedgerEntries.Unit_of_Measure_Code);
TempWhseJnlLine.Quantity := UOMMgt.CalcQtyFromBase(GroupedItemLedgerEntries.Remaining_Quantity, ItemUnitOfMeasure."Qty. per Unit of Measure");
+ end;
TempWhseJnlLine."Qty. (Base)" := GroupedItemLedgerEntries.Remaining_Quantity;
TempWhseJnlLine."Qty. (Absolute)" := Abs(TempWhseJnlLine.Quantity);
TempWhseJnlLine."Qty. (Absolute, Base)" := Abs(TempWhseJnlLine."Qty. (Base)");
TempWhseJnlLine.Cubage := TempWhseJnlLine."Qty. (Absolute)" * ItemUnitOfMeasure.Cubage;
TempWhseJnlLine.Weight := TempWhseJnlLine."Qty. (Absolute)" * ItemUnitOfMeasure.Weight;
TempWhseJnlLine."Serial No." := GroupedItemLedgerEntries.Serial_No_;
TempWhseJnlLine."Lot No." := GroupedItemLedgerEntries.Lot_No_;
TempWhseJnlLine."Package No." := GroupedItemLedgerEntries.Package_No_;
TempWhseJnlLine.Validate("Zone Code", Bin."Zone Code");
TempWhseJnlLine."Bin Code" := AdjBinCode;
TempWhseJnlLine."To Bin Code" := AdjBinCode;
WMSMgt.CheckWhseJnlLine(TempWhseJnlLine, 0, 0, false);
TempWhseJnlLine."User ID" := CopyStr(UserId(), 1, MaxStrLen(TempWhseJnlLine."User ID"));
TempWhseJnlLine."Registering Date" := WorkDate();
OnCreateWhseJnlLineOnBeforeTempWhseJnlLineInsert(TempWhseJnlLine);
TempWhseJnlLine.Insert();
end;
[IntegrationEvent(false, false)]
local procedure OnCreateWhseJnlLineOnBeforeGetItemUnitofMeasure(var WarehouseJournalLine: Record "Warehouse Journal Line"; GroupedItemLedgerEntries: Query "Grouped Item Ledger Entries"; var IsHandled: Boolean)
begin
end;
Also can we please expose both GetItem() and GetItemUnitOfMeasure() procedures in Report "Create Warehouse Location" to be external so they could get called from outside?
local procedure GetItem(ItemNo: Code[20])
begin
if Item."No." <> ItemNo then
Item.Get(ItemNo);
end;
local procedure GetItemUnitOfMeasure(ItemNo: Code[20]; UOMCode: Code[10])
begin
if (ItemUnitOfMeasure."Item No." <> ItemNo) or
(ItemUnitOfMeasure.Code <> UOMCode)
then
if not ItemUnitOfMeasure.Get(ItemNo, UOMCode) then
ItemUnitOfMeasure.Init();
end;
Regards,
Jason
Why do you need this change?
We would like to customise logic around
TempWhseJnlLine."Unit of Measure Code"assignment insideCreateWhseJnlLine()in Report 5756"Create Warehouse Location", so we would need to have an eventOnCreateWhseJnlLineOnBeforeGetItemUnitofMeasure()along with exposingGetItem()andGetItemUnitOfMeasure()procedures which are both currently local.Describe the request
Hi Microsoft BC Dev Team,
Could you add this integration event
OnCreateWhseJnlLineOnBeforeGetItemUnitofMeasure()with aIsHandledboolean inside procedureCreateWhseJnlLine()like below?Also can we please expose both
GetItem()andGetItemUnitOfMeasure()procedures in Report"Create Warehouse Location"to be external so they could get called from outside?Regards,
Jason