Versions Compared

Key

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

Description

Order Lines Lists are always opened from an Order List, and must have a related Order List element. The Order List usually displays the documents (headers) and the Order Lines List its related lines. Quantities are registered from Order Lines Lists, never from Order Lists.


Excerpt

When mobile sends a request for order lines, it can receive the following data per line


Data uses for display

  • Display lines
    • Item, Quantity etc. to process (See illustration)
  • Line ordering
  • Image

Data that modifies mobile operation

  • Enable/disable Workflows steps
  • Add custom steps
  • Recognize barcodes and the quanity they represent


See also

Naming

Both "Register..." and "Validate..." means the same:

Should the value be collected by the mobile user.

  • ValidateFromBin = False: The Bin-step will be skipped
  • RegisterLotNumber = False: The Lotnumber-step will be skipped. Etc...


Code Block
languagexml
titleExample XML
<?xml version="1.0" encoding="utf-16"?>
<response messageid="147db121-f664-4fb7-8d08-019ddf7405b1" status="Completed" xmlns="http://schemas.microsoft.com/Dynamics/Mobile/2007/04/Documents/Response">
  <description />
  <responseData>
     <registrationCollectorConfiguration>
	   <steps>
	     <add id="1" name="PackingSlip" inputType="Text" header="Packing slip" label="Packing slip" helpLabel="" length="20" eanAi="" />
	   </steps>
     </registrationCollectorConfiguration>     
     <BaseOrderLine xmlns="http://schemas.taskletfactory.com/MobileWMS/BaseDataModel">
       <OrderBackendID>RE000007</OrderBackendID>
       <LineNumber>10000</LineNumber>
       <ItemNumber>TF-003</ItemNumber>
       <Attachment>0</Attachment>
       <FromBin />
       <ToBin />
       <ValidateFromBin>false</ValidateFromBin>
       <ValidateToBin>false</ValidateToBin>
       <ItemNumber>1150</ItemNumber>
       <ItemBarcode>03661103036043;068U0439-03;08008203800764;1010154;12345678901231;2222555;3046920028752</ItemBarcode>
       <RegisterSerialNumber>false</RegisterSerialNumber>
       <RegisterLotNumber>false</RegisterLotNumber>
       <RegisterQuantityByScan>false</RegisterQuantityByScan>
       <RegisterExpirationDate>false</RegisterExpirationDate>
       <SerialNumber />
       <LotNumber />
       <Description>Front Hub</Description>
       <Quantity>100</Quantity>
       <RegisteredQuantity>0</RegisteredQuantity>
       <UnitOfMeasure>PCS</UnitOfMeasure>
       <Status>0</Status>
       <Sorting>0</Sorting>
       <DisplayLine1>1150</DisplayLine1>
       <DisplayLine2>Front Hub</DisplayLine2>
       <DisplayLine3>UoM: PCS</DisplayLine3>
       <DisplayLine4>Shipment: SH000005</DisplayLine4>
       <DisplayLine5 />
       <UnderDeliveryValidation>Warn</UnderDeliveryValidation>
       <OverDeliveryValidation>Warn</OverDeliveryValidation>
       <RegisterExpirationDate>false</RegisterExpirationDate>
       <AllowBinChange>true</AllowBinChange>
       <ItemImage>22-02-2021 15:23:03.077Item: TF-003</ItemImage>
       <ReferenceID>Warehouse Activity Line: Pick,PI000003,30000</ReferenceID>
       <Destination>SH000005</Destination>
       <Priority>0</Priority>
       <PriorityValidation>None</PriorityValidation>
       <!-- Optional -->
       <RewindToStepOnIncompleteLine>LotNumber</RewindToStepOnIncompleteLine>
       <BarcodeQuantity>PAPER1BOX{5}[Box];PAPER1PL{240}[Pallet]</BarcodeQuantity>
       <Workflow>
         <![CDATA[<registrationCollectorConfiguration><registrationCollectorConfiguration tweak="Append">
           <steps>
             <add id="10" name="CustomTextField" inputType="text" header="Enter text" label="Enter custom text here" optional="false"  acceptBarcode="true" clearOnClear="true"/>
             <add id="20" name="CustomDecimalField"  inputType="decimal" header="Enter amount" label="Enter custom amount here" eanAi="30,37" optional="true"  acceptBarcode="true" clearOnClear="true" />
           </steps>
         </registrationCollectorConfiguration>]]>
       </Workflow> 
       <!-- End optional -->
    </BaseOrderLine>
  </responseData>
