--- alias: tutorials-smart-barcode-other-usecases glightbox: false description: "Configure barcode scanning to manage material storage, retrieval, holding, and release operations within the system" --- # Other Material Operations ## Configuration In addition to creation and processing workflows, Smart Barcode Scanning can be used in a variety of other material-related operations. These include storing and retrieving materials, placing them on hold, and releasing them. In each case, enabling barcode scanning requires defining the appropriate field mappings in the [[labelspecificationfield-gt]] Generic Table. ### Store Material To allow barcode scanning when storing a material directly from the **Material** page, you must add the fields displayed in the table below to the [[labelspecificationfield-gt]] Generic Table. These entries enable the system to identify the storage resource and the target position based on the scanned barcode. | Label Specification | Field Name | Field Sequence | Field Data Type | Field Prefix | Target Field | | ------------------- | ----------------- | :------------: | --------------- | ------------ | ----------------- | | GS1 | Resource Name | 1 | String | AA | Resource.Name | | GS1 | Resource Position | 2 | String | AE | Resource.Position | Table: Fields required to enable Smart Barcode Scanning in the Store Material wizard (Material page) After adding these entries, refresh your application. The image below confirms the correct setup: ![Add label specification field to use smart barcode scanning in the store material wizard](../images/store_material_label_specification_field.png) When storing a material from the **Resource View** of a storage resource, the configuration differs slightly. In this case, the system expects the following: | Label Specification | Field Name | Field Sequence | Field Data Type | Field Prefix | Target Field | | ------------------- | ----------------- | :------------: | --------------- | ------------ | ----------------- | | GS1 | Column Add | 1 | Boolean | AAA | ColumnView.Add | | GS1 | Material Name | 1 | String | AX | Material.Name | | GS1 | Resource Position | 2 | String | AE | Resource.Position | Table: Fields required to enable Smart Barcode Scanning in the Store Materials wizard (Resource View) ### Retrieve Material To retrieve a material from the **Resource View** of a storage resource using barcode scanning, you must configure the following fields: | Label Specification | Field Name | Field Sequence | Field Data Type | Field Prefix | Target Field | | ------------------- | ------------- | :------------: | --------------- | ------------ | --------------- | | GS1 | Column Add | 1 | Boolean | AAA | ColumnView.Add | | GS1 | Material Name | 1 | String | AX | Material.Name | Table: Fields required to enable Smart Barcode Scanning in the Retrieve Materials wizard After adding these entries, refresh your application. The image below confirms the correct setup: ![Add label specification field to use smart barcode scanning in the retrieve material wizard](../images/retrieve_material_label_specification_field_vresource.png) ### Hold Material To place a material on hold using a scanned barcode, configure the values illustrated in the table below. These fields define the reason and release requirements associated with the hold operation. | Label Specification | Field Name | Field Sequence | Field Data Type | Field Prefix | Target Field | | ------------------- | ------------------- | :------------: | --------------- | ------------ | ------------------ | | GS1 | Reason Label | 1 | String | AF | Reason.Label | | GS1 | Reason Comment | 2 | String | AG | Reason.Comment | | GS1 | Reason Release Code | 3 | String | AH | Reason.ReleaseCode | | GS1 | Reason Release Role | 4 | String | AI | Reason.ReleaseRole | Table: Fields required to enable Smart Barcode Scanning in the Hold Material wizard After adding these entries, refresh your application. The image below confirms the correct setup: ![Add label specification field to use smart barcode scanning in the hold material wizard](../images/hold_material_label_specification_field.png) ### Release Material To release a material from hold, the barcode configuration only needs to include the required release code: | Label Specification | Field Name | Field Sequence | Field Data Type | Field Prefix | Target Field | | ------------------- | ------------------- | :------------: | --------------- | ------------ | ------------------ | | GS1 | Reason Release Code | 3 | String | AH | Reason.ReleaseCode | Table: Field required to enable Smart Barcode Scanning in the Release Material wizard After adding these entries, refresh your application. The image below confirms the correct setup: ![Add label specification field to use smart barcode scanning in the release material wizard](../images/release_material_label_specification_field.png) ## Barcode Scanning in Action With the configuration complete, you can now scan barcodes to perform a range of material operations directly from the Material page or Resource View. The examples below show the barcode strings used in the video demonstration. Each string includes one or more segments with prefixes defined in the configuration. For example, for the **Store Material** operation from the **Material page**, the following string was used: ```markdown AAStorage-Resource-02%AE126 ``` The barcode below identifies the storage resource as `Storage-Resource-02` and the position as `126`. ![example of the barcode used in the store material wizard](../images/store_material_barcode_1.png) Because some fields are dependent on others, you might need to scan the barcode a second time to ensure all fields are populated correctly. When storing a material using the **Resource View**, the following string was used: ```markdown AXCookie01%AE122 ``` This barcode refers to the material `Cookie01` and the storage position `122`. ![example of the barcode used in the store material wizard](../images/store_material_barcode_2.png) To store more than one material, you need to trigger the system to add another item - which is done by using the `ColumnView.Add` boolean target field: ```markdown AAATrue%AXCookie02%AE124 ``` This barcode specifies that the system must add another item, with `ColumnView.Add` set to `True`, and that the material `Cookie02` should be stored at position `124`. ![example of the barcode used in the store material wizard](../images/store_material_barcode_3.png) To store one more material, the following string was used: ```markdown AAATrue%AXCookie03%AE125 ``` This barcode performs the same action for `Cookie03`, placing it in position `125`. ![example of the barcode used in the store material wizard](../images/store_material_barcode_4.png) To **Retrieve a Material** from a storage resource, the following string was used: ```markdown AXCookie012 ``` This barcode identifies the material `Cookie012` to be retrieved. ![example of the barcode used in the retrieve material wizard](../images/retrieve_material_barcode_1.png) Similarly to the store operation, when retrieving more than one material you need to send the `ColumnView.Add` corresponding value: ```markdown AAATrue%AXCookie02 ``` In this case, the `ColumnView.Add` flag is also set to `True`, and the material to retrieve is `Cookie02`. ![example of the barcode used in the retrieve material wizard](../images/retrieve_material_barcode_2.png) For the **Hold Material** operation, the following string was used: ```markdown AFGroup 01%AGThis lot was selected for a random inspection.%AH1234%AICookieManager ``` This barcode specifies a reason label (`Group 01`), a comment, a release code (`1234`), and a release role (`CookieManager`). ![example of the barcode used in the hold material wizard](../images/hold_material_barcode.png) To **Release a Material**, the following string was used: ```markdown AH1234 ``` This barcode uses only the release code (`1234`) to complete the release operation. ![example of the barcode used in the release material wizard](../images/release_material_barcode.png) The video below demonstrates how each of these barcodes is scanned and processed in sequence across different material operations: {% set video_id = 'a9903846f546d9c04b5681e823c48e7c' %} {% include-markdown 'includes/cloudflare_stream.md' %} !!! info Continue to [[tutorials-smart-barcode-simple-ui-page]] for another scenario.