--- alias: smart-barcode-scanning description: "Smart Barcode Scanning automatically populates data in Critical Manufacturing MES, streamlining operator workflows by scanning barcodes for instant field population" --- # Smart Barcode Scanning Smart Barcode Scanning in Critical Manufacturing MES is designed to simplify user interactions, especially for operators, by minimizing manual input. With this feature enabled, scanning a barcode automatically populates the corresponding fields on-screen, regardless of the order in which they appear. The system supports both 1D and 2D barcodes, including standards such as GS1, ECIA, and Mat-Label, which use specific prefixes to encode multiple values within a single barcode string. !!! info You can use this feature with the [[find-entity-control#barcode-support]]. ## Sequence of Steps To enable the Smart Barcode Scanning, follow these steps: 1. In the **Administration** menu, navigate to the **Configuration** entity and locate the `/Cmf/Guis/Configuration/Common/Barcode/LabelSpecification/` configuration entry. 2. This configuration entry is empty by default. Add the appropriate label specification value (for example, `GS1`), ensuring it matches a corresponding value in the [[labelspecification-lt]] Lookup Table. ![Edit Barcode Configuration Entry](images/barcode_input_config_entry.png) 3. Define the fields to be recognized during a barcode scan by configuring the [[labelspecificationfield-gt]] Generic Table. Each entry should reference a prefix and the corresponding target field. !!! tip To speed up configuration, you can import all barcode properties at once using the Master Data Packages tile to upload the Label Specification Field Template. For more information, see [[tutorials-smart-barcode-configuration-index]] and [[master-data-packages-admin#loading-a-master-data-package|Loading a Master Data Package]]. ## Supported Components The Smart Barcode Scanning feature has been integrated into multiple areas of the Critical Manufacturing MES to enhance user efficiency and streamline operations. On supported pages, Smart Barcode Scanning enables you to quickly select items within grids and apply filters without manual input. The following page views currently support this feature: * [[resource-page#resource-view|Resource View]] * [[step-page#step-view|Step View]] This feature is also available across several MES wizards, allowing barcode scans to directly populate wizard fields. Supported wizards include: * [[user-guide-attach-as-consumable]] * [[user-guide-abort-material-process]] * [[user-guide-create-material]] * [[user-guide-dispatch-material]] * [[user-guide-hold-material]] * [[user-guide-manage-resource-durables]] * [[user-guide-material-move-next]] * [[user-guide-release-material]] * [[user-guide-retrieve-material]] * [[user-guide-store-material]] * [[user-guide-track-in-material]] * [[user-guide-track-out-material]] Additionally, this feature is enabled in the following UI Widgets/System Task: * [[user-guide-system-tasks-data-sources#barcode|Barcode Data Source]] * [[user-guide-uipage-widgets-filter]] * [[user-guide-uipage-widgets-form]] * [[user-guide-uipage-widgets-grid]] * [[user-guide-uipage-widgets-sliding-grid]] * [[user-guide-uipage-widgets-tabs-widget]] ### Step View The filters that can be activated in the Materials tab and the Resource tab of the Step View are listed in the tables below. === "Materials Tab" | Filter | Target Field | |-------------------------| ------------------------------| | Material State Filter | `Material.SystemState` | | Material Product Filter | `Material.Product.Name` | | Material Flow Filter | `Material.Flow.Name` | | Material Name Filter | `Material.Name` | Table: Filters and corresponding target fields available for Smart Barcode Scanning in the Materials tab of the Step View !!! note The Material list supports item selection using the `Material.Name` target field. You can also select items by directly scanning a Material name, following the guidelines in the [[barcodes-section|Standard Barcode Scanning]]. === "Resources Tab" | Filter | Target Field | |-------------------------| -------------------------------| | Processing Type Filter | `Resource.ProcessingType` | | System State Filter | `Resource.SystemState` | | State Model Filter | `Resource.MainStateModelState` | | Resource Name Filter | `Resource.Name` | Table: Filters and corresponding target fields available for Smart Barcode Scanning in the Resources tab of the Step View ### Resource View The filters that can be activated in the several tabs of the Resource View are listed in the table below. | Filter | Target Field | View | | ----------------------- | ------------------------------ | ------------------------------------------------------------------------- | | Material Product Filter | `Material.Product.Name` | Dispatch List, Materials at Resource, Dispatch List (Batch Resource View) | | Material Flow Filter | `Material.Flow.Name` | Dispatch List, Materials at Resource, Dispatch List (Batch Resource View) | | Material Step Filter | `Material.Step` | Dispatch List, Materials at Resource, Dispatch List (Batch Resource View) | | Material Name Filter | `Material.Name` | Dispatch List, Materials at Resource, Dispatch List (Batch Resource View) | | Material State Filter | `Material.SystemState` | Materials at Resource | | System State Filter | `Resource.SystemState` | Load Port, Sub-Resources | | State Model Filter | `Resource.MainStateModelState` | Load Port, Sub-Resources | | Resource Name Filter | `Resource.Name` | Load Port, Sub-Resources | | Processing Type Filter | `Resource.ProcessingType` | Sub-Resources | Table: Filters and corresponding target fields available for Smart Barcode Scanning in the Resource View The Material list available on the Dispatch List (for Processing Resources or Batch Resources) and the Materials at Resources tab support item selection using the `Material.Name` target field. You can also select items by directly scanning a Material name, following the guidelines in the [[barcodes-section|Standard Barcode Scanning]]. The Resource list in the Load Port, Sub-Resources, and Consumable Feed tabs support item selection using the `Resource.Name` target field. The Recipe tab supports filtering Recipe Parameters through the `Parameter.Name` target field. Additionally, the Storage Resource View supports filtering and selection across Materials, Containers, and Resources, as shown below: | Entity | Target Field | |-------------------------| -------------------------------| | Materials | `Material.Name` | | Containers | `Container.Name` | | Resources | `Resource.Name` | Table: Entities and corresponding target fields available for Smart Barcode Scanning in the Storage Resource View ### Wizards The actions and fields that can be activated through Smart Barcode Scanning across various MES wizards are summarized in the table below. | Action | Target Field | Wizard | |---------------------------------------|----------------------------------------------------|----------------------------------------------| | Select Resource to dispatch Material | `Resource.Name` | Dispatch, Track-In, Track-Out, Abort | | Specify Resource State Transition | `StateTransition.Name` | Dispatch, Track-In, Track-Out, Abort | | Specify a Reason | `Reason.Name` | Dispatch, Track-In, Track-Out, Abort | | Specify Queue Order | `Resource.QueueOrder` | Dispatch, Track-In, Track-Out, Abort, Attach Consumable | | Specify Resource Location | `ResourceLocation.Name` | Attach Consumable | | Specify a Material for a Durable | `ResourceDurable.Material.Name` | Manage Resource Durables | | Specify a Position for a Durable | `ResourceDurable.Position` | Manage Resource Durables | | Select Flow | `Material.Flow.Name` | Move-Next and Special Move-Next | | Select Step | `Material.Step.Name` | Move-Next and Special Move-Next | | Select Flow Path | `Material.FlowPath` | Move-Next and Special Move-Next | | Specify Hold information | `Reason.Label`, `Reason.Comment`,
`Reason.ReleaseCode`, `Reason.ReleaseRole` | Hold | | Specify Release code | `Reason.ReleaseCode` | Release | Table: Actions and corresponding target fields available for Smart Barcode Scanning in MES wizards For the Create wizard, the fields that can be activated with a barcode are displayed in the table below. | Material Property | Target Field | |-----------------------------------|-----------------------------------| | Material Name | `Material.Name` | | Material Description | `Material.Description` | | Material Type | `Material.Type` | | Material Facility | `Material.Facility.Name` | | Material Product | `Material.Product.Name` | | Material Form | `Material.Form` | | Material Flow | `Material.Flow.Name` | | Material Step | `Material.Step.Name` | | Material Primary Quantity | `Material.PrimaryQuantity` | | Material Primary Units | `Material.PrimaryUnits` | | Material Secondary Quantity | `Material.SecondaryQuantity` | | Material Secondary Units | `Material.SecondaryUnits` | | Material Expiration Date | `Material.ExpirationDate` | | Material Manufacturer | `Material.Manufacturer.Name` | | Material Supplier | `Material.Supplier.Name` | | Material Manufacturer Part Number | `Material.ManufacturerPartNumber` | | Material Manufacturer Lot Number | `Material.ManufacturerLotNumber` | | Material Manufacturer Date Code | `Material.DateCode` | | Material Purchase Order Number | `Material.PurchaseOrderNumber` | | Material RoHS Compliant | `Material.IsRoHSCompliant` | | Material Priority | `Material.Priority` | | Material Hot | `Material.IsHot` | | Material Exclude From Scheduling | `Material.ExcludeFromScheduling` | | Material Production Order | `Material.ProductionOrder.Name` | | Material Order Number | `Material.OrderNumber` | | Material Possible Start Date | `Material.PossibleStartDate` | | Material Due Date | `Material.DueDate` | | Material Target Material Quantity | `Material.TargetMaterialQuantity` | | Material Target Material Units | `Material.TargetMaterialUnits` | Table: Material properties and corresponding target fields available for Smart Barcode Scanning in the Create Material wizard In wizards with column views, Smart Barcode Scanning lets you add items to the left panel while automatically populating the corresponding details on the right — simplifying multi-step workflows and reducing manual effort. To enable this behavior, use the `ColumnView.Add` target field in your barcode configuration. ### Widgets The table below summarizes how different UI Widgets and System Tasks can be integrated with Smart Barcode Scanning. | Widget/System Task | Description | |---------------------|----------------------------------------------------------------------------------------------| | Barcode | Replaces the Barcode Context event listener with the task’s own listener, allowing you to define how barcode scans should be processed within that specific context.| | Form | Allows specifying the Barcode Field Name, which maps directly to the `TargetField` column in the [[labelspecificationfield-gt]] Generic Table. | | Filter | Allows specifying the Barcode Field Name, which maps directly to the `TargetField` column in the [[labelspecificationfield-gt]] Generic Table. | | Grid & Sliding Grid | Allows specifying the Barcode Field Name (mapped to `TargetField` in [[labelspecificationfield-gt]] Generic Table). Additionally, it supports defining the Barcode Field Value Path, which sets the property path to use when comparing scanned values to data within the grid rows. | | Tabs | No additional settings required; the system automatically disables scanning on inner widgets for tabs that are not currently selected, ensuring only the active tab responds to barcode scans. | Table: Supported UI Widgets/System Tasks and their configuration for Smart Barcode Scanning. ## Real Use Case The following example demonstrates how to configure and use the GS1 label specification to register a Material. It outlines how to define recognizable barcode segments and how those segments are parsed to automatically populate the corresponding fields in the MES interface. 1. Add the `GS1` value to the `/Cmf/Guis/Configuration/Common/BarcodeInputLabelSpecification/` configuration entry. ![Edit Barcode Configuration Entry](images/barcode_input_config_entry.png) 2. Add the fields that will be extracted from the barcode to the [[labelspecificationfield-gt]] Generic Table, as shown below. ![Add label specification field](images/add_label_specification_field.png) 3. In this example, the following fields will be used: ![Add label specification field values](images/label_specification_field_values.png) 4. Using the configured fields, we can now create a Material with the required fields using the following barcode: ```markdown 1ACookie01%2AProduction%3ALot%4BOrder123%6CCookieFactory%9DMixing ``` Each segment (for example, 1ACookie01, 2AProduction, 3ALot, etc.) corresponds to a specific field and value, based on the label specification configuration. And each of these segments are separated by a `%`. The diagram below explains the structure of this barcode: ![Diagram of a barcode that can be used with smart barcode scanning](diagrams/barcode_diagram_real_use_case.drawio.svg) 5. Scanning this code will fill out the Material required data, regardless of the order in which the fields are provided.