From 4dd365dccc76ef5a748b92ccd392681fc92532a3 Mon Sep 17 00:00:00 2001 From: mk Date: Fri, 26 Jan 2024 16:15:04 +0100 Subject: [PATCH 1/7] chore(concept):[#367] add concept for industry core --- .../#367-adapt-to-changes-industry-core.md | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md diff --git a/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md b/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md new file mode 100644 index 0000000000..05780c5e00 --- /dev/null +++ b/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md @@ -0,0 +1,139 @@ +# IndustryCore Changes #367 + +| Key | Value | +|---------------|-------------------| +| Autor | @ds-mkanal | +| Creation date | 26.01.2024 | +| Ticket Id | https://github.com/eclipse-tractusx/item-relationship-service/issues/367 | +| State | WIP | + +# Table of Contents +1. [Overview](#overview) +2. [Summary](#summary) +3. [Problem Statement](#problem-statement) +4. [Requirements](#requirements) +5. [NFR](#nfr) +6. [Out of scope](#out-of-scope) +7. [Assumptions](#assumptions) +8. [Definition of the Industry Core](#definition-of-the-industry-core) +9. [Glossary](#glossary) +10. [References](#references) +11. [Additional Details](#additional-details) + +# TODO +- TODO: globalAssetId of the twins being referenced MUST be equal to the unique ID being used in Catena-X. +- [ ] AAS manufacturerId is mandatory [Add AC to PBI] +- [ ] manufacturerPartId is mandatory [Add AC to PBI] +- [ ] customerPartId is optional [Add AC to PBI] +- [ ] assetLifecyclePhase optional for asBuilt and mandatory for asPlanned [Add AC to PBI] +- [ ] digitalTwinType mandatory > filter for digitalTwinType="PartType" or "PartInstance" [Add AC to PBI] +- [ ] SerialParts: Add optional van number for [Add AC to PBI] +- [ ] SerialParts: partInstanceId is mandatory [Add AC to PBI] + +# Overview + +The "Industry Core" is a fundamental element in the C-X network or system architecture. +It provides essential functions for identification, traversal, data flow, configuration, and communication in a modular and +interconnected environment. +The goal is to make components identifiable and discoverable at type and instance levels. +Enable seamless traversal across different tier levels. +Facilitate the creation of data chains. +Crucial role in configuring enablement services for component-based data exchange +Notification base message exchange. + +1. Identifiability and findability +2. Traversing Across multiple tier levels +3. Facilitate Data Chains +4. Configuration for Enablement Services +5. Components-Based Data Exchange +The core enables the sending of notifications, indicating that there's a mechanism for alerting or informing relevant parties about specific events or changes within the system. + +# Summary + +# Problem Statement + +# Requirements + + +# NFR + +# Out of scope + +# Assumptions + +# Definition of the Industry Core + +- [CX-0127-IndustryCorePartInstance#1.0.0](https://github.com/catenax-eV/product-standardization-prod/tree/CX-0127-IndustryCorePartInstance-v1.0.0/standards/CX-0127-IndustryCorePartInstance) + +## Standards to be complied with + +| Fullfilled | Standard | Description | +|------------|--------------------------------------------------|---------------------------------------------------------------------------------| +| [x] | CX-0002 Digital Twins in Catena-X 2.2.0 | Trace-Xs notification process and consumption of assets is bases on DT standards | +| [x] | CX-0018 Eclipse Data Space Connector (EDC) 2.1.0 | Data consumption and data provision as well as the sending and receiving of messages takes place exclusively via the EDC | + + +- [x] +CX-0018 Eclipse Data Space Connector (EDC) 2.1.0 + +## Describe Part at type and instance level + +| Level | Name | Description | Standard | +|----------------|---------------|----------------------------------------------------------------------------------|----------------------| +| Type Level | CatalogueType | Type Level (part number, material number, catalog part) | | +| Instance Level | SerialPart | Instance Level (vehicle, ECUs, serialized parts, batches, etc) | CX-0019 Aspect Model | +| Instance Level | Batch | Instance Level (vehicle, ECUs, serialized parts, batches, etc) | CX-0021 Aspect Model | +| Instance Level | JiS / JustInSequencePart | Instance Level (vehicle, ECUs, serialized parts, batches, etc) | | +|Instance Level | SingleLevelBomAsBuilt| RBuilts relationsship between parts in downwards direction (customer > supplier) | CX-0020 Aspect Model | +| Instance Level | PartSiteInformationAsBuilt | (shared aspect) | | + +# Changes in AAS +| Key | Availability | Description | +|------------|------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| manufacturerId | Mandatory | The Business Partner Number (BPNL) of the manufacturer of the part. | +|manufacturerPartId | Mandatory | | +|customerPartId | Optional | | +|assetLifecyclePhase | asPlanned(Mandatory) / asBuilt(Optional) | @Deprecated For serialized parts, batches, and JIS parts, use the value AsBuilt. For catalog parts in a Digital Twin As-Planned lifecycle phase, use the value AsPlanned. | +|digitalTwinType | Mandatory | digitalTwinType="PartType" OR digitalTwinType="PartInstance" For parts on an instance level (e.g. serialized parts, batches, and JIS parts), use the value PartInstance. For parts on a part type level (e.g. catalog parts), use the value PartType. | | | + +# Changes in SerialPart +| Key | Availability | Description | +|------------|------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| partInstanceId | Mandatory | | +| van | Optioonal | | + + +## Discoverable in the network + +- [ ] re-definition if the "specific asset ids" + +## Enable traversing across serveral tier levels +- Industry Core aspect models +- DataChain KIT + +## Configure the necessary enablement services +- EDC Setup (BPN-S/BPN-L, Policy Handling of the Core) + +## Sending of notifications +- Header +- EDC-Assets + +## Core Elements +- [CX-0002-DigitalTwinsInCatenaX](https://github.com/catenax-eV/product-standardization-prod/tree/CX-0127-IndustryCorePartInstance-v1.0.0/standards/CX-0002-DigitalTwinsInCatenaX) + + +# Glossary + +| Abbreviation | Name | Description | +|--------------|-------------------------|----------------------------------------------------------| +| ECU | Electronic Control Unit | An ECU's main job is to keep the engine working smoothly | +| JIS | Just In Sequence | Just-in-sequence is a delivery concept where parts are delivered to the production plant at a requested time in the exact order of installation, typically for a 1:1 dependency on the manufactured product. A just-in-sequence-part is a part for which this concept and order of delivery applies and which does not have a dedicated serial number (then it would be considered a serialized part). Examples for JIS-parts are seats and bumpers. | +| BPN | Business Partner Number | A BPN is the unique identifier of a partner within Catena-x. | +| |Part Instance|A part instance is a physically produced instance (e.g. serialized part, batch, just-in-sequence-part) of a part type. | +| |Part Type| A part type is a generic (not physically produced) part on material- or catalog-level as a representation for a designed part.| +| VAN | Vehicle Anonymised Number | A number mapped 1:1 to VIN, but pseudonomised.| + +# References + +# Additional Details +Given the dynamic nature of ongoing development, there might be variations between the conceptualization and the current implementation. For the latest status, refer to the documentation. From bd622a7819d6aac43ffc977cb84ecd9a46ac61f2 Mon Sep 17 00:00:00 2001 From: mk Date: Wed, 31 Jan 2024 20:22:14 +0100 Subject: [PATCH 2/7] chore(concept):[#367] adjust irs to industry core standard --- CHANGELOG.md | 1 + .../#367-adapt-to-changes-industry-core.md | 186 ++++++++++++------ 2 files changed, 132 insertions(+), 55 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 458cdcad76..213b5d8008 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Added helper script for building documentation locally. +- Added concept to conform with IndustryCore Changes CX-0126 and CX-127 ### Changed - Updated license header to "Copyright (c) 2021,2024 Contributors to the Eclipse Foundation" diff --git a/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md b/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md index 05780c5e00..912cce9ef7 100644 --- a/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md +++ b/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md @@ -9,26 +9,11 @@ # Table of Contents 1. [Overview](#overview) -2. [Summary](#summary) -3. [Problem Statement](#problem-statement) -4. [Requirements](#requirements) -5. [NFR](#nfr) -6. [Out of scope](#out-of-scope) -7. [Assumptions](#assumptions) -8. [Definition of the Industry Core](#definition-of-the-industry-core) -9. [Glossary](#glossary) -10. [References](#references) -11. [Additional Details](#additional-details) - -# TODO -- TODO: globalAssetId of the twins being referenced MUST be equal to the unique ID being used in Catena-X. -- [ ] AAS manufacturerId is mandatory [Add AC to PBI] -- [ ] manufacturerPartId is mandatory [Add AC to PBI] -- [ ] customerPartId is optional [Add AC to PBI] -- [ ] assetLifecyclePhase optional for asBuilt and mandatory for asPlanned [Add AC to PBI] -- [ ] digitalTwinType mandatory > filter for digitalTwinType="PartType" or "PartInstance" [Add AC to PBI] -- [ ] SerialParts: Add optional van number for [Add AC to PBI] -- [ ] SerialParts: partInstanceId is mandatory [Add AC to PBI] +2. [Problem Statement](#problem-statement) +3. [Concept](#concept) +4. [Definition of the Industry Core](#definition-of-the-industry-core) +5. [Glossary](#glossary) +6. [References](#references) # Overview @@ -46,20 +31,90 @@ Notification base message exchange. 3. Facilitate Data Chains 4. Configuration for Enablement Services 5. Components-Based Data Exchange -The core enables the sending of notifications, indicating that there's a mechanism for alerting or informing relevant parties about specific events or changes within the system. - -# Summary + The core enables the sending of notifications, indicating that there's a mechanism for alerting or informing relevant parties about specific events or changes within the system. # Problem Statement +The product IRS MUST align with the Industry Code Standard CX-126 and CX-127. + +# Concept + +## Version matrix + +|Artefact| Version | Availability | link | +|---|---------|-----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| +| AAS | | | | +| PartAsPlanned | 1.0.1 | Mandatory | [PartAsPlanned 1.0.1](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.part_as_planned/1.0.1) | +|PartAsPlanned | 2.0.0 | Optional (Mandatory for next version of CX-0126) | [PartAsPlanned 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.part_as_planned/2.0.0) | +| SingleLevelBomAsPlanned| 1.1.0 | Mandatory | [SingleLevelBomAsPlanned 1.1.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.single_level_bom_as_planned/1.1.0)] | +| SingleLevelBomAsPlanned| 2.0.0 | Optional (Mandatory for next version of CX-0126) | [SingleLevelBomAsPlanned 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.single_level_bom_as_planned/2.2.0)] | +| SerialPart| 1.0.1 | Mandatory | [SerialPart 1.0.1](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.serial_part/1.0.1) | +| SerialPart| 2.0.0 | Optional | [SerialPart 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.serial_part/2.0.0) | +| Batch| 2.0.0 | Mandatory | [Batch 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.batch/2.0.0) | +| Batch| 2.0.1 | Optional | [Batch 2.0.1](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.batch/2.0.1) | +| JustInSequencePart| 2.0.0 | Optional | [JustInSequencePart 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.just_in_sequence_part/2.0.0) | +| SingleLevelBomAsBuilt| 2.0.0 | Mandatory | [SingleLevelBomAsBuilt 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.single_level_bom_as_built/2.0.0) | +| PartSiteInformationAsBuilt| 1.0.0 | Integrated in Aspects JustInSequencePart / Batch / SerialPart | https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.shared.part_site_information_as_built/1.0.0 | + + +- JustInSequencePart: https://github.com/eclipse-tractusx/sldt-semantic-models/pull/563 +- Batch : https://github.com/eclipse-tractusx/sldt-semantic-models/pull/562 +- SerialPart: https://github.com/eclipse-tractusx/sldt-semantic-models/pull/557 + +## Changes in AAS handling + +### AAS Parameter + +|Parameter | Availability version aas 3.0.0 / 3.1.0 | Availability version aas 3.x.x | +|----|---|--| +|manufacturerId | Mandatory | Mandatory | +|manufacturerPartId | Mandatory | Mandatory | +|customerPartId | Optional | Optional | + + +### Descope @Deprecated assetLifecyclePhase +For serialized parts, batches, and JIS parts this will be deprecated with new version 3.x.x of AAS. +ASS parameter assetLifecyclePhase will not be used anymore to detect BOMLifecycle. Parameter 'digitalTwinType' is used instead. -# Requirements +### Use parameter 'digitalTwinType' to detect BOMLifecycle +**Parameter 'digitalTwinType'** -# NFR +| Key |Value| Description | +|--------------|---|-------------------------------------------------------------------------------------------------------| +| Name | digitalTwinType | Name of paramter in AAS | +| Availability | Mandatory | Parameter is mandatory - adjust required checks - Add exception handling in case parameter is not set | +| Values | PartType / PartInstance | PartType= asPlanned parts / PartInstance == parts on an instance level (e.g. serialized parts, batches, and JIS parts) | -# Out of scope +#### Configuration of parameter 'digitalTwinType' +Parameter is configurable for dDTR instance and has to be configured for integration test. -# Assumptions +https://github.com/eclipse-tractusx/sldt-digital-twin-registry/blob/f438fe96a7ae1f1b920e8e4fb4114fb7af32643d/charts/registry/values.yaml#L51 +https://github.com/eclipse-tractusx/sldt-digital-twin-registry/blob/f438fe96a7ae1f1b920e8e4fb4114fb7af32643d/charts/registry/README.md#:~:text=externalSubjectIdWildcardAllowedTypes + +### Visbility of Specific Asset IDs in the DTR +* Usage of parameter 'externalSubjectIds' which contains 'specificAssetIds'. Parameter 'externalSubjectIds' restricts visibility exclusively to manufacturer. + +## Semantic Models + +### SerialPart +|Parameter | Availability | +|----|------------------| +|partInstanceId | Mandatory | +|van | Optional | + +### Batch +|Parameter | Availability | +|----|------------------| +|partInstanceId | Mandatory | +|batchId | Optional | + +### JiS +|Parameter | Availability | +|----|------------------| +|jisNumber | Mandatory | +|parentOrderNumber | Optional | +|jisCallDate | Optional | +|partInstanceId | Mandatory | # Definition of the Industry Core @@ -67,14 +122,16 @@ The core enables the sending of notifications, indicating that there's a mechani ## Standards to be complied with -| Fullfilled | Standard | Description | -|------------|--------------------------------------------------|---------------------------------------------------------------------------------| -| [x] | CX-0002 Digital Twins in Catena-X 2.2.0 | Trace-Xs notification process and consumption of assets is bases on DT standards | -| [x] | CX-0018 Eclipse Data Space Connector (EDC) 2.1.0 | Data consumption and data provision as well as the sending and receiving of messages takes place exclusively via the EDC | - - -- [x] -CX-0018 Eclipse Data Space Connector (EDC) 2.1.0 +| Fulfilled | Standard | Description | +|-----------|-------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [x] | CX-0001 EDC DISCOVERY API 1.0.2 | IRS uses irs_edc_client library for EDC communication this uses the EDC discovery service for EDC resolution | | +| [x] | CX-0002 Digital Twins in Catena-X 2.2.0 | IRS notification process and consumption of assets is bases on DT standards | +| [x] | CX-0003 SAMM Aspect Meta Model 1.1.0 | IRS using Semantic Models using SAMM standard | | +| [x] | CX-0018 Eclipse Data Space Connector (EDC) 2.1.0 | Data consumption and data provision as well as the sending and receiving of messages takes place exclusively via the EDC | +| [x] | CX-0019 Aspect Model SerialPart | The semantic model SerialPart describes a submodel for a digital twin of a serialised part providing essential information about this part | +| [x] | CX-0020 Aspect Model SingleLevelBomAsBuilt | The Industry Core: Part Instance aims on building product genealogy information throughout the supply chain. Therefore it is required to link a produced part with its predecessor items. | +| [x] | CX-0021 Aspect Model: Batch | A batch is a quantity of (semi-) finished products or (raw) material product that have been produced under the same circumstances (e.g., same production location), as specified groups or amounts, within a certain time frame. | +| [x] | CX-0060 Triangle Traceability - Digital Twin As-Built | Digital Twin As-Built | ## Describe Part at type and instance level @@ -87,27 +144,46 @@ CX-0018 Eclipse Data Space Connector (EDC) 2.1.0 |Instance Level | SingleLevelBomAsBuilt| RBuilts relationsship between parts in downwards direction (customer > supplier) | CX-0020 Aspect Model | | Instance Level | PartSiteInformationAsBuilt | (shared aspect) | | -# Changes in AAS -| Key | Availability | Description | -|------------|------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| manufacturerId | Mandatory | The Business Partner Number (BPNL) of the manufacturer of the part. | -|manufacturerPartId | Mandatory | | -|customerPartId | Optional | | -|assetLifecyclePhase | asPlanned(Mandatory) / asBuilt(Optional) | @Deprecated For serialized parts, batches, and JIS parts, use the value AsBuilt. For catalog parts in a Digital Twin As-Planned lifecycle phase, use the value AsPlanned. | -|digitalTwinType | Mandatory | digitalTwinType="PartType" OR digitalTwinType="PartInstance" For parts on an instance level (e.g. serialized parts, batches, and JIS parts), use the value PartInstance. For parts on a part type level (e.g. catalog parts), use the value PartType. | | | - -# Changes in SerialPart -| Key | Availability | Description | -|------------|------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| partInstanceId | Mandatory | | -| van | Optioonal | | +# Changes in AAS +| Key | Availability | Description | +|------------|------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|manufacturerId | Mandatory | The Business Partner Number (BPNL) of the manufacturer of the part. | +|manufacturerPartId | Mandatory | | +|customerPartId | Optional | | +|assetLifecyclePhase | asPlanned(Mandatory) / asBuilt(Optional) | @Deprecated For serialized parts, batches, and JIS parts, use the value AsBuilt. For catalog parts in a Digital Twin As-Planned lifecycle phase, use the value AsPlanned. | +|digitalTwinType | Mandatory | digitalTwinType="PartType" OR digitalTwinType="PartInstance" For parts on an instance level (e.g. serialized parts, batches, and JIS parts), use the value PartInstance. For parts on a part type level (e.g. catalog parts), use the value PartType. | | | + +# PartAsPlanned + +- No changes +- Version 1.0.1 Mandatory + +# SerialPart +| Key | Availability | Description | +|------------|-----------------------------------------|------------------------------------------------------| +| partInstanceId | Mandatory | The serial number of the part from the manufacturer. | +| van | Optional | Only for vehicles: The pseudonymized vehicle identification number (VIN) of the vehicle. | + +# Batch +| Key | Availability | Description | +|------------|-----------------------------------------|-----------------------------------------------------| +| batchId | Optional | The number of the batch from the manufacturer. | +| partInstanceId | Mandatory | Also the number of the batch from the manufacturer. For the time being we also use the batch number as partInstanceId. This makes looking up digital twins for serialized parts and batches easier as a data consumer only has to specify the partInstanceId no matter if they are looking up a serialized part or a batch. Otherwise, the data consumer would need to know for what type of digital twin it is looking for or it would have to look for both until a match is found. | + +### JiS +|Parameter | Availability |Description | +|----|------------------|----------------------------------------------------| +|jisNumber | Mandatory | A number that is used to identify the call-off that can be assumed unique within the specific just-in-sequence process. This is typically not the sequence number, but the call-off number.| +|parentOrderNumber | Optional |A number identifying the just-in-sequence- part's destination parent part. The parent part is typically known upfront to the supplier for just-in-sequence parts.| +|jisCallDate | Optional |The date of the just-in-sequence call-off as stated on the call-off document itself.The value must be compliant to ISO 8601: YYYY-MM-DD or YYYY-MM-DDThh:mm:ss or YYYY-MM-DDThh:mm:ss±hh:mm| +|partInstanceId | Mandatory |A composition of jisNumber, parentOrderNumber (if available), jisCallDate (ifavailable). This information is typically known upfront to the supplier jisNumber, partOrderNumber and jisCallDate for just-in-sequence parts.| ## Discoverable in the network - [ ] re-definition if the "specific asset ids" -## Enable traversing across serveral tier levels +## Enable traversing across several tier levels - Industry Core aspect models - DataChain KIT @@ -129,11 +205,11 @@ CX-0018 Eclipse Data Space Connector (EDC) 2.1.0 | ECU | Electronic Control Unit | An ECU's main job is to keep the engine working smoothly | | JIS | Just In Sequence | Just-in-sequence is a delivery concept where parts are delivered to the production plant at a requested time in the exact order of installation, typically for a 1:1 dependency on the manufactured product. A just-in-sequence-part is a part for which this concept and order of delivery applies and which does not have a dedicated serial number (then it would be considered a serialized part). Examples for JIS-parts are seats and bumpers. | | BPN | Business Partner Number | A BPN is the unique identifier of a partner within Catena-x. | -| |Part Instance|A part instance is a physically produced instance (e.g. serialized part, batch, just-in-sequence-part) of a part type. | -| |Part Type| A part type is a generic (not physically produced) part on material- or catalog-level as a representation for a designed part.| -| VAN | Vehicle Anonymised Number | A number mapped 1:1 to VIN, but pseudonomised.| +| Part Instance|A part instance is a physically produced instance (e.g. serialized part, batch, just-in-sequence-part) of a part type. | +| Part Type| A part type is a generic (not physically produced) part on material- or catalog-level as a representation for a designed part.| +| VAN | Vehicle Anonymised Number | A number mapped 1:1 to VIN, but pseudonomised.| # References +- [CX-0126 Industry Core Part Type Standard 1.0.0](https://github.com/catenax-eV/product-standardization-prod/blob/CX-0126-IndustryCorePartType-v1.0.0/standards/CX-0126-IndustryCorePartType/1.0.0/CX-0126-Industry-Core-Part-Type.pdf) +- [CX-0126 Industry Core Part Instance Standard 1.0.0](https://github.com/catenax-eV/product-standardization-prod/blob/CX-0127-IndustryCorePartInstance-v1.0.0/standards/CX-0127-IndustryCorePartInstance/1.0.0/CX%20-%200127%20Industry%20Core%20Part%20Instance%201.0.0.pdf) -# Additional Details -Given the dynamic nature of ongoing development, there might be variations between the conceptualization and the current implementation. For the latest status, refer to the documentation. From 33733c1d272dad160e2c95a77e0e88daeb23a591 Mon Sep 17 00:00:00 2001 From: mk Date: Thu, 1 Feb 2024 08:14:13 +0100 Subject: [PATCH 3/7] chore(concept):[#367] add Detect Lifecycle in AAS --- .../#367-adapt-to-changes-industry-core.md | 66 ++++++++++++++----- 1 file changed, 49 insertions(+), 17 deletions(-) diff --git a/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md b/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md index 912cce9ef7..e599cda964 100644 --- a/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md +++ b/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md @@ -40,20 +40,20 @@ The product IRS MUST align with the Industry Code Standard CX-126 and CX-127. ## Version matrix -|Artefact| Version | Availability | link | -|---|---------|-----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| -| AAS | | | | -| PartAsPlanned | 1.0.1 | Mandatory | [PartAsPlanned 1.0.1](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.part_as_planned/1.0.1) | -|PartAsPlanned | 2.0.0 | Optional (Mandatory for next version of CX-0126) | [PartAsPlanned 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.part_as_planned/2.0.0) | -| SingleLevelBomAsPlanned| 1.1.0 | Mandatory | [SingleLevelBomAsPlanned 1.1.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.single_level_bom_as_planned/1.1.0)] | -| SingleLevelBomAsPlanned| 2.0.0 | Optional (Mandatory for next version of CX-0126) | [SingleLevelBomAsPlanned 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.single_level_bom_as_planned/2.2.0)] | -| SerialPart| 1.0.1 | Mandatory | [SerialPart 1.0.1](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.serial_part/1.0.1) | -| SerialPart| 2.0.0 | Optional | [SerialPart 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.serial_part/2.0.0) | -| Batch| 2.0.0 | Mandatory | [Batch 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.batch/2.0.0) | -| Batch| 2.0.1 | Optional | [Batch 2.0.1](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.batch/2.0.1) | -| JustInSequencePart| 2.0.0 | Optional | [JustInSequencePart 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.just_in_sequence_part/2.0.0) | -| SingleLevelBomAsBuilt| 2.0.0 | Mandatory | [SingleLevelBomAsBuilt 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.single_level_bom_as_built/2.0.0) | -| PartSiteInformationAsBuilt| 1.0.0 | Integrated in Aspects JustInSequencePart / Batch / SerialPart | https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.shared.part_site_information_as_built/1.0.0 | +| Artefact | Version | Availability | link | +|----------------------------|---------|-----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| +| AAS | | | | +| PartAsPlanned | 1.0.1 | Mandatory | [PartAsPlanned 1.0.1](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.part_as_planned/1.0.1) | +| PartAsPlanned | 2.0.0 | Optional (Mandatory for next version of CX-0126) | [PartAsPlanned 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.part_as_planned/2.0.0) | +| SingleLevelBomAsPlanned | 1.1.0 | Mandatory | [SingleLevelBomAsPlanned 1.1.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.single_level_bom_as_planned/1.1.0)] | +| SingleLevelBomAsPlanned | 2.0.0 | Optional (Mandatory for next version of CX-0126) | [SingleLevelBomAsPlanned 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.single_level_bom_as_planned/2.2.0)] | +| SerialPart | 1.0.1 | Mandatory | [SerialPart 1.0.1](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.serial_part/1.0.1) | +| SerialPart | 2.0.0 | Optional | [SerialPart 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.serial_part/2.0.0) | +| Batch | 2.0.0 | Mandatory | [Batch 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.batch/2.0.0) | +| Batch | 2.0.1 | Optional | [Batch 2.0.1](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.batch/2.0.1) | +| JustInSequencePart | 2.0.0 | Optional | [JustInSequencePart 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.just_in_sequence_part/2.0.0) | +| SingleLevelBomAsBuilt | 2.0.0 | Mandatory | [SingleLevelBomAsBuilt 2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.single_level_bom_as_built/2.0.0) | +| PartSiteInformationAsBuilt | 1.0.0 | Integrated in Aspects JustInSequencePart / Batch / SerialPart | https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.shared.part_site_information_as_built/1.0.0 | - JustInSequencePart: https://github.com/eclipse-tractusx/sldt-semantic-models/pull/563 @@ -85,13 +85,45 @@ ASS parameter assetLifecyclePhase will not be used anymore to detect BOMLifecycl | Availability | Mandatory | Parameter is mandatory - adjust required checks - Add exception handling in case parameter is not set | | Values | PartType / PartInstance | PartType= asPlanned parts / PartInstance == parts on an instance level (e.g. serialized parts, batches, and JIS parts) | + +#### Detect Lifecycle in AAS + +````mermaid + +sequenceDiagram + %%{init: {'theme': 'dark', 'themeVariables': { 'fontSize': '15px'}}}%% + autonumber + IRS ->> BOMLifecycleDetector : detectBOMLifecycleInAASBOMLifecycleDetector ->> BOMLifecycleDetector : digitalTwinType +alt aas contains 'digitalTwinType' + alt digitalTwinType="PartType" + BOMLifecycleDetector -->> IRS : return asPlanned + else digitalTwinType="PartInstance" + BOMLifecycleDetector -->> IRS : return asBuilt + else digitalTwinType any other value or null + BOMLifecycleDetector -->> IRS : throw Exception + end +else aas contains 'assetLifecyclePhase' + alt assetLifecyclePhase="AsBuilt" + BOMLifecycleDetector -->> IRS : return asBuilt + else assetLifecyclePhase="AsPlanned" + BOMLifecycleDetector -->> IRS : return asPlanned + else assetLifecyclePhase any other value or null + BOMLifecycleDetector -->> IRS : throw Exception + end +else + IRS -->> BOMLifecycleDetector : throw Exception (BOMLifecylce could not be detected) + BOMLifecycleDetector -->> IRS : retrun BOMLifecyle +end + +```` + #### Configuration of parameter 'digitalTwinType' Parameter is configurable for dDTR instance and has to be configured for integration test. -https://github.com/eclipse-tractusx/sldt-digital-twin-registry/blob/f438fe96a7ae1f1b920e8e4fb4114fb7af32643d/charts/registry/values.yaml#L51 -https://github.com/eclipse-tractusx/sldt-digital-twin-registry/blob/f438fe96a7ae1f1b920e8e4fb4114fb7af32643d/charts/registry/README.md#:~:text=externalSubjectIdWildcardAllowedTypes +- [Values.yaml](https://github.com/eclipse-tractusx/sldt-digital-twin-registry/blob/f438fe96a7ae1f1b920e8e4fb4114fb7af32643d/charts/registry/values.yaml#L51) +- [README.md](https://github.com/eclipse-tractusx/sldt-digital-twin-registry/blob/f438fe96a7ae1f1b920e8e4fb4114fb7af32643d/charts/registry/README.md#:~:text=externalSubjectIdWildcardAllowedTypes) -### Visbility of Specific Asset IDs in the DTR +### Visibility of Specific Asset IDs in the DTR * Usage of parameter 'externalSubjectIds' which contains 'specificAssetIds'. Parameter 'externalSubjectIds' restricts visibility exclusively to manufacturer. ## Semantic Models From 1ed24e2c5a1571ddb715d5c00e480182822ceeb3 Mon Sep 17 00:00:00 2001 From: mk Date: Wed, 14 Feb 2024 08:25:39 +0100 Subject: [PATCH 4/7] chore(concept):[#367] add configuration for dDTR --- .../#367-adapt-to-changes-industry-core.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md b/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md index e599cda964..17bbfc62f0 100644 --- a/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md +++ b/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md @@ -123,6 +123,12 @@ Parameter is configurable for dDTR instance and has to be configured for integra - [Values.yaml](https://github.com/eclipse-tractusx/sldt-digital-twin-registry/blob/f438fe96a7ae1f1b920e8e4fb4114fb7af32643d/charts/registry/values.yaml#L51) - [README.md](https://github.com/eclipse-tractusx/sldt-digital-twin-registry/blob/f438fe96a7ae1f1b920e8e4fb4114fb7af32643d/charts/registry/README.md#:~:text=externalSubjectIdWildcardAllowedTypes) +values.yaml +````json + registry.externalSubjectIdWildcardAllowedTypes = manufacturerPartId,assetLifecyclePhase,digitalTwinType +```` + + ### Visibility of Specific Asset IDs in the DTR * Usage of parameter 'externalSubjectIds' which contains 'specificAssetIds'. Parameter 'externalSubjectIds' restricts visibility exclusively to manufacturer. From 6c5823ee49ec79526eb1d460161b1afb38c0bdcb Mon Sep 17 00:00:00 2001 From: mk Date: Mon, 19 Feb 2024 14:04:07 +0100 Subject: [PATCH 5/7] fix(changelog):[#367] fix Changelog --- CHANGELOG.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b34914bd7a..e37a993cc6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,13 +5,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] - - -## [4.5.0] - 2024-02-07 ### Added - Added helper script for building documentation locally. -- Added helper script for building documentation locally. - Added concept to conform with IndustryCore Changes CX-0126 and CX-127 + +## [4.5.0] - 2024-02-07 +### Added - Added new job parameter flag "auditContractNegotiation" which toggles setting contractAgreementId in Shells and Submodels - Added "contractAgreementId" field to Submodel model - Added Integration Tests for the entire IRS flow using stubbed responses of Discovery Service, Semantic Hub, EDC, Digital Twin Registry and BPDM Pool From 4e275853180177778efe840ff09e8363b2ba5a3f Mon Sep 17 00:00:00 2001 From: mk Date: Mon, 19 Feb 2024 14:07:16 +0100 Subject: [PATCH 6/7] fix(changelog):[#367] review comments --- .../#367-adapt-to-changes-industry-core.md | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md b/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md index 17bbfc62f0..8aa18a942d 100644 --- a/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md +++ b/docs/concept/#367-adapt-to-changes-of-industry-core/#367-adapt-to-changes-industry-core.md @@ -17,14 +17,11 @@ # Overview -The "Industry Core" is a fundamental element in the C-X network or system architecture. -It provides essential functions for identification, traversal, data flow, configuration, and communication in a modular and -interconnected environment. -The goal is to make components identifiable and discoverable at type and instance levels. -Enable seamless traversal across different tier levels. -Facilitate the creation of data chains. -Crucial role in configuring enablement services for component-based data exchange -Notification base message exchange. +The "Industry Core" is a fundamental element in the C-X network or system architecture. It provides essential functions for identification, traversal, data flow, configuration, and communication in a modular and +interconnected environment. The goal is to make components identifiable and discoverable at type and instance levels. +Enable seamless traversal across different tier levels. Facilitate the creation of data chains. Crucial role in configuring enablement services for component-based data exchange +Notification base message exchange. + 1. Identifiability and findability 2. Traversing Across multiple tier levels @@ -238,13 +235,13 @@ values.yaml # Glossary -| Abbreviation | Name | Description | -|--------------|-------------------------|----------------------------------------------------------| -| ECU | Electronic Control Unit | An ECU's main job is to keep the engine working smoothly | -| JIS | Just In Sequence | Just-in-sequence is a delivery concept where parts are delivered to the production plant at a requested time in the exact order of installation, typically for a 1:1 dependency on the manufactured product. A just-in-sequence-part is a part for which this concept and order of delivery applies and which does not have a dedicated serial number (then it would be considered a serialized part). Examples for JIS-parts are seats and bumpers. | -| BPN | Business Partner Number | A BPN is the unique identifier of a partner within Catena-x. | -| Part Instance|A part instance is a physically produced instance (e.g. serialized part, batch, just-in-sequence-part) of a part type. | -| Part Type| A part type is a generic (not physically produced) part on material- or catalog-level as a representation for a designed part.| +| Abbreviation | Name | Description | +|--------------|---------------------------|----------------------------------------------------------| +| ECU | Electronic Control Unit | An ECU's main job is to keep the engine working smoothly | +| JIS | Just In Sequence | Just-in-sequence is a delivery concept where parts are delivered to the production plant at a requested time in the exact order of installation, typically for a 1:1 dependency on the manufactured product. A just-in-sequence-part is a part for which this concept and order of delivery applies and which does not have a dedicated serial number (then it would be considered a serialized part). Examples for JIS-parts are seats and bumpers. | +| BPN | Business Partner Number | A BPN is the unique identifier of a partner within Catena-x. | +| | Part Instance |A part instance is a physically produced instance (e.g. serialized part, batch, just-in-sequence-part) of a part type. | +| | Part Type | A part type is a generic (not physically produced) part on material- or catalog-level as a representation for a designed part. | | VAN | Vehicle Anonymised Number | A number mapped 1:1 to VIN, but pseudonomised.| # References From df9e0ad28847bed8800ca9096d04e4c00476f98a Mon Sep 17 00:00:00 2001 From: mk Date: Mon, 19 Feb 2024 14:10:20 +0100 Subject: [PATCH 7/7] fix(changelog):[#367] review comments --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e37a993cc6..80ffd77c13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,11 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Added -- Added helper script for building documentation locally. - Added concept to conform with IndustryCore Changes CX-0126 and CX-127 ## [4.5.0] - 2024-02-07 ### Added +- Added helper script for building documentation locally. - Added new job parameter flag "auditContractNegotiation" which toggles setting contractAgreementId in Shells and Submodels - Added "contractAgreementId" field to Submodel model - Added Integration Tests for the entire IRS flow using stubbed responses of Discovery Service, Semantic Hub, EDC, Digital Twin Registry and BPDM Pool