6 General Recommendations and Tips for Implementation
6.1 Data Consistency in Job Management
Within the framework of job management, the flow and association of data are meticulously structured to ensure consistency and traceability throughout the production process. The connectivity of data is outlined as follows:
An Article is composed of multiple Parts.
Items represent specific instances of an Article.
Processes are defined abstractly.
Processes are the tangible implementations of a process. For instance, if a wire requires both ends to be crimped, the job will have two distinct processes of the type 'Crimp,' each with its own identifier.
Processes can reference corresponding elements in the ArticleSpec.
Results are uniquely identified using the Process ID (ArticleID and JobID are also given in the result but are not sufficient to clearly assign the result to the corresponding processes or parts). This ensures precise allocation and traceability of outcomes.
Figure 11 illustrates the thoroughness of data, from a measurement result to a Contact Point within an Article:
CP1 (Contact Point 1) and CP2 (Contact Point 2) are elements of a Part within the Article that need processing.
Strip 1, Crimp 1, Cut 1, Strip 2, and Crimp 2 represent individual tasks to be performed, tied to their respective Crimp points.
JOB Result: Results, such as 'Actual Crimp Height,' are the measurable outcomes from the execution of the job. Each result is linked back to the specific process instance, such as Crimp 1 or Crimp 2, ensuring that the measurement can be traced back to the corresponding action and Part within the Article.
The visualization of the process in the image underscores the seamless flow of data from the initial design of an Article through to the final measured result of a job. This integration is vital for maintaining the integrity of the manufacturing process, allowing for precise adjustments, quality control, and accountability across all stages of production. By establishing a clear linkage between Articles, jobs, process instances, and results, the system facilitates a robust and efficient manufacturing environment for wire harnesses.

