Use this event to
Excerpt |
---|
Book and Print external "Transport Orders" (or similar) in 3rd party Shipping App |
...
See also: Write Transaction Data to 3rd party Shipping App
Template
/// <remarks><remarks>
/// Redirected from standard event OnAfterPostWhseShipment to new local event for more accessible "interface" (all neccessary events in Codeunit MOS Pack API)
/// <</remarks>
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOS Pack APIMOB Pack API", 'OnPostPackingOnAfterPostWarehouseShipment', '', falsefalse, falsefalse)]
local procedure OnPostPackingOnAfterPostWarehouseShipment OnPostPackingOnAfterPostWarehouseShipment(var WarehouseShipmentHeader WarehouseShipmentHeader: Record "Warehouse Shipment HeaderWarehouse Shipment Header")
begin
end;
Example - Book and Print an existing Transport Order for a Warehouse Shipment when shipment is fully posted
...
local procedure BookAndPrintWhseShipment(var _WhseShptHeader: Record "Warehouse Shipment Header")
var
IdysTransportOrderHeader: Record "IDYS Transport Order Header";
TransportOrderNos: Dictionary of [Code[20], Code[20]]; // Assuming identical keys and values
TransportOrderNo: Code[20];
begin
CollectShipItTransportOrderNosByWhseShipment(_WhseShptHeader."No.", TransportOrderNos);
foreach TransportOrderNo in TransportOrderNos.Values() do begin
IdysTransportOrderHeader.Get(TransportOrderNo);
if IdysTransportOrderHeader.Status = IdysTransportOrderHeader.Status::New then
BookAndPrintShipItTransportOrder(IdysTransportOrderHeader);
end;
end;
local procedure BookAndPrintShipItTransportOrder(var _TransportOrderHeader: Record "IDYS Transport Order Header")
var
MobSessionData: Codeunit "MOB SessionData";
IdysTransportOrderAPI: Codeunit "IDYS Transport Order API";
begin
_TransportOrderHeader.CalcFields("Total No. of Packages");
MobSessionData.SetRegistrationTypeTracking(
MobSessionData.GetRegistrationTypeTracking() + ' / ' +
Format(_TransportOrderHeader.RecordId) + ' / ' +
StrSubstNo('Packages: %1', _TransportOrderHeader."Total No. of Packages")); // Packages to book (nay include packages previously at the Transport Order)
if _TransportOrderHeader."Total No. of Packages" = 0 then
exit; // No packages was inserted from OnAfterCreateTransportOrderLine events
// "Preferred Pick-up Date From" may be greater than CurrentDateTime() but still invalid, hence always update to tomorrow
if _TransportOrderHeader."Preferred Pick-up Date" <> (Today() + 1) then begin
_TransportOrderHeader.Validate("Preferred Pick-up Date", Today() + 1);
_TransportOrderHeader.Modify(true);
end;
IdysTransportOrderAPI.BookAndPrint(_TransportOrderHeader);
end;TODO
Filter by label (Content by label) showLabels false showSpace false sort title title More examples excerptType simple cql label = "onafterpost" and label = "example" and label = "pack"
...