</response>




XML ElementDescriptionDatatype

Display values

CommentText information
Defined as nvarchar(max) so can contain a lot of text
String
DescriptionText information
The (short) description of the item
String
DestinationGrouping used for Tote functionality. Collector Step ToteString
DisplayLine1

This value is displayed on line 1. This line is displayed in bold by default

String
DisplayLine2This value is displayed on line 2String
DisplayLine3This value is displayed on line 3String
DisplayLine4This value is displayed on line 4String
DisplayLine5This value is displayed on line 5. This line is disabled by defaultString
UnitOfMeasure

In which unit is there to be registered in.

Note: This is a display value only as mobile does not know of item units. See Register Quantity By Scan

String

Basic information

OrderBackendIDReference to the order no.String, Mandatory
LineNumberReference to the order line no.String, Mandatory
FromBin

Bin to Take items from

String

ToBinBin to place items intoString
ItemBarcode

A list of barcodes identifying the item, e.g. Barcode1;Barcode2;Barcode3

Useful if items are packaged inside a box and the item barcodes are not visible unless the box is opened
Typically the box will have another barcode on it (because it’s a different unit of measure). If this barcode is also sent out it can be used to select the order line. 

Note:

Semicolon separated
string list

ItemNumber

Item number

Note: Scanning this, can select an order line for the user.

String
LotNumberLotNumber of the Item
String
SerialNumberSerialNumber of the item
String
Quantity

Quantity to register

Note: Mobile does not know the item units. See Register Quantity By Scan for another solution to this

Decimal
Priority



Configuration

RegisterQuantityByScan

True: Quantity is collected by scanning one of the valid item barcodes.

Note: Requires "ItemBarcode"or "BarcodeQuantity" is specified. See See Register Quantity By Scan 

Boolean
BarcodeFormat

Special field to specify a RegEx - for barcode validation

Example: <BarcodeFormat>{[frombin][^\w{1,10}$]}</BarcodeFormat>

Field FromBin the barcode must be validated against the specified RegEx. String (RegEx), control field. Vaild fields to add regex: frombin, lot, serial, tobin, tote It it possible to specify multiple reg.ex for one field

Example: {[serial][regex1]}{[serial][regex2]}{[lot][regex3]}{[bin][regex4]}

String

BarcodeQuantity

See Barcode Quantity (enableMultiplier) for explanation

String, encoded

RegisterSerialNumber

True: User is prompted for specifying serialnumber(s).
Each input/scan increments the registered quantity by one

Boolean

RegisterLotNumberTrue: User is prompted for specifying a lotnumberBoolean
RegisterExpirationDateTrue: User is prompted for specifying an Expiration DateBoolean
RegisterExtraInfo

This is a control - to add extra steps to the current line.
Example: <RegisterExtraInfo>ReturnDisposition{[CauseId][defaultValue][51]}</RegisterExtraInfo>
It has a special setup, "ReturnDisposition" is a reference to a registrationCollectorConfiguration defined in GetReferenceData. The "CauseId" is a reference to a step in the collector - and "51" is the value to set. The field is not fully described here.
The collected values is returned in a "ExtraInfo" element per Line/Registration.

String

AllowBinChangeTrue: The end-user is allowed to change the bin Boolean
RewindToStepOnIncompleteLine

Use this element to have the registration collector return to a named step in the registration collector after performing a registration which is below the Quantity of the order line.
If set to LotNumber, and there is a remaining Quantity on the order line after completing a registration, the registration collector will not close, but return to the LotNumber step.

Boolean

StatusUsed to control image/iconsInteger
SortingSorting of all lines, ranked after lower numbers firstInteger, Mandatory
OverDeliveryValidation

If user registers a higher value than the suggested value in"Quantity", this setting determines the mobile behaviour.: 

None: User is allowed to register a higher/lower value

Warn: Warn the user if a higher/lower value than suggested is entered. A warning is displayed

Block: User is not allowed to register a higher/lower value. A error is displayed


See Register unexpected Quantity (overDeliveryValidation / underDeliveryValidation)

Enum "None","Warn","Block"
UnderDeliveryValidation

If user registers a lower value than the suggested value in"Quantity", this setting determines the mobile behaviour.: 

None: User is allowed to register a higher/lower value

Warn: Warn the user if a higher/lower value than suggested is entered. A warning is displayed

Block: User is not allowed to register a higher/lower value. A error is displayed


See Register unexpected Quantity (overDeliveryValidation / underDeliveryValidation)

Enum "None","Warn","Block"
ValidateFromBin

