Versions Compared

Key

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

Use this event to

...

Note

The OrderLinesList for Assembly Orders includes in the same list a single (topmost) element representing 'Output', and multiple indented lines elements representing 'Consumption'.

When customizing the sortorder, this structure should be maintained. The example at the end of this article shows a way to do this (by taking advantage of the fact that topmost-element and indented elements are derived from different tables: Assembly Header and Assembly Lines).

...

    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB WMS Assembly", 'OnGetAssemblyOrderLines_OnAfterSetCurrentKey''', true, true)]
    local procedure OnGetAssemblyOrderLines_OnAfterSetCurrentKey(var _BaseOrderLineElementView: Record "MOB Ns BaseDataModel Element")
    begin
    end;

Example

    // [Example]  Change sorting to Unit Of Measure, then Item Number BUT ensure 'Output' (Assembly Header) is still displayed prior to 'Consumption' (Assembly Lines)
    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB WMS Assembly", 'OnGetAssemblyOrderLines_OnAfterSetCurrentKey''', true, true)]
    local procedure MyOnGetAssemblyOrderLines_OnAfterSetCurrentKey(var _BaseOrderLineElementView: Record "MOB Ns BaseDataModel Element")
    begin
        _BaseOrderLineElementView.SetCurrentKey("Sorting1 (internal)", UnitOfMeasure, ItemNumber);
        _BaseOrderLineElementView.Ascending(true);
    end;

    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB WMS Assembly", 'OnGetAssemblyOrderLines_OnAfterSetFromAssemblyHeader''', true, true)]
    local procedure OnGetAssemblyOrderLines_OnAfterSetFromAssemblyHeader(_AssemblyHeader: Record "Assembly Header"; var _BaseOrderLineElement: Record "MOB Ns BaseDataModel Element")
    begin
        _BaseOrderLineElement."Sorting1 (internal)" := Format(Database::"Assembly Header")// '900'  (sort before '901')
    end;

    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB WMS Assembly", 'OnGetAssemblyOrderLines_OnAfterSetFromAssemblyLine''', true, true)]
    local procedure OnGetAssemblyOrderLines_OnAfterSetFromAssemblyLine(_AssemblyLine: Record "Assembly Line"; _TrackingSpecification: Record "Tracking Specification"; var _BaseOrderLineElement: Record "MOB Ns BaseDataModel Element")
    begin
        _BaseOrderLineElement."Sorting1 (internal)" := Format(Database::"Assembly Line")// '901'  (sort after '900')
    end;



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

...