...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Use this event to
Excerpt |
---|
Book and Print external "Transport Orders" (or similar) in 3rd party Shipping App |
Description
This event is triggered after a Warehouse Shipment has been posted. You may use the event to:
- Create transport orders (or similar) for the Whse. Shipment in the 3rd party Shipping App (or use Shipping Provider ConnectorOnPostPackingOnBeforePostWarehouseShipment (MOS) OnPostPackingOnBeforePostWarehouseShipment event if you want the Transport Order to be created prior to posting)
- Create transport order packages (or similar) based on untransferred license plates
- Mark untransferred license plates as now already Transferred to Shipping.
- Book transport orders (or similar) in the 3rd party Shipping App
- Print related documents from the 3rd party Shipping App.
Note: This event is similar to base event "Whse.-Post Shipment.OnAfterPostWhseShipment.It is included in the codeunit "MOS Pack API" for , but is a more accessible "interface" (all neccessary events are in one codeunit).
See also: Write Transaction Data to 3rd party Shipping ProviderApp
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"
Version History
Version | Changes |
---|---|
MOB5.42 | Introduced |
...