--- alias: tutorials-smart-barcode-process-material glightbox: false description: "Configure barcode scanning to automate material processing operations, streamlining dispatch, track-in, and move-next workflows" --- # Process a Material Smart Barcode Scanning can streamline several key operations during material processing, including dispatch, track-in, and move-next operations. By configuring the barcode field mappings correctly, the system can parse and populate required fields automatically - eliminating manual inputs and reducing operator workload. ## Configuration This section explains how to configure the [[labelspecificationfield-gt]] Generic Table to support Smart Barcode Scanning in the most common processing scenarios. ### Dispatch To enable barcode scanning when dispatching a material, you need to add the following fields in the [[labelspecificationfield-gt]] table. These define the resource and its queue order, which the system will extract from the barcode. | Label Specification | Field Name | Field Sequence | Field Data Type | Field Prefix | Target Field | | ------------------- | -------------------- | :------------: | --------------- | ------------ | ------------------- | | GS1 | Resource Name | 1 | String | AA | Resource.Name | | GS1 | Resource Queue Order | 2 | String | BA | Resource.QueueOrder | Table: Fields required for enabling Smart Barcode Scanning in the Dispatch Material wizard Once the values have been added, refresh your application. The following image illustrates the configuration: ![Add label specification field to use smart barcode scanning in the dispatch material wizard](../images/dispatch_material_label_specification_field.png) ### Track-In/Track-Out When performing a Track-In or Track-Out operation, you can configure the system to retrieve the required state transition and, optionally, a reason from the barcode. This is particularly useful when working with materials which have state models that require reasons for each transition (for example, the SEMI E58 state model). The table below shows the specifications that you need to add to the [[labelspecificationfield-gt]] table. | Label Specification | Field Name | Field Sequence | Field Data Type | Field Prefix | Target Field | | ------------------- | ---------------- | :------------: | --------------- | ------------ | -------------------- | | GS1 | State Transition | 1 | String | AB | StateTransition.Name | | GS1 | Reason | 2 | String | AC | Reason.Name | Table: Fields required for enabling Smart Barcode Scanning in the Track-In/Track-Out wizard If your state model does not require a reason, you can omit that entry. After configuring these values, refresh the application to apply the changes. ![Add label specification field to use smart barcode scanning in the track-in material wizard](../images/trackin_material_label_specification_field.png) ### Special Move-Next For operations that require sending a material to a specific step using the Special Move-Next operation, barcode scanning can be used to automatically provide the flow and step information, using the specifications displayed in the table below. | Label Specification | Field Name | Field Sequence | Field Data Type | Field Prefix | Target Field | | ------------------- | ------------- | :------------: | --------------- | ------------ | ------------------- | | GS1 | Material Flow | 8 | String | HX | Material.Flow.Name | | GS1 | Material Step | 9 | String | GX | Material.Step.Name | Table: Fields required for enabling Smart Barcode Scanning in the Special Move-Next Material wizard As before, apply the changes by refreshing your application. You can confirm your setup using the image below: ![Add label specification field to use smart barcode scanning in the special move-next material wizard](../images/movenext_material_label_specification_field.png) ## Barcode Scanning in Action With the configuration complete, you can now scan barcodes to perform each of the material processing operations. The examples below show the barcode strings used in the video demonstration. Each string contains segments that begin with a prefix defined in the configuration. These prefixes are used by the system to identify the correct target fields. The order of the segments is not important - as long as the prefixes match, the fields will be populated correctly. For example, for the **Dispatch Material** operation, the following string was used to generate the corresponding barcode: ```markdown AAMixer-01%BALast ``` The barcode below identifies the resource as `Mixer-01` and defines the queue order as `Last`: ![example of the barcode used in the dispatch material wizard](../images/dispatch_material_barcode.png) For the **Track-In Material** operation, the following string was used to generate the corresponding barcode: ```markdown ABEngineering%ACStandard ``` This barcode provides the name of the state transition (`Engineering`) and the reason (`Standard`), which may be required depending on the resource state model. ![example of the barcode used in the track-in material wizard](../images/trackin_material_barcode.png) In some cases, you may need to scan the same barcode twice. This happens when certain fields depend on the values of others, and the system requires the data to be resolved in sequence. For the **Track-Out Material** operation, the string below was used to generate the barcode: ```markdown ACSBY/No operator ``` The barcode generated and shown below includes only a reason (`SBY/No operator`) to complete the transition. In this case, a reason is mandatory since the resource state model used is SEMI E58. ![example of the barcode used in the track-out material wizard](../images/trackout_material_barcode.png) For the **Special Material Move-Next** operation, the string below was used to generate the barcode: ```markdown HXBaking ``` The barcode below specifies that the material should move to the `Baking` step. ![example of the barcode used in the move next material wizard](../images/movenext_material_barcode.png) The video below demonstrates how each barcode is scanned and processed across the different operations: {% set video_id = '18000e1d2881ff09233758c0beca33a8' %} {% include-markdown 'includes/cloudflare_stream.md' %} !!! info Continue to [[tutorials-smart-barcode-other-usecases]] for another scenario.