Versions Compared

Key

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

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...


Info
titleMinimum Requirements
  • Extension version MOB5.27
  • Android App 1.5.9

Use this event to

Excerpt

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

...

  • Add extra steps during posting (interrupt posting to collect addtional steps)
  • Used for "conditional" steps i.e. when values from previously collected steps decides determines if the step are to be included
  • Extra steps can be collected for the "header" only. Extra steps per document line are currently not supported for planned document types
  • Posting are restarted (started over) when the additional steps have been collected on the mobile device
  • Events are executed every time posting starts over and can be used to chain even more steps.


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

See also: OnPostReceiveOrder_OnAddStepsToAnyHeader

Template

    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB WMS Receive", 'OnPostReceiveOrder_OnAddStepsToPurchaseHeader''', true, true)]
    local procedure OnPostReceiveOrder_OnAddStepsToPurchaseHeader(var _OrderValues: Record "MOB Common Element"; _PurchHeader: Record "Purchase Header"; var _StepsStepsElementRecord "MOB Steps Element")
    begin
    end;

Example

...

        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_OnAddStepsToPurchaseHeader''', true, true)]
    local procedure MyOnPostReceiveOrder_OnAddStepsToPurchaseHeader(var _OrderValues: Record "MOB Common Element"; _PurchHeader: Record "Purchase Header"; var _StepsStepsElementRecord "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 some condition to include news step(s) is not met
        // if .... then
        //    exit;


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

        // Create a new date step for manually selecting Posting Date
        _StepsStepsElement.Create_DateStep(10000'MyPostingDate');
        _StepsStepsElement.Set_header('Posting Date');
        _StepsStepsElement.Set_minDate(Today() 10);
        _StepsStepsElement.Set_maxDate(Today());
    end;
    // OnPostReceiveOrder
    // Set new posting date including using a value from conditional step 'MyPostingDate'
    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB WMS Receive", 'OnPostReceiveOrder_OnBeforePostPurchaseOrder''', true, true)]
    procedure MyOnPostReceiveOrder_OnBeforePostPurchaseOrder(var _OrderValues: Record "MOB Common Element"; var _PurchHeader: Record "Purchase Header")
    var
        PurchRelease: Codeunit "Release Purchase Document";
        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 <> _PurchHeader."Posting Date"then begin
            PurchRelease.Reopen(_PurchHeader);
            PurchRelease.SetSkipCheckReleaseRestrictions();
            _PurchHeader.SetHideValidationDialog(true);   // same behavior when reprocessing from queue ie. no "change exchange rate" confirmation
            _PurchHeader.Validate("Posting Date", PostingDate);
            PurchRelease.Run(_PurchHeader);
        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" and label = "onpost"


Version History

VersionChanges
MOB5.27Introduced