# Automatic Track-In ## Overview This feature enables automatic material **Track-In** into the MES Resource. ### Behavior Handle Tracking messages `PCBCHECKIN` and `PRODSTARTED`. **If First Module:** Will use `PCBCHECKIN` and respond with `PCBCHECKIN_ACK` with: - `Result = 0` (OK) if material is successfully tracked in - `Result = 1` (NOK) if material could not be tracked in **If Following Modules:** Will use `PRODSTARTED` and respond with `PRODSTARTED_ACK` with: - `Result = 0` (OK) if material is successfully tracked in - `Result = 1` (NOK) if material could not be tracked in ### Configuration Options - Allow the user to configure the **first module** of the Fuji machine - Allow the user to **enable or disable** the Track-In functionality - Allow the user to **validate BOM** at start of production ## Relevant Artifacts The table below describes the properties for this entity type: | Name | Type | Is Mandatory | Data Type | Description | |----------------------|-------------|--------------|-----------|--------------------------------------------------| | IoTMetadataDefinition | SmartTable | Yes | | Metadata configuration for equipment integration | ## How It Works ### Area Feature Checks - Resolves the MES Resource Name using `FUJI_LineNameMachineNameModuleNo_`. - Checks if Areas' `FUJINEXIM_maxNumberOfRetries` is defined. ### Resource Feature Checks - Checks if `FujiIsFirstModule` is set to `true` for the resource. - Checks if `UseFujiToTrackIn` is enabled. - Checks if `UseTrackInOperation` is defined: - If defined, uses the specified operation. - If not, defaults to **ComplexTrackIn**. ??? info "Track-In Operations" - TrackIn - ComplexTrackIn - ComplexDispatchAndTrackIn - ComplexDispatchAndTrackIns ### Material Operations Calls the DEE `IoTMaterialOperation` unless `UseFujiToTrackIn` is not set, in which case the DEE call is bypassed. After a successful Track-In using `PCBCHECKIN` a queue will be generated for the next Module to store the Material Identification to use for `PRODSTARTED` event. If is `PRODSTARTED` we will retrieve the queue and check if for the current Module we have any ## Track-In Configuration SmartTable `IoTMetadataDefinition` should be configured with the following entries: ??? example "Sample Configuration" | Resource | ResourceType | Area | Name | Value | |---------------------------|--------------|------------------|-----------------------------------------------------------------------------------------------|---------------------| | | | Fuji Line Area | FUJI_LineNameMachineNameModuleNo_{EquipmentLineName}_{EquipmentMachineName}/{EquipmentModuleNumber} | MES ResourceName | | MES Fuji Station 1 | | | FujiIsFirstModule | True | | MES Fuji Station X | | | UseFujiToTrackIn | True | | MES Fuji Station X | | | UseTrackInOperation | *TrackInOperation* | ## BOM Pre-Check Validation - Enable BOM validation by setting `usebomvalidation = true` - Define the MES service to be used via `useBOMValidationService` **<Input object>, <Namespace> | <url>**. _(default value: Cmf.SMT.IoT.Utilities.Orchestration.InputObjects.ValidatePlacementListInput, Cmf.SMT.IoT.Utilities.Orchestration | api/IoTUtilities/ValidatePlacementList)_. ??? Example | Resource | ResourceType | Area | Name | Value | |---------------|--------------|-------------------------|--------------------------|--------------------------| |MES Fuji Station 1 Resource| | | usebomvalidation | true | |MES Fuji Station 1 Resource| | | useBOMValidationService | Cmf.Custom.ProjectName.Orchestration.InputObjects.CustomValidatePlacementListInput, Cmf.Custom.ProjectName.Orchestration\|api/ProjectName/ValidatePlacementList |