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

...

    [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 _Steps: Record "MOB Steps Element")
    begin
    end;

Example

...

...

    // OnGetReceiveOrderLines
    // Create a step in the default header collector (for purchase header 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::"Purchase 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_OnAddStepsToPurchaseHeader''', true, true)]
    local procedure MyOnPostReceiveOrder_OnAddStepsToPurchaseHeader(var _OrderValues: Record "MOB Common Element"; _PurchHeader: Record "Purchase 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 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
        _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_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"

...