LineSelection

Requirements

  • Android App 1.5.9
  • Extension version: Currently not supported by API (version MOB5.27)


Supported Data types:

  • GS1 barcodes are required ! (unless a Barcode converter is used that supports the data types below)
  • ItemNumber
  • SerialNumber

Description

Line selection functionality makes it possible to: 

  1. Select a line based on a response from the backend
  2. Set/return Step values
  3. Add/return a new line

Use case - Select a Line

The selection can be done on any value defined on the order line, either standard like ItemNumber, or custom elements added the lines on Order Lines GetOrderLines Response

If LineNumber is used as the selection name, then the application will go straight for that line.

If any other value is sent out, the application will go through the automatic searching mechanism where order line registration status is taken into account as well as the position of the selection.

Use case - Set/return Step values

The response can also include values to be set on the line steps as predefined default values.

Use case - Add/return a new line

You can use information from the Request, an ItemNumber, a SerialNumber or a Lotnumber (requirement) to add a line.

Then returning a Response to refresh the lines. The new line will be selected, and ready for registration.

But remember, lineselection currently requires GS1 barcodes  - or a (barcode converter to circumvent this requirement)

How to set it up

In order to enable this functionality a <lineSelection> request needs to be setup in application.cfg inside the service xml element for the specific service type.

Service

<service id="Receive" type="Order" orderType="Receive">
  <requests>
    <getOrders>GetReceiveOrders</getOrders>
    <getOrderLines>GetReceiveOrderLines</getOrderLines>
    <postOrder>PostReceiveOrder</postOrder>
    <lineSelection>SelectThatLine</lineSelection>
  </requests>
</service>

OrderLines

Once the service is set up, the page can define in which order, the online request should be made.

<page id="ReceiveLines" type="OrderLines" icon="mainmenureceive">
  <title defaultValue="@{PageReceiveOrderLinesTitle}"/>
  <orderLinesConfiguration ...>
    <list listId="OrderLines"/>
    ...
    <lineSelection type="LocalFirst"/> <!-- Valid values are: LocalFirst | LocalOnly | OnlineFirst -->
  </orderLinesConfiguration>
</page>

The <lineSelection .../> element can be set up in three ways:

  • LocalFirst - Use the scanned barcode to search for an order line locally, and if no match was found, a request is made to the backend
  • LocalOnly - Only search locally for an order line match
  • OnlineFirst - Send a request to the backend first, and if that did not result in any order line match, search locally
    See Order Lines Mobile Configuration

Request

<?xml version="1.0" encoding="utf-8"?>
<request name="GetLineSelectionInformation" created="2021-08-17T13:28:01+02:00" xmlns="http://schemas.microsoft.com/Dynamics/Mobile/2007/04/Documents/Request">
  <requestData name="GetLineSelectionInformation">
    <OrderType>Pick</OrderType>
    <BackendID>PI000003</BackendID>
    <SerialNumber>PL000102</SerialNumber>
  </requestData>
</request>

Response for refresh lines (and potentially selecting a new line)

  • Refreshing the order lines can be done by returning the following response
  • After refreshing the order lines, the scan will be further used to either select a line, or display an error message that no match was made.
<responseData xmlns="http://schemas.taskletfactory.com/MobileWMS/BaseDataModel">
  <RefreshOnSuccess>true</RefreshOnSuccess>
</responseData>


Response for selection and set default registration values

The selection response from the backend consists of two parts:

  1. A <select> element with the attributes "name" and "value" for performing a selection.
  2. An optional <values> element, containing a range of subelements that contains multiple registration values.
    1. If a line is selected, and there is a match between element name and a registration collector step, that value will be used as the default value of that step
<responseData xmlns="http://schemas.taskletfactory.com/MobileWMS/BaseDataModel">
  <select xmlns="http://schemas.taskletfactory.com/MobileWMS/WarehouseInquiryDataModel" name="LineNumber" value="300000">
    <values>
      <ExpirationDate>26-10-1980</ExpirationDate>
      <LotNumber>Lotty261080</LotNumber>
    </values>
  </select>
</responseData>

Important note

  • If values are set on the registration collector through the values element, they can either be automatically accepted using the fastForwardMode on the Workflow Configuration, or just added for the user to accept
  • The barcode needs to be Gs1, and contain either an item number or a serial number