Requirements
- Android App 1.5.8
Description
Combine similar order lines, removing redundant order line selection and registration for the user.
Use case
Grouping is used to group similar order lines normally split into separate lines by the backend:
- When a grouped order line is selected, it can be expanded to view the individual order lines
- Expanded is disabled as soon as a registration is made on either A) The group of lines or B) Any of the individual order line
How to group order lines
In order to enable this functionality, all order lines which should be grouped into one order line need to be placed in a XML group element, as listed below.
The grouped order line which is displayed on the order lines page gets its values from the first BaseOrderLine element in the group. However, if that is not sufficient, a display order line can be added which has the element name of GroupOrderLine. If a GroupOrderLine element is added, the displayed group order line will get it's values from that order line.
Notice that the backend controls the LineNumber of the display order line if the GroupOrderLine is sent out. If not, a unique LineNumber is automatically generated for the representation of the grouped order lines.
An order line response can contain multiple order line groups, which can be ungrouped individually.
<responseData> <BaseOrderLine> <OrderBackendID>PU000006</OrderBackendID> <LineNumber>20000</LineNumber> ... </BaseOrderLine> <BaseOrderLine> <OrderBackendID>PU000006</OrderBackendID> <LineNumber>40000</LineNumber> ... </BaseOrderLine> <Group> <!-- Optional group element for custom representation --> <GroupOrderLine> <OrderBackendID>PU000006</OrderBackendID> <LineNumber>G_60000</LineNumber> ... </GroupOrderLine> <!-- End --> <BaseOrderLine> <OrderBackendID>PU000006</OrderBackendID> <LineNumber>60000</LineNumber> ... </BaseOrderLine> <BaseOrderLine> <OrderBackendID>PU000006</OrderBackendID> <LineNumber>80000</LineNumber> ... </BaseOrderLine> <BaseOrderLine> <OrderBackendID>PU000006</OrderBackendID> <LineNumber>100000</LineNumber> </BaseOrderLine> </Group> </responseData>
Registrations
When registrations are performed on an order line group, the quantity is added to the individual underlying order lines. So if a group order line has a Quantity of 30, where each individual order line has a Quantity of 10. Then registering 15, will add 10 to the first order line, and 5 to the next. In cases where over delivery is enabled and 40 is registered to the empty order line group, then the first two order lines will be registered with 10, and the last will receive the remaining, which in this case is 20.
As registrations will be done on the individual order lines, posting an order line group will not differ in the request from the mobile application. Hence, no change needs to be done here. Only if the GroupOrderLine is defined with different attributes than the individual order lines.
Toggling the grouped order line
In order to be able to toggle the grouped order lines, a new menu item needs to be added to the order lines page.
<page id="PutAwayLines" type="OrderLines" icon="mainmenuputaway"> <title defaultValue="@{PagePutAwayOrderLinesTitle}"/> <orderLinesConfiguration> ... <toggleOrderLineGrouping enabled="true" title="@{MenuItemOrderLineUngroup}" icon="menuplus" groupTitle="@{MenuItemOrderLineGroup}" groupIcon="menuminus" contextMenuPlacement="1" menuPlacement="1" disableOnRegistration="false"/> ... </orderLinesConfiguration> </page>
The disableOnRegistration attribute defines whether or not the toggling between grouping and individual order lines can happen after registration in either grouped or individual mode has been made. The default is to allow it.
Recommendations
When using this functionality for registering serial numbers, and the serial numbers are known, it is recommended that a GroupOrderLine is added. The GroupOrderLine should not have an expected serial number set, as that will prevent other serial numbers from being registered.
Limitations
Order line grouping does not support Tote functionality, and should therefore not be used where totes are needed.
The reason for that is, that the grouped order line uses the destination from either the <GroupOrderLine/> or the first <BaseOrderLine/>, and will therefore link all registrations to that destination.
See also
-
OnAfterGroupByBaseOrderLineElements — Set values to display on a "group header" element created from GroupBy, or suppress the "group header" element.
-
-
Case: Register large picks of sequential serial numbers — Customize picking with serial numbers to request a Quantity and Serial Number sequence start number to avoid scanning each serial number individually.
-
How-to: Group matching order lines (GroupBy) — Group matching order lines with the same values and remove redundant line selection and registrations.