Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Use this event to

Excerpt

Book and Print external "Transport Orders" (or similar) in 3rd party Shipping App

...


Note: This event is similar to base event "Whse.-Post Shipment.OnAfterPostWhseShipment, 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() 1then begin
            _TransportOrderHeader.Validate("Preferred Pick-up Date", Today() 1);
            _TransportOrderHeader.Modify(true);
        end;
        IdysTransportOrderAPI.BookAndPrint(_TransportOrderHeader);
    end;TODO

Filter by label (Content by label)
showLabelsfalse
showSpacefalse
sorttitle
titleMore examples
excerptTypesimple
cqllabel = "onafterpost" and label = "example"

Version History

VersionChanges
MOB5.42Introduced

...