Skip to main content
Version: Next

Material Association

Introduction​

MaterialAssociationActivity is a MES-specific material code association query node used to query the associated product serial number based on the material barcode. This node looks up the product code corresponding to the material barcode in the trace data according to the configured material association rules, realizing material-product association traceability.

Configuration Items​

This node is controlled via system configuration and flow context variables.

System Configuration​

Configuration ItemDescription
MaterialAssociationConfigMaterial Association Configuration List

Material Association Configuration (MaterialAssociationConfig)​

FieldDescription
WorkSectionCodeWork Section Code
WorkSectionIdWork Section ID
MaterialNameMaterial Name
MaterialKeyMaterial Parameter Key

Input Variables​

Variable NameConstantTypeDescription
MaterialCodeFlowItemCollection.MaterialCodestringMaterial Barcode to Query
OrderModelFlowItemCollection.OrderModelOrderModelOrder Model (Optional)
ProductModelFlowItemCollection.ProductModelAssociationProductModelProduct Model (Optional)

Output Variables​

Variable NameConstantTypeDescription
SerialNumberFlowItemCollection.SerialNumberstringAssociated Product Serial Number
MaterialCodeAssociationDescriptionValueFlowItemCollection.MaterialCodeAssociationDescriptionValuestringQuery Result Description

Business Logic​

Execution Flow​

┌─────────────────────────────────────────────────────────────┐
│ MaterialAssociationActivity │
├─────────────────────────────────────────────────────────────┤
│ EnterAsync - Initialization Phase │
│ └─ Set Association Desc = "Not Initialized" │
├─────────────────────────────────────────────────────────────┤
│ ProcessAsync - Processing Phase │
│ ├─ Get Material Code │
│ │ └─ Empty → Return "Material Code Acquisition Failed" │
│ ├─ Get Material Association Config │
│ │ └─ Not Configured → Return "Material Product Assoc..." │
│ ├─ Get Process Route │
│ ├─ Traverse Assoc Config to Query Product Code │
│ │ ├─ Check if process is in process route │
│ │ └─ Call trace service to query associated product code │
│ └─ Set Query Result │
│ ├─ Found → Set SerialNumber │
│ └─ Not Found → Set Exception Description │
└─────────────────────────────────────────────────────────────┘

Query Logic​

  1. Configuration Validation

    • Check if material association configuration exists.
    • Verify if process ID in configuration is valid.
  2. Process Route Filtering

    • Get process route of current product.
    • Only query in processes included in the process route.
  3. Association Query

    • Traverse material association configuration.
    • Call IProductTraceChecker.GetSerialNumber to query.
    • Return immediately upon finding the first matching product code.

Usage Example​

Basic Flow Configuration​

┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Scan Material Code│────▶│MaterialAssociation│────▶│InboundInitialize │
│ │ │ Material Assoc │ │ Inbound Init │
└──────────────────┘ └──────────────────┘ └──────────────────┘

Set Material Code​

{
"Activities": [
{
"Name": "Read Material Code",
"Type": "VariableReadActivity",
"VariableName": "MaterialCode"
},
{
"Name": "Material Association Query",
"Type": "MaterialAssociationActivity"
},
{
"Name": "Check Query Result",
"Type": "ConditionActivity",
"Condition": "SerialNumber != null && SerialNumber != ''"
}
]
}

Typical Application Scenario​

┌──────────────────┐
│ Scan Material Code│
│ Set MaterialCode │
└────────┬─────────┘
│
▼
┌──────────────────┐
│MaterialAssociation│ ← Query product code by material code
│ Material Assoc │
└────────┬─────────┘
│ Set SerialNumber
▼
┌──────────────────┐
│InboundInitialize │ ← Inbound using queried product code
│ Inbound Init │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Subsequent Detect │
└──────────────────┘

Error Handling​

Error ScenarioDescription ValueDescription
Material Code EmptyMaterial Code Acquisition FailedInput material code is empty
Config Not SetMaterial Product Association Process Not ConfiguredSystem has no material association rules configured
Query ExceptionException InfoException occurred during query
No Association FoundMaterial Code Not Bound to Product CodeMaterial code has no associated product in trace data

Notes​

  1. Configuration Required: Material association rules need to be set in system configuration.
  2. Process Route Filtering: Only query in processes included in product process route.
  3. First Match: Returns upon finding the first matching product code.
  4. Trace Data Dependency: Query is based on existing trace data.
  5. Exception Handling: Query exceptions are captured and recorded in description variable.
  6. Inbound Coordination: Usually used before Inbound Initialization.