Versions Compared

Key

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

Use this event to

Excerpt

Add steps to be displayed at the mobile device when collecting values for each individual document line.

Description

Steps New steps defined at line level (collected for each individual line) requires a "collectorConfiguration"-Key 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 steps to be declared directly in the OnGetPickOrderLines_OnAddStepsToAnyHeader event.

Line-level step are:

  • ..merged with existing workflow steps
  • ..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.

...

Template

     
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-parameterUsing 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 linesNo performance cost per additional step
Minimum requirements are Mobile WMS 5.39 and Android App 1.8Minimum requirement is Mobile WMS 5.11


Template

    [EventSubscriber(ObjectType::Codeunit,  Codeunit::"MOB WMS PickMOB WMS Receive",  'OnGetPickOrderLinesOnGetReceiveOrderLines_OnAddStepsToAnyLine',  '',  truetrue,  truetrue)]
        local procedure OnGetPickOrderLines OnGetReceiveOrderLines_OnAddStepsToAnyLine(_RecRef:  RecordRef;  var  _BaseOrderLineElementRecord "MOB Ns BaseDataModel Element: 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 PickMOB WMS Receive",  'OnGetPickOrderLinesOnGetReceiveOrderLines_OnAddStepsToAnyLine',  '',  truetrue,  truetrue)]
        local procedure MyOnGetPickOrderLines My01OnGetReceiveOrderLines_OnAddStepsToAnyLine(_RecRef:  RecordRef;  var  _BaseOrderLineElement:  Record "MOB Ns BaseDataModel ElementRecord "MOB NS BaseDataModel Element"; var _Steps: Record "MOB Steps Element")
        begin
                //  MOB5.11
        // Currently the Android Mobile App supports only one "RegisterExtraInfo"-node (one extra RegistrationCollectorConfigurationKey).
        // The last subscriber to OnGetPickOrderLines_OnAfterAddStepsToAnyLine must set a <RegisterExtraInfo>-key that includes steps for all previous subscribers.
        // This is only possible by knowing what other customizations is done and manually create a new RegistrationCollectorConfigurationKey that includes all steps.
        // 
        // In this demo we expect to be only subscriber and throw an error if earlier subscribtions exists by including optional _ErrorIfAlreadyCreated parameter.
        // We cannot test if later subcribers is overriding this value we set.
        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.

    // Prerequisites: Mobile WMS 5.11
    [EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Receive", 'OnGetReceiveOrderLines_OnAddStepsToAnyLine', '', true, true)]
    localprocedure My02OnGetReceiveOrderLines_OnAddStepsToAnyLine(_RecRef: RecordRef; var _BaseOrderLineElement: Record "MOB NS BaseDataModel Element")
    begin
        _BaseOrderLineElement.Create_StepsByReferenceDataKey('CustomPickStepsCustomReceiveSteps');
        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('CustomPickStepsCustomReceiveSteps');

                _Steps.Create_DecimalStep(1000020000,  'CustomNetWeightGrams');
                _Steps.Set_header('Net Weight Net Weight (Grams)');
                _Steps.Set_label('Net Weight Net Weight (Grams):');
                _Steps.Set_helpLabel('Net Weight in Grams per Base Unit of MeasureNet 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)
showLabelsfalse
showSpacefalse
sorttitlemodified
reversetrue
titleExamplesMore examples
excerptTypesimple
cqllabel = "bc" and label = "orderlines" and label = "example" and label = "onaddstepstoanylineOnAddStepsToAnyLine"


Version History

VersionChanges
MOB5.11Introduced
MOB5.39New _Steps parameter introduced