Requirements
- Android App 1.5.9
- Extension version: Currently not supported by API (version MOB5.27)
- Only the following data types are supported:
- ItemNumber
- SerialNumber
- GS1 barcodes are required unless a Barcode converter is used that supports the above data types
Description
Line selection functionality makes it possible to:
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 the refresh, the scan triggering the online request will be used again to potentially select a newly added line
<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:
- A <select> element with the attributes "name" and "value" for performing a selection.
- An optional <values> element, containing a range of subelements that contains multiple registration values.
- 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</ExpirationDate> </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
Examples
-
Select, Add or Refresh Order Lines by Scan (LineSelection) — Select, Add or Refresh Lines by scanning
-
LineSelection — Line selection functionality makes it possible to:
- Select a line based on a response from the backend
- Set/return Step values
- Add/return a new line
-
-
How-to: Select Line and set default Step values (LineSelection) — The LineSelection functionality makes it possible to:
- Select a line based on a response from the backend
- Set default values on the line steps