Use this event to
Excerpt |
---|
Add steps to be displayed on 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 OnGetPhysInvtRecordingLines_OnAddStepsToPhysInvtRecordHeader event.
...
Line-level step are:
- ..merged with existing workflow steps
- ..declared as part of Reference Data
- ..added by calling the Create_StepsByReferenceDataKey-function
- ..sorted by Id. Sorting can be changed using the
<orderLineConfiguration><extraInformationConfiguration stepSorting="ById"/><orderLineConfiguration/>
in mobile configuration.
Only one key per order line:
- You can have multiple keys with different steps. But just one key can be assigned to a line.
- So you might need to create multiple keys, for the unique combinations of steps you want to collect.
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-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 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.19 |
Template
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Phys Invt Recording", 'OnGetPhysInvtRecordingLines_OnAddStepsToPhysInvtRecordLine', '', true, true)]
localprocedure OnGetPhysInvtRecordingLines_OnAddStepsToPhysInvtRecordLine(_PhysInvtRecordLine: Record "Phys. Invt. Record Line"; 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 Phys Invt Recording", 'OnGetPhysInvtRecordingLines_OnAddStepsToPhysInvtRecordLine', '', true, true)]
localprocedure OnGetPhysInvtRecordingLines My01OnGetPhysInvtRecordingLines_OnAddStepsToPhysInvtRecordLine(_PhysInvtRecordLine: Record "Phys. Invt. Record Line"; var _BaseOrderLineElement: Record "MOB NS BaseDataModel Element"; var _Steps: Record "MOB Steps Element")
begin
end; // if not (_BaseOrderLineElement.Get_UnitOfMeasure() in ['KG', 'GR']) then // Example: Condition based on input
// [Example]: Add steps referenced by new RegistrationCollectorConfiguration-Key to line steps collectors // 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.19
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Phys Invt Recording", 'OnGetPhysInvtRecordingLines_OnAddStepsToPhysInvtRecordLine', '', true, true)]
localprocedure MyOnGetPhysInvtRecordingLines My02OnGetPhysInvtRecordingLines_OnAddStepsToPhysInvtRecordLine(_PhysInvtRecordLine: Record "Phys. Invt. Record Line"; var _BaseOrderLineElement: Record "MOB NS BaseDataModel Element")
begin
_BaseOrderLineElement.Create_StepsByReferenceDataKey('CustomCountStepsCustomPhysInvtRecordSteps');
// Example: Modify attribute values for steps defined by the ReferenceDataKey used above (i.e. defaultValue)
// See: https://taskletfactory.atlassian.net/wiki/display/TFSK/How-to:+Modify+Custom+Line+Step+dynamically
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Reference Data", 'OnGetReferenceData_OnAddRegistrationCollectorConfigurations', '', true, true)]
localprocedure MyOnGetReferenceData My02OnGetReferenceData_OnAddRegistrationCollectorConfigurations(var _Steps: Record "MOB Steps Element")
begin
_Steps.InitConfigurationKey('CustomCountStepsCustomPhysInvtRecordSteps');
_Steps.Create_DecimalStep(1000020000, '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
Filter by label (Content by label) | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Version History
Version | Changes |
---|---|
MOB5.1119 | Introduced |
MOB5.39 | New _Steps parameter introduced |