--- alias: register-material description: "The documentation details a process for registering materials, utilizing barcode scanning and printer integration" --- # Register Materials :lock: Material.**Register** :lock: Material.**RegisterManual** ## Overview The **Register Materials** operation provides a simple **Material** creation process with support for barcode scanners of different types (ECIA, GS1 and MAT-Label) and, if configured to do so, writes the results to a predefined label and sends them to a predefined printer. ## Setup * A barcode reader should be available, either through a specific barcode reading device or a mobile device with a camera, such as a smartphone. * A **Facility** must exist in the system to which the Materials will be assigned during registration. !!! note The Register Materials operation cannot be executed in a Remote Facility. !!! info It is possible to define the default value for the **Facility** by editing the entry Context = `Material.Register`, Element = `Facility` in the Generic Table [[guielementdefaultvalue-gt]]. * A **Business Partner** must exist in the system with the Manufacturer property set to `true`. !!! info The **Business Partner** holds the information for the barcode format that will be scanned in order to register the **Materials**, defined through the Label Specification property. If a **Business Partner** with a required label specification does not exist in the system, it must be created. For more information, see the [[user-guide-create-business-partner]] page. * The **Register Materials** operation supports the creation of Materials for Products of the following types: * Raw Material * Durable * Part These are the only Product types that support the definition of Product Manufacturers, which is a prerequisite for the registration process. * Depending on the label format in use, the following Lookup and Generic configuration tables define how label data is interpreted: * [[labelspecification-lt]] - Lookup Table for Label Specifications * [[labelmaterialproperty-lt]] - Lookup Table for Material Properties * [[labelspecification-gt]] - Generic Table for defining the properties of the different Label Specifications * [[labelsymbologyidentifier-gt]] - Generic Table for defining label specs with symbology identifiers and barcode types * [[labelmaterialproperty-gt]] - Generic Table for setting Material properties or attributes that can be referenced as a Label Specification Field * [[labelspecificationfield-gt]] - Generic Table for defining each field in the label format, including prefix, length, and mapping ## Preconditions * The Material Logistics module is properly licensed in the system. ## Sequence of Steps Go to the **Planning and Logistics** menu to access the **Register Materials** operation. Upon opening the wizard, you can start adding materials by selecting :material-plus: to add each new **Material**. You can also select :material-trash-can: to remove a previously selected **Material**. For each **Material** that you add, perform these steps to register new **Materials** in the system: 1. Select a **Facility** to the Material to be created. 2. Select the Manufacturer. 3. Depending on the existing entries in the configuration tables, the appropriate fields will be shown for the defined label. Select :material-camera: to add a new **Material** by scanning a barcode through an available camera and the fields will be automatically filled out. If you have the `Material.RegisterManual` feature assigned, you can input values by entering them manually. !!! info The Generic Tables that define the configuration fields in the system are: * [[labelspecification-gt]] - master record with separators * [[labelspecificationfield-gt]] - contains the list of known fields * [[labelsymbologyidentifier-gt]] - barcode type identifiers (optional for some Label Specifications) If there is no Label Specification defined, you can use a barcode to read the fields as defined in the [[labelmaterialproperty-lt]] Lookup Table by selecting the field first and scanning it afterwards. After a successful field scan, the next field will be automatically selected until there are no more available fields to select. !!! note There is native support for **Material** attributes, you simply need to add the attribute to the [[labelmaterialproperty-lt]] Lookup Table and then to the [[labelmaterialproperty-gt]] and [[labelspecificationfield-gt]] Generic Tables. !!! warning If a Label Specification is defined but invalid (if there is no data to support it in the [[labelspecification-gt]] or [[labelspecificationfield-gt]] tables) an error message is displayed. 4. Optionally, select the number of identical **Materials** records to be created from this entry, each with the same properties. 5. Optionally, choose how many labels will be printed per **Material** created by opening the **Printing Options** section on the top right corner and entering the appropriate value. !!! note For this functionality to work correctly, the **Step** where the **Material** will be created must have a **Printable Document** assigned to the `Material Label` property, and the `Print Material Labels Automatically` property must be set to `true`. 6. Select **Register** to finish the process and the **Materials** will be created. ![Screenshot showing a registration step in a workflow, with a focus on completing the process to create Materials.](../../images/register_materials.png) !!! info Will also be useful to see the [[tutorials-materialregistration]] tutorial. ### Label Specification Mappings There are some specific Label Specification mappings that are bound to certain conditions and configurations: * If the `/Cmf/System/Configuration/MaterialLogistics/RegisterMaterials/AutopopulateDataFromProductManufacturer` configuration entry is set to `true`, some fields will be automatically filled out: * The **Material** Primary Quantity property will be filled out with the value from the Standard Quantity property from the matching Manufacturer. * The **Material** Moisture Sensitivity Level property will be filled out with the value from the Moisture Sensitivity Level property from the matching Manufacturer. * If the field that maps to the **Material** Moisture Sensitivity Level property has been set with the value `6` (Time on Label), an additional mandatory field named Time on Label will be displayed: * The field will be mapped to the **Material** Floor Life Remaining Hours property. * The field accepts both manual values, bypassing the requirement for the `Material.RegisterManual` feature, and automatic values (using the barcode scanner or the device camera). * If the `/Cmf/System/Configuration/MaterialLogistics/RegisterMaterials/InferManufacturerFromManufacturerPartNumber/` configuration entry is set to `true`, the system will try to infer the Manufacturer from the Manufacturer Part Number. !!! note If the scanned information does not have a valid mapping, the system should ignore the information.