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 any Receive Order posting and add extra steps (“Header Steps”) based on values already collected. Parameters includes a RecRef-instance for the header table.

...

    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB WMS Receive", 'OnPostReceiveOrder_OnAddStepsToAnyHeader''', true, true)]
    local procedure OnPostReceiveOrder_OnAddStepsToAnyHeader(var _OrderValues: Record "MOB Common Element"; _RecRef: RecordRefvar _Steps: Record "MOB Steps Element")
    begin
    end;

Example - New steps to select Posting Date "Today", "Yesterday" or "Other date"

...

    // OnGetReceiveOrderLines
    // Create a step in the default header collector (displayed for "Warehouse Receipt" and "Purchase Order", but not "Transfer Order" or "Sales Return Order")
    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB WMS Receive", 'OnGetReceiveOrderLines_OnAddStepsToAnyHeader''', true, true)]
    procedure MyOnGetReceiveOrderLines_OnAddStepsToAnyHeader(_RecRef: RecordRefvar _StepsElement: Record "MOB Steps Element")
    begin
        if (_RecRef.Number() in [DataBase::"Warehouse Receipt Header", 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_OnAddStepsToAnyHeader''', true, true)]
    local procedure MyOnPostReceiveOrder_OnAddStepsToAnyHeader(var _OrderValues: Record "MOB Common Element"; _RecRef: RecordRefvar _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'. Step can exist only for "Warehouse Receipt" or "Purchase Order"
    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB WMS Receive", 'OnPostReceiveOrder_OnBeforePostAnyOrder''', true, true)]
    procedure MyOnPostReceiveOrder_OnBeforePostAnyOrder(var _OrderValues: Record "MOB Common Element"; var _RecRef: RecordRef)
    var
        WhseReceiptHeader: Record "Warehouse Receipt Header";
        PurchHeader: Record "Purchase Header";
        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;

        case _RecRef.Number() of
            Database::"Warehouse Receipt Header":
                begin
                    _RecRef.SetTable(WhseReceiptHeader);
                    if (PostingDate <> 0D) and (PostingDate <> WhseReceiptHeader."Posting Date"then
                        WhseReceiptHeader.Validate("Posting Date", PostingDate);
                    _RecRef.GetTable(WhseReceiptHeader);
                end;
            Database::"Purchase Header":
                begin
                    _RecRef.SetTable(PurchHeader);
                    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);
                    _RecRef.GetTable(PurchHeader);
                end;
        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"

...