Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Typo

When the mobile device sends a request to get the order lines for a particular order it can receive the following information for each line (not all fields are mandatory)

Code Block
languagexml
<?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>

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 used 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

Naming

Both "Register..." and "Validate..." means the same: Should the value be collected by the mobile user.

  • ValidateFromBin = True: The Bin-step will be shown
  • RegisterLotNumber = False: The Lotnumber-step will be skipped


See also


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>     
      <Attachment>0</Attachment><BaseOrderLine xmlns="http://schemas.taskletfactory.com/MobileWMS/BaseDataModel">
       <FromBin <OrderBackendID>RE000007</>OrderBackendID>
       <ToBin <LineNumber>10000</>LineNumber>
       <ValidateFromBin>false</<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>
       <!-- End optional --> <Workflow>
         <![CDATA[<registrationCollectorConfiguration tweak="Append">
     </BaseOrderLine>      <steps>
   </responseData>
</response>

Elements of the response is used in conjunction with the setup in UserRole.xml - in special how lines are shown. There the "listConfiguration" - "dataMember" is a references to display fields, defined here.

XML ElementDescription ofregistrationCollectorConfigurationThis 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
AllowBinChangeIf true, then the end-user is allowed to change the bin.
Boolean "true"/"false", control field. 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]}

BarcodeQuantity

See Barcode Quantity for explanation.

CommentText information.
String, display field.
          <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>




  • 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.
    UnderDeliveryValidation [string]
    This element determines how the application behaves when the user tries to post the order. It determines if the user will receive a warning or be blocked if an incomplete order is being posted. You can also turn off validation completely.Thevalid values are:
    None
    The order lines are not checked before posting.
    Warn
    The user is warned if incomplete lines are discovered. The user can ignore the warning and post anyway. This setting is useful as a check to see if the user has missed a line unintentionally.
    Block
    The 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.OverDeliveryValidation [string]
  • This element determines how the application behaves when the user tries to register a greater quantity on an item than the Quantity element dictates. The valid values are:
  • None 
    • The user is allowed to proceed with the over delivery without any interference.
  • Warn 
    • The user is warned and asked whether to proceed when trying to register a quantity that exceeds the expected. This is to make sure the user is doing so intentionally.
  • BlockThe user is not allowed to proceed with the over delivery and a warning message is displayed
    XML ElementDescriptionDatatype

    Basic information

    OrderBackendIDReference to the order no.String, Mandatory
    LineNumberReference to the order line no.String. Mandatory. Unique.
    SortingSorting of all lines, ranked after lower numbers firstInteger, Mandatory

    Display values

    CommentText information
    Defined as nvarchar(max) so can contain a lot of
    text.DescriptionString, display field.DestinationString, used for Collector Step ToteDisplayLine1Text information.
    String, display field. DisplayLine2Text information.
    String, display field.DisplayLine3Text information.
    String, display field.DisplayLine4Text information.
    String, display field.DisplayLine5Text information.
    String, display field.FromBin

    Value of the FromBin.
    It is possible to specify options for this field. E.g. a value of "@type=location;" and the value after.
    Valid types are "location" or "pallet".
    String, control field.
    Dynamics AX: From Location

    ItemBarcode

    A list of valid barcodes, identifying the current line.
    Optional, String list (";" is sepeator), control field. See Select Line by scan (scanToSelectBehaviour)

    ItemNumberString, display field.LineNumberReference to the pick/receive orderline.
    Mandatory valule, String, control field. ToBinValue of the ToBin.
    It is possible to specify options for this field. E.g. a value of "@type=location;" and the value after.
    Valid types are "location" or "pallet"
    String, control field.
    Dynamics AX: To LocationLotNumberThe LotNumber to use.
    String, control field
    Dynamics AX: Batch number
    OrderBackendIDReference to the pick/receive order.
    Mandatory value, String, control field.OverDeliveryValidationtodo
    Enum "None","Warn","Block", control field. RegisterSerialNumber

    If true, then the end-user is prompted for specifying a serialnumber.
    Boolean "true"/"false", control field.

    See also RegisterSerialNumberQuantity

    RegisterLotNumberIf true, then the end-user is prompted for specifying a lotnumber (AX: Batchnumber).
    Boolean "true"/"false", control field.RegisterExpirationDateIf true, then the end-user is prompted for specifying an Expiration Date.
    Boolean "true"/"false", control field. 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.
    Optional field,  String, control field. 

    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.
    Boolean "true"/"false", control field.RegisteredQuantityThe quantity already registered.
    Integer/Decimal, control field. RegisterQuantityByScanIf true, then quantity is collected by scanning one of the valid item barcodes. If BarcodeQuantity is specified, the value from there is used.
    Boolean "true"/"false", control field.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.

    SerialNumberThe SerialNumber to use.
    String, control field. 
    StatusUsed to control image/icon shown on line. Possible values is defined in the UserRole.xml - see line 65-71 for definition of values and line 28-32 for definition of images.
    Integer, control field.SortingSorting of all lines, ranked after lower numbers first.
    Mandatory, Integer, control field.UnderDeliveryValidationtodo
    Enum "None","Warn","Block", control field.UnitOfMeasureIn which unit is there to be registered in.
    String, display field. ValidateFromBin

    Should a specified FromBin be validated.
    Boolean "true"/"false", control field.

    ValidateToBinShould a specified ToBin be validated.
    Boolean "true"/"false", control field. WorkflowReplace the workflow defined for this service in mobile configuration, with another workflow from the configuration.QuantityThe Quantity to register (pick/receive).
    Integer/Decimal, control field. 

    TODO

    <<--- Consolidate the two lists

  • OrderBackendID [string100]
    The unique identifier of the order in the backend system.
  • LineNumber [string50]
    The line number of the order line in the backend system.
  • FromBin [string50]
    This is where the item should be taken from. E.g. a bin code (NAV) or a location (AX).
  • ToBin [string50]
    This is where the item should be placed. E.g. a bin code (NAV) or a location (AX).
  • ValidateFromBin [boolean]
    True:
         The mobile user must scan the correct FromBin value before he is allowed to perform the registration.
    False:    The mobile user can start the registration without validating the FromBin
  • ValidateToBin [boolean]
    True:
         The mobile user must scan the correct ToBin value before he is allowed to perform the   registration. If the ToBin element is blank the user can scan any value. This will make the         user register where the items are placed (the user decides).
    False:    The mobile user can start the registration without validating the ToBin
  • ItemNumber [string50]
    This is the unique identifier of the item in the backend system. The user can scan this value on the order lines screen to select the line.
  • Description [string50]
    The (short) description of the item.
  • ItemBarcode [string1000]
    This is the unique barcode value for this item. The user can scan this value on the order lines screen to select the line. If multiple barcodes are associated with the item a list of barcodes can be transferred. The default separator for barcodes is “;”.
    E.g. barcode1;barcode2;barcode3
    This can be helpful 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.
    textString
    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

    Additional values

    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
    OverDeliveryValidation

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

    None: User is allowed to register a higher value

    Warn: Warn the user if a higher value is entered. A warning is displayed

    Block: User is not allowed to register a higher 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 "Quantity" value , this setting determines the mobile behavior: 

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

    Warn: Warn the user if a lower value is entered. A warning is displayed

    Block: User is not allowed to register a 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

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


    If both ValidateFromBin and ValidateToBin are both enabled at the same time, the Movement flow is used.

    Boolean

    ValidateToBin

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

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


    If both ValidateFromBin and ValidateToBin are both enabled at the same time, the Movement flow is used.

    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 behavior 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



    • 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.


    Image RemovedImage Added

    Order Lines list