6.2 Mapping Part Data
A Part in this Companion Specification is represented by a value of the 3:ISA95MaterialDataType which contains an entry in the Properties field. Table 15 lists all Parameters a needed by a Part element.
| ParameterName | DataType | Description |
| VECPartVersion | 7:PartVersion | Contains the master data of the part. Only the ID of the 7:PartVersion is mandatory. The Values of Company, PartNumber, 7:PartVersion are optional. |
| VECDocumentVersion | 7:DocumentVersion | Contains the master data of the article. The field Specification contains important specifications for that part. The kind of specification depends on the process of the machine. |
The MaterialDefinitionID represents the part number, which must be unique within the company.
The MaterialClassID is restricted to the value range of the VEC 7:PrimaryPartType. The table contains the MaterialClassID (7:PrimaryPartType) for the different processes.
| Process | MaterialClassID |
| Cut | Wire |
| Strip | Wire |
| Seal | CavitySeal, MultiCavitySeal |
| Crimp | Terminal, WireEndAccessory, PluggableTerminal, RingTerminal, WireEndAccessory, (SpliceTerminal, BoltTerminal, BridgeTerminal, OpenWireEndTerminal) |
The linkage between the 3:ISA95MaterialDataType and the VEC is established through the 7:PartVersion. The PartVersion.PartNumber must be the same as in MaterialDefinitionID.
The field Specification of the 7:DocumentVersions contains important specifications for the Part. The kind of specification depends on the processes of the machine. If a machine covers more than one process, all Specifications need to be implemented. Section 10.2 contains more information about the specification and the content which is needed.
| ProcessName | Specifications |
| Crimp | WireSpecification/ |
| Cut | WireSpecification |
| Seal | WireSpecification/ |
| Slit | WireSpecification |
| Strip | WireSpecification |
It is recommended that only one entry is used for each Part. If the quantity of the Part is more than one, the Quantity field should be used.
6.3 Mapping Article Spec Data
An Article in this Companion Specification is represented by a value of the 3:ISA95MaterialDataType which contains an entry in the Properties field. Table 18 lists all Parameters needed by an Article element.
| ParameterName | DataType | Description |
| VECPartVersion | 7:PartVersion | Contains the master data of the article. Only the ID of the 7:PartVersion is mandatory. The Values of Company, PartNumber, 7:PartVersion are optional. |
| VECDocumentVersion | 7:DocumentVersion | Contains the master data of the article. The field Specification contains important specifications for that article. The kind of specification depends on the process of the machine. |
| Processes | ProcessInputType[] | Contains the information of which processes should be done to create the article. The SubTypes of the ProcessInputType can contain process parameters and monitoring flags. |
The MaterialDefinitionID represents the article number, which must be unique within the company.
The MaterialClassID is restricted to the value “PartStructure”.
The linkage between the 3:ISA95MaterialDataType and the VEC is established through the 7:PartVersion, where all attributes except for _id are optional.
| ProcessName | Specifications | Roles of the components in the CompositionSpecification |
| Crimp | PartStructureSpecification ContactingSpecification | WireRole TerminalRole |
| Cut | CompositionSpecification PartStructureSpecification | WireRole |
| Seal | CompositionSpecification PartStructureSpecification | WireRole CavityPartRole |
| Slit | CompositionSpecification PartStructureSpecification | WireRole |
| Strip | CompositionSpecification PartStructureSpecification | WireRole |
The details for the different Parts and Articles are described below.
6.4 Relevant Elements of ISA95JobOrderDataType
| Name | Type | Description |
| JobOrderID | 0:String | An identification of the Job Order. |
| JobOrderParameters | 3ISA95ParameterDataType[] | Key value pairs, not associated with a resource, that are provided as part of the job order; may be empty if not specified. |
| MaterialRequirements | 3:ISA95MaterialDataType[] | A specification of any material requirements associated with the job order; may be empty if not specified. Note: To comply with this Companion Specification, at least one material must be specified (including Article Specification and Quantity > 0), and the MaterialUse must be set to "material produced". |
| Name | Type | Description |
| PersonnelActuals | 3:ISA95PersonnelDataType[] | A specification of any personnel actuals associated with the job response, may be empty if not specified. |
6.5 Relevant Elements of ISA95JobResponseDataType
| Name | Type | Description |
| JobResponseID | 0:String | A unique identification of the Job Response. |
| JobOrderID | 0:String | An identification of the Job Order. |
| JobOrderParameters | 3:ISA95ParameterDataType[] | Key value pairs, not associated with a resource, that are provided as part of the job order; may be empty if not specified. |
| JobState | 3:ISA95StateDataType[] | The current state of the job. The array shall provide at least one entry representing the top-level state and, potentially, additional entries representing substates. The first entry shall be the top-level entry, having the BrowsePath set to null. The order of the substates is not defined. |
| MaterialActuals | 3:ISA95MaterialDataType[] | A specification of any material requirements associated with the job order; may be empty if not specified. Note: To comply with this Companion Specification, at least one material must be specified (including Article Specification and Quantity > 0), and the MaterialUse must be set to "material produced." |
| Name | Type | Description |
StartTime | 0:DateTime | The actual start time for the job order. |
EndTime | 0:DateTime | The actual end time for the job order; may be empty if the job has not yet completed. |
| PersonnelActuals | 3:ISA95PersonnelDataType[] | A specification of any personnel actuals associated with the job response, may be empty if not specified. |
6.6 Mapping JobManagement and Result Transfer Variables
For data consistency, the values of the Machinery Job Management and the Result Transfer must also be mapped. Table 24 defines the mapping between the values of the two models in the scope of this specification.
| ResultMetaData | JobManagement | Comment | Example |
| ResultId | No mapping defined | Result_123 | |
| StepId | ProcessInputDataType.id | strip_left_1_22 | |
| PartId | No mapping defined | wire_1234 | |
| ProductId | MaterialDefinitionID (of the article) | MySAP-Number-123 | |
| JobId | JobOrderId | MyJob-100pcs-0.75mm2-blue |
6.7 Relevant Elements of ResultDataType
| Name | Type | Description |
| ResultId | 0:TrimmedString | System-wide unique identifier, which is assigned by the system. This ID can be used for fetching exactly this result using the method GetResultById and is identical to the ResultId of the ResultReadyEventType. If the system does not manage ResultIds, it should always be set to “NA.” |
| StepId | 0:TrimmedString | Identifies the step which produced the result. Although the system-wide unique JobId would be sufficient to identify the job which the result belongs to, this makes for easier filtering without keeping track of JobIds. This specification does not define how the StepId is transmitted to the system. Typically, it is provided by the Client when starting an execution. |
| PartId | 0:TrimmedString | Identifies the part used to produce the result. Although the system-wide unique JobId would be sufficient to identify the job which the result belongs to, this makes for easier filtering without keeping track of JobIds. This specification does not define how the PartId is transmitted to the system. Typically, it is provided by the Client when starting the job. |
| ProductId | 0:TrimmedString | Identifies the product used to produce the result. This specification does not define how the ProductId is transmitted to the system. Typically, it is provided by the Client. |
| JobId | 0:TrimmedString | Identifies the job which produced the result. This ID is unique within the system and is assigned by the system. |
| ResultEvaluation | 6:ResultEvaluationEnum | The ResultEvaluation indicates whether the result was within tolerance. |
| ProcessingTimes | 6:ProcessingTimesDataType | Collection of different processing times that were needed to create the result. |
6.8 Handling of Batches
There are different methods for handling batches in the JobOrderRequest. An order with batches can be managed via separate job orders or through one run for each batch. A run is treated as a JobOrder, but is not included in the workflow.
Example: A custom order should contain 40 articles (4 batches of 10 articles each). This can be managed as either 4 job orders on the machine, each with 10 articles, or as one job order with 10 articles and 4 runs.
6.9 Recommendations for the State Machines
The different state machines from the Machinery Basic Building Blocks and ISA-95 JobManagement work together. In this specification, the recommendations in Table 26 should be followed:
| Case | MachineryItemState | MachineryOperationMode | Job State Machine |
| Teach & Verify | All possible | Setup | Running |
| Verify Process in a production phase | Executing | Processing | Running |