Use this event to
Excerpt |
---|
Add steps to be displayed at the mobile device when collecting values for topmost line representing 'Output' |
...
each individual document line. |
Description
...
New steps defined at line level (collected for
...
each individual line) are merged with steps from your existing workflow defined in application.cfg
You may add custom steps using either the _Steps-parameter or a ConfigurationKey (to be declared in Reference Data).
...
This is unlike steps at header level, that allows "on posting" steps to be declared directly in the OnGetAssemblyOrderLines_OnAddStepsToAssemblyHeader event.
Line-level steps are:
- ...declared as part of a collectorConfiguration-Key in Reference Data.
- ...added by calling the Create_StepsByReferenceDataKey-function (Currently only once)
- ...sorted by Id. Sorting can be changed using the
<orderLineConfiguration><extraInformationConfiguration stepSorting="ById"/><orderLineConfiguration/>
in mobile configuration.
Currently
Using the _Steps-parameter is the easiest and most flexible, but you may consider using a ConfigurationKey when performance or backwards compatibility with older Android Apps is more important to you.
Using _Steps-parameter | Using ConfigurationKey from ReferenceData |
---|---|
Easier syntax (Steps defined on-the-fly) | More difficult to use (requires ConfigurationKey in ReferenceData) |
Multiple subscribers to same OnAddSteps event is possible | Only a single subscriber must exist to same OnAddSteps event |
Performance cost is 5%-10% per step added to order lines | No performance cost per additional step |
Minimum requirements are Mobile WMS 5.39 and Android App 1.8 | Minimum requirement is Mobile WMS 5.24 |
Template
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Receive", 'OnGetReceiveOrderLines_OnAddStepsToAnyLine', '', true, true)]
localprocedure OnGetReceiveOrderLines_OnAddStepsToAnyLine(_RecRef: RecordRef; var _BaseOrderLineElement: Record "MOB Ns BaseDataModel Element"; var _Steps: Record "MOB Steps Element")
begin
end;
Example 1: Add line steps by using _Steps-parameter
// Prerequisites: Mobile WMS 5.39 and Android App 1.8
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Receive", 'OnGetReceiveOrderLines_OnAddStepsToAnyLine', '', true, true)]
localprocedure My01OnGetReceiveOrderLines_OnAddStepsToAnyLine(_RecRef: RecordRef; var _BaseOrderLineElement: Record "MOB NS BaseDataModel Element"; var _Steps: Record "MOB Steps Element")
begin
// if not (_BaseOrderLineElement.Get_UnitOfMeasure() in ['KG', 'GR']) then // Example: Condition based on input
// exit;
_Steps.Create_DecimalStep(10000, 'CustomGrossWeightGrams');
_Steps.Set_header('Gross Weight (Grams)');
_Steps.Set_label('Gross Weight (Grams):');
_Steps.Set_helpLabel('Gross Weight in Grams per Base Unit of Measure');
_Steps.Set_minValue(0);
_Steps.Set_maxValue(100000);
_Steps.Set_performCalculation(true);
end;
Example 2: Add line steps by referencing a ConfigurationKey from ReferenceData
Note |
---|
Currently Mobile WMS supports only one (custom) referenced key per Order Line, meaning only one customization may |
...
create StepsByReferenceDataKey at any time. This single one subscriber must set a Key that includes all steps for all other intended subscribers as well. This can only be done by knowing other customizations are in place and manually create a new RegistrationCollectorConfigurationKey that includes all steps |
...
Template
...
. |
// Prerequisites: Mobile WMS 5.11
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS AssemblyMOB WMS Receive", 'OnGetAssemblyOrderLinesOnGetReceiveOrderLines_OnAddStepsToOutputLineOnAddStepsToAnyLine', '', truetrue, truetrue)]
local procedure OnGetAssemblyOrderLines My02OnGetReceiveOrderLines_OnAddStepsToOutputLineOnAddStepsToAnyLine(_AssemblyHeader: Record "Assembly Header"; var RecRef: RecordRef; var _BaseOrderLineElement: Record "MOB Ns BaseDataModel ElementMOB NS BaseDataModel Element")
begin
end;
Example
// [Example]: Add steps referenced by new RegistrationCollectorConfiguration-Key to line steps collectors for 'Output' line derived from Assembly Header
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Assembly", 'OnGetAssemblyOrderLines_OnAddStepsToOutputLine', '', true, true)]
local procedure MyOnGetAssemblyOrderLines_OnAddStepsToOutputLine(_AssemblyHeader: Record "Assembly Header"; var _BaseOrderLineElement: Record "MOB Ns BaseDataModel Element")
begin
// 'Output' is always for an item, no 'Type' check needed
begin
_BaseOrderLineElement.Create_StepsByReferenceDataKey('CustomAssemblyOutputStepsCustomReceiveSteps', true);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Reference DataMOB WMS Reference Data", 'OnGetReferenceData_OnAddRegistrationCollectorConfigurations', '', truetrue, truetrue)]
local procedure MyOnGetReferenceData My02OnGetReferenceData_OnAddRegistrationCollectorConfigurations(var _Steps: Record "MOB Steps ElementMOB Steps Element")
begin
_Steps.InitConfigurationKey('CustomAssemblyOutputStepsCustomReceiveSteps');
_Steps.Create_DecimalStep(1000020000, 'CustomGrossWeightGramsCustomNetWeightGrams');
_Steps.Set_header('Gross Weight Net Weight (Grams)');
_Steps.Set_label('Gross Weight Net Weight (Grams):');
_Steps.Set_helpLabel('Total Gross Weight in GramsNet Weight in Grams per Base Unit of Measure');
_Steps.Set_minValue(0);
_Steps.Set_maxValue(100000);
_Steps.Set_performCalculation(true);
end;
Sorting Steps for order lines
Steps are generally sorted by Id. This can be changed using the <orderLineConfiguration><extraInformationConfiguration stepSorting="ById"/><orderLineConfiguration/>
in application.cfg
Filter by label (Content by label) | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Version History
Version | Changes |
---|---|
MOB5.24 | Introduced |
MOB5.39 | New _Steps parameter introduced |