Versions Compared

Key

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

Use this event to

Excerpt

Interrupt Transfer Order posting and add extra steps (“Header Steps”) based on values already collected.

...


Steps with no "conditions" are better created using the OnGetReceiveOrderLines_OnAddStepsToAnyHeader-event.

See also: OnPostReceiveOrder_OnAddStepsToAnyHeader

Template

    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB WMS Receive", 'OnPostReceiveOrder_OnAddStepsToTransferHeader''', true, true)]
    local procedure OnPostReceiveOrder_OnAddStepsToTransferHeader(var _OrderValues: Record "MOB Common Element"; _TransferHeader: Record "Transfer Header"; var _Steps: Record "MOB Steps Element")
    begin
    end;

Example

  1. Create new "unconditional" RadioButton step (always displayed) using the OnGetReceiveOrderLines_OnAddStepsToAnyHeader-event
  2. Show an extra step to pick posting date from a calendar - but only if option "Other date" was selected above
  3. Set Posting Date based on values collected from all steps above (unconditional "RadioButton" and "conditional" date picker)

    // OnGetReceiveOrderLines
    // Create a step in the default header collector (for transfer orders only)
    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB WMS Receive", 'OnGetReceiveOrderLines_OnAddStepsToAnyHeader''', true, true)]
    procedure MyOnGetReceiveOrderLines_OnAddStepsToAnyHeader(_RecRef: RecordRefvar _StepsElement: Record "MOB Steps Element")
    begin
        if (_RecRef.Number() DataBase::"Transfer Header"then begin
            _StepsElement.Create_RadioButtonStep(10000'MyPostingDateRadioButtonStep');
            _StepsElement.Set_header('Posting Date');
            _StepsElement.Set_listValues('Today;Yesterday;Other date');
            _StepsElement.Set_defaultValue('Today');
        end;
    end;

    // OnPostReceiveOrder
    // Create a conditional step on posting based on collected value from the 'MyPostingDateRadioButtonStep' created above
    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB WMS Receive", 'OnPostReceiveOrder_OnAddStepsToTransferHeader''', true, true)]
    local procedure MyOnPostReceiveOrder_OnAddStepsToTransferHeader(var _OrderValues: Record "MOB Common Element"; _TransferHeader: Record "Transfer Header"; var _Steps: Record "MOB Steps Element")
    begin
        // Break when any option different from 'Other date' was selected in the 'MyPostingDateRadioButtonStep'
        if _OrderValues.GetValue('MyPostingDateRadioButtonStep'<> 'Other date' then
            exit;

        // Break if new datestep for 'Other date' is already collected to prevent infinite loop
        if _OrderValues.HasValue('MyPostingDate'then
            exit;

        // Create a new date step for manually selecting Posting Date
        _Steps.Create_DateStep(10000'MyPostingDate');
        _Steps.Set_header('Posting Date');
        _Steps.Set_minDate(Today() 10);
        _Steps.Set_maxDate(Today());
    end;

    // OnPostReceiveOrder
    // Set new posting date including using a value from conditional step 'MyPostingDate'
    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB WMS Receive", 'OnPostReceiveOrder_OnBeforePostTransferOrder''', true, true)]
    procedure MyOnPostReceiveOrder_OnBeforePostTransferOrder(var _OrderValues: Record "MOB Common Element"; var _TransferHeader: Record "Transfer Header")
    var
        PostingDate: Date;
    begin
        case _OrderValues.GetValue('MyPostingDateRadioButtonStep'of
            'Today':
                PostingDate := Today();
            'Yesterday':
                PostingDate := Today() 1;
            'Other date':
                PostingDate := _OrderValues.GetValueAsDate('MyPostingDate', true);
        end;

        if (PostingDate <> 0D) and (PostingDate <> _TransferHeader."Posting Date"then begin
            _TransferHeader.CalledFromWarehouse(true);
            _TransferHeader.Validate("Posting Date", PostingDate);
        end;
    end;


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

...