Info | ||
---|---|---|
| ||
|
...
Steps with no "conditions" are better created using the OnGetReceiveOrderLines_OnAddStepsToAnyHeader-event.
See also: OnPostReceiveOrder_OnAddStepsToAnyHeader
...
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Receive", 'OnPostReceiveOrder_OnAddStepsToPurchaseHeader', '', true, true)]
local procedure OnPostReceiveOrder_OnAddStepsToPurchaseHeader(var _OrderValues: Record "MOB Common Element"; _PurchHeader: Record "Purchase Header"; var _StepsStepsElement: Record "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::Codeunit, Codeunit::"MOB WMS Receive", 'OnPostReceiveOrder_OnAddStepsToPurchaseHeader', '', true, true)]
local procedure MyOnPostReceiveOrder_OnAddStepsToPurchaseHeader(var _OrderValues: Record "MOB Common Element"; _PurchHeader: Record "Purchase Header"; var _StepsStepsElement: 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
_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::Codeunit, Codeunit::"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) | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Version History
Version | Changes |
---|---|
MOB5.27 | Introduced |