Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 24 Next »

Use this event to

Add steps to be displayed at the mobile device when collecting values for indented lines representing 'Consumption'

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). 
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.24


Collected values for Steps created from this event is best handled in the 
OnPostAssemblyOrder_OnHandleRegistrationForAssemblyLine event.

Template

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Assembly", 'OnGetAssemblyOrderLines_OnAddStepsToConsumptionLine', '', true, true)]
    local procedure OnGetAssemblyOrderLines_OnAddStepsToConsumptionLine(_AssemblyLine: Record "Assembly Line"; _TrackingSpecification: Record "Tracking Specification"; 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 Assembly", 'OnGetAssemblyOrderLines_OnAddStepsToConsumptionLine', '', true, true)]
    local procedure My01OnGetAssemblyOrderLines_OnAddStepsToConsumptionLine(_AssemblyLine: Record "Assembly Line"; _TrackingSpecification: Record "Tracking Specification"; 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

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 Assembly", 'OnGetAssemblyOrderLines_OnAddStepsToConsumptionLine', '', true, true)]
    local procedure My02OnGetAssemblyOrderLines_OnAddStepsToConsumptionLine(_AssemblyLine: Record "Assembly Line"; _TrackingSpecification: Record "Tracking Specification"; var _BaseOrderLineElement: Record "MOB NS BaseDataModel Element")
    begin
        _BaseOrderLineElement.Create_StepsByReferenceDataKey('CustomAssemblyConsumptionSteps');

        // Example: Modify attribute values for steps defined by the ReferenceDataKey used above (i.e. defaultValue)
        // See: https://docs.taskletfactory.com/display/TFSK/How-to:+Modify+Custom+Line+Step+dynamically
    end;

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Reference Data", 'OnGetReferenceData_OnAddRegistrationCollectorConfigurations', '', true, true)]
    local procedure My02OnGetReferenceData_OnAddRegistrationCollectorConfigurations(var _Steps: Record "MOB Steps Element")
    begin
        _Steps.InitConfigurationKey('CustomAssemblyConsumptionSteps');

        _Steps.Create_DecimalStep(20000, 'CustomNetWeightGrams');
        _Steps.Set_header('Net Weight (Grams)');
        _Steps.Set_label('Net Weight (Grams):');
        _Steps.Set_helpLabel('Net 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


More examples


Version History

VersionChanges
MOB5.24Introduced
MOB5.39New _Steps parameter introduced
  • No labels