The workflow configuration defines which collector steps can potentially be displayed when going through a registration flow. As the registration is based on an e.g. order line, that can influence which steps are actually displayed.
From Mobile WMS v. 1.4.1, specific steps where added to aid in the configuration of standard steps, replacing the <add> element with specific elements line <toBin> and <quantity>. So while the <add> element is still available for custom steps, it is recommended that standard steps are used when applicable.
<application> <...> <workflows> <workflow id="standard" itemNumberAI="01,02,91"> <configuration scanBehaviourWhenRegisteringQuantity="ScanNextItem" cancelBehaviour="Close" autoSave="false" fastForwardMode="InputAndScanValues"> <steps> <fromBin id="10" header="@{RegistrationCollectorFromBinHeader}" label="{FromBin}" defaultValue="{FromBin}" helpLabel="@{RegistrationCollectorFromBinHelpLabel}" eanAi="00"/> <toBin id="20" header="@{RegistrationCollectorToBinHeader}" label="{ToBin}" defaultValue="{ToBin}" helpLabel="@{RegistrationCollectorToBinHelpLabel}" eanAi="00"/> <expirationDate id="31" header="@{RegistrationCollectorExpirationDateHeader}" label="" helpLabel="@{RegistrationCollectorExpirationDateHelpLabel}" eanAi="15,17,12"/> <lotNumber id="32" header="@{RegistrationCollectorLotNumberHeader}" defaultValue="{LotNumber}" helpLabel="@{RegistrationCollectorLotNumberHelpLabel}" eanAi="10"/> <tote id="35" header="@{RegistrationCollectorToteHeader}" helpLabel="@{RegistrationCollectorToteHelpLabel}" eanAi="98"/> <serialNumber id="40" header="@{RegistrationCollectorSerialNumberHeader}" defaultValue="{SerialNumber}" helpLabel="@{RegistrationCollectorSerialNumberHelpLabel}" eanAi="21" splitBarcodeBySeparator=";"/> <quantity id="50" header="@{RegistrationCollectorQuantityHeader}" helpLabel="@{RegistrationCollectorQuantityHelpLabel}" eanAi="310,30,37" minValue="0.0000000001"/> <quantityByScan id="51" header="@{RegistrationCollectorQuantityByScanHeader}" helpLabel="@{RegistrationCollectorQuantityByScanHelpLabel}" minValue="0.0000000001"/> </steps> <additionalValues> <additionalValue name="VariantCode" value="{Variant}"/> </additionalValues> </configuration> </workflow> <...> </application>
Specifics for standard steps
- <serialNumber> from v. 1.5.8
- splitBarcodeBySeparator = ";" - Enables registering multiple serial numbers in one scan from a barcode containing a concatenated list of serial numbers, divided by the character defined in this attribute. E.g. SerialNumber#1;SerialNumber#2;SerialNumber#3
- <toBin><fromBin> from v. 1.5.10
- validationWarningType = "" - Overrides the bin validation behaviour defined on the order line.
- Warn - Translates to AllowBinChange="true"
- Block - Translated to AllowBinChange="false"
- None - Could not be defined before, but allows any value to be entered.
- validationWarningType = "" - Overrides the bin validation behaviour defined on the order line.
Steps
- <add>
- id = "standard" - Name to reference from the service configuration through the workflowId attribute.
- itemNumberAI = "01,02" - Defines the application identifiers used to identify a item when scanning a Gs1 barcode.
- <configuration> -
- prefillExpectedValueOnLocationScan = "false" - Set the expected value as the result when manual entry is selected by sliding the scan icon to the left.
- scanBehaviourWhenRegisteringQuantity = "" - Defines what to do when scanning a barcode in the quantity step in the registration collector.
- ValidateCurrentItem - Validate the scanned item against the selected order line.
- ScanNextItem - Accept the entered value, and look for a new order line to start registering values on.
- fastForwardModeFast forward is for automatically stepping over steps, if their value is already provided in either the input or scanned values.
This setting determines which values can be used. Note: DefaultValue is never considered and has no effect.
Input values are header values (filters) or properties from the selected lookup or order line.- OnlyScanValues = Only scanned barcode values are accepted for stepping over steps.
- InputAndScanValues = Both input and scanned values are accepted for stepping steps.
- <steps> - Defines the order in which data will be collected.
- <add> - Encloses the specific workflow steps.
- id = "" -Sorting parameter for setting the order of the steps.
- autoForwardAfterScan = "" - Defines whether or not a step will move to the next when a scan is performed.
- name = "" - Key string for the collected piece of data, used in the transfer to the backend. Values which are treated specially are: ExpirationDate, FromBin, LotNumber, SerialNumber, ToBin, Tote and Quantity.
- header = "" - Header text of the data collection step.
- label = "" - Description above the input field.
- helpLabel = "" - Description supporting the collection step, located below the input field.
- inputFormat = "" - Used to make sure input follows a specific pattern, defined by a regular expression. See example Validate inputFormat in workflow step
- inputType = "" - Defines which type of input collector control will be used and what the output will be.
- Date - Pick a date by a date picker. Returns a string with the format "dd-MM-yyyy".
- DateTime - Pick a date time by a date picker and a time picker. Returns a string with the format "dd-MM-yyyy HH:mm:ss".
- Decimal - Enter a decimal value. Supported by a numeric keyboard when no physical keyboard is present. Returns a decimal.
- Image - Display an image placed on the device.
- ImageCapture - Capture images by utilizing the onboard camera. Returns a list of image file names and comments, each separated by the listSeparator. Items i the list are separated by §. <filename1><listSeparator><comment1>§<filename2><listSeparator><comment2>...
- Information - Display information.
- Integer - Enter an integer value. Supported by a numeric keyboard when no physical keyboard is present. Returns an integer.
- List - Select a value from a list. Returns the selected list value as a string.
- MultiLineText - Enter a longer description. Returns the entered string.
- MultiScan - Scan multiple values of the same nature without moving on to register a new type of value. Returns a string of values separated by the chosen listSeparator.
- QuantityByScan - Enter a quantity by scanning multiple items, incrementing by one on every successful scan. Can not be manually edited. Returns an integer.
- RadioButton - Select a value from a short list of values. Returns a string.
- Summary - Display all previously gathered values.
- Text - Enter a short text. Returns a string.
- primaryInputMethod = Defines if the user is required to enter value by scanning or can type using keyboard. Both methods can use the other by touching the scanning icon.
- Control - Initially ready for manual entry. Scanning is still supported. A defaultValue can accepted as-is.
- Scan - Initially ready for scanning. Manual entry is still supported.
- minDate = "01-01-0001" - The first accepted date.
- minValue = "0" - The minimum value accepted.
- maxDate = "31-12-9999" - The last accepted date.
- maxValue = "int.MaxValue" - The largest value allowed.
- dataTable = "" - Reference to a table in the reference data.
- dataKeyColumn = "" - Reference to a column in the data table holding the values.
- dataDisplayColumn = "" - Reference to the column which holds the displayable values.
- linkedElement = "" - Link two steps, such that a selection on the first step is reflected on the linked step.
- filterColumn = "" - The column to use when filter down selection possibilities. Filtering is done based on the selection made in the linkedElement.
- listValues = "" - List of values defining the selectable items in a list.
- listSeparator = ";" - Used to separate values when utilizing multi scan, and to separate values from listValues.
- defaultValue = "" - Set a default value which is displayed as a guide to the user.
- If empty, the field will be selected, ready for input
- If prefillExpectedValueOnLocationScan is set to true, entering the manual entry mode the default value will be pre filled
- optional = "false" - Defines if a step will accept an empty value.
- eanAi = "" - When using a Gs1 barcode, this defines the application identifier used to get the value.
- editable = "true" - Defines if a value is editable.
- uniqueValues = "false" - Adds unique validation to the input when using multi scan.
- visible = "true" - Defines if the this collection step is visible.
- validationValues = "" - Values used to validate input in e.g. a string input field, a quantity by scan input field etc.
- validationWarningType = "" - Which action to take when validation fails.
- Warn - Ask for permission if validation fails.
- Block - Block further progress until validation is successful.
- None - Accepts whether or not a value matches the default or not
- validationCaseSensitive = "" - Is case to be taken into account when validation values.
- performCalculation = "" - Allow calculation inside input area. Validation will still occur after calculation.
- resolutionWidth = "" - The request width of an image when using ImageCapture.
- resolutionHeight = "" - The requested height of an image when using ImageCapture.
- <add> - Encloses the specific workflow steps.
- prefillExpectedValueOnLocationScan = "false" - Set the expected value as the result when manual entry is selected by sliding the scan icon to the left.
Additional Values
The additionalValues tag enables values from the the data object from which the registration is being created to automatically save values without asking the user. In the example above, the Variant value from e.g. an order line, will be added to the registration with the name of VariantCode, without asking the user. This is a convenient way to get extra information into the registration without disturbing the user about information which is already on the data object.