True: User is prompted for specifying bin where items are taken

Note: Used with "FromBin":, control field

User must scan a value matching "FromBin" or if "FromBin" is blank,  the user can scan any value

Boolean

ValidateToBin

True: User is prompted for specifying Bin where items are placed

Note: Used with "ToBin":

User must scan a value matching "ToBin" or if "ToBin" is blank,  the user can scan any value

Boolean
PriorityValidation



Step collection

Workflow

Replaces the workflow defined for the planned service in application.cfg, with another workflow.
This can be done:

  • either by referencing the id of another workflow defined in application.cfg
  • or by sending out a complete workflow wrapped in a CDATA element

From version 1.8.0 the workflow configuration from the order line can be merged with the workflow defined in the service section. The key to merging instead of replacing is adding the attribute tweak="Append" to the registration collector configuration. <registrationCollectorConfiguration tweak="Append">

XML

registrationCollectorConfiguration

This is an optional section, used to specify extra steps to perform after the "Post" has been choosen
These are also called "Header Steps". One collection is collected for all lines



See Whitepaper Understanding Steps

XML

Context

ActionDefinedQuantity

The quantity already registered. 

Note: This field always shows the same value as either "RegisteredQuantity" and "PlacedQuantity" 

Decimal
RegisteredQuantity

The quantity already registered

Used when taking items

Decimal.

PlacedQuantity

The quantity already registered

Used when placing items

Decimal.

Only Windows Handheld Embedded

RegisterSerialNumberQuantity

The default behaviour of the mobile device when registering serial numbers is to assume a quantity of 1.
In some cases it may prove desirable to have a different quantity associated with the serial number.
Note: Replaced in Android by online validation serialnumber.

Boolean


User cannot post orders with unfinished lines. This setting is useful if posting of an incomplete order will cause problems in other work processes. E.g. picking for a production order.




  • RegisterSerialNumber [boolean]
    True:
         The mobile user must scan the serial numbers of the items to handle. Each scan of increments the registered quantity by one.
    False:    A quantity can be entered directly.
  • RegisterLotNumber [boolean]
    True:    
    The mobile user must first scan a lot number and then enter a quantity.              
    False:    A quantity can be entered directly.
  • RegisterExpirationDate [boolean]
    This flag is used in combination with the RegisterLotNumber flag. If the lot is associated with an expiration date then this date can be captured on the mobile device by setting this flag.

    The mobile user is allowed to register the expiration date in the short date format of the current regional settings on the mobile device, but the date format on the registration is always:
    dd-MM-yyyy (e.g. 24-12-2009)

    True:     The mobile user must enter the expiration date after entering the lot number (before entering the quantity).
    False:    The user does not have to enter an expiration date

                           
  • RegisterQuantityByScan

    • True:  The user must scan the item number / barcode to register a quantity. Every scan adds 1 to the total quantity. 
      This setting is used in scenarios where it is very important that the handled items are correct.
      An example of this is when picking medicine that does not use item tracking. Here the user must scan each individual packet / bag to verify that they match the ordered.

    • False: The user is allowed to enter a quantity.

  • SerialNumber [string50]
    If the RegisterSerialNumber element is true and this element holds a value, the mobile application will verify that the user handles this particular serial number.
  • LotNumber [string50]
    If the RegisterLotNumber element is true and this element holds a value, the mobile application will verify that the user handles this particular lot number.
  • Quantity [decimal]
    The quantity to handle on the mobile device.
  • RegisteredQuantity [decimal]
    Not used at the moment – always set this value to 0.
  • UnitOfMeasure [string10]
    The unit of measure.
  • Status [int]
    Not used at the moment – always set this value to 0.
  • Sorting [int]
    When the order lines are displayed they are sorted by this column.

  • DisplayLine1 [string100]
    This value is displayed on line 1 on the ”Order Lines” screen. The line is displayed in bold.

  • DisplayLine2 [string100]
    This value is displayed on line 2 on the ”Order Lines” screen.

  • DisplayLine3 [string100]
    This value is displayed on line 3 on the ”Order Lines” screen.


  • AllowBinChange [boolean]
    This flag determines if the user is allowed to register other bins / locations than specified by the ERP system.

    True:     The user is allowed to use other bin / locations. When another bin / location is scanned the          user will get a warning message, but he can ignore the warning and proceed with the                registration.

    False:    The user is not allowed to use other bins / location. When another bin / location is scanned          the user will get a message telling that changing bin / location is not allowed.


Order Lines list