-
Notifications
You must be signed in to change notification settings - Fork 28
FOSS DCM Application ‐ Upgrade to Catena‐X 24.05
- What is this challenge about?
- Surrounding Conditions
- How to prepare for the challenge
- Questions and Answers
- Upgrade functional capabilities as defined by Catena-X Standards
- Upgrade functional capabilities outside Catena-X Standards
- Upgrade technical stack as defined by Catena-X Standards and Eclipse Tractus-X
This challenge is about updating and upgrading an existing application, mainly written in React and Java, to be compatible with Catena-X standards 24.05. It is divided into three areas, that deal with: upgrading capabilities as defined within Catena-X standards, upgrading capabilities outside Catena-X standards and upgrading the technical stack as defined by Catena-X standards and Eclipse Tractus-X. We do hope to provide an interesting challenge and establish long-term maintainers for this application.
- We do have code, that fully implemented Catena-X DCM standard in version 23.09
- Version 23.09 is out of date.
- Version 24.05 will result in a breaking change for the whole of Catena-X
- The Eclipse Tractus-X version is currently not deployable
- It was deployable within the Catena-X consortia environment
- A guide with access to all relevant standards, be it released or unreleased will be present. Said guide also knows the Catena-X DCM standard by heart.
- A guide with technical expertise regarding Catena-X und Eclipse Tractus-X environment will be present. Said guide is also experienced with React (Frontend) and Java (Backend).
- Be aware that we except participants to run their DEV environment locally
- Ensure that your DEV machine has at least 16 GB of RAM as well as a quad-core CPU
- Install your favorite IDE to your local DEV machine
- Ensure that you have access to your github account
- Install git to your local DEV machine
- Clone the DCM FOSS repository to your local DEV machine
- Install your favorite container management to your local DEV machine
- Deploy a keycloak container to your local DEV machine
- Deploy a postgres container to your local DEV machine
- Polish up on React and Java
- Familiarize yourself with the DCM FOSS repository
- Familiarize yourself with the Catena-X standards
Question | Answer |
---|---|
Why is this event a challenge and not a workshop? | Within a workshop we would show you how to deploy a working DCM FOSS application and give you suggestions on how to utilize it for your business processes. Within this challenge we are working on fixing or rather upgrading DCM FOSS so we may conduct a workshop at the third community days. |
Whats the goal of this event? | Improve und upgrade the state of DCM FOSS and establish a group of at least three people that are willing to maintain the DCM FOSS application in the medium- to long-term. |
Who is the target audience of the DCM FOSS application? | Small and medium enterprises. The aim is to allow companies with a single IT-guy to participate easily within the Catena-X DCM usecase, without having to pay a big software vendor. |
What should I bring to the event? | Bring your DEV machine, admin rights to that machine, a working GitHub account and that sweet delicious brain of yours. |
Where can I find the Catena-X standards? | You can find released versions in the standard library |
When preparing for the challenge, what should I focus on? | Familiarize yourself with the current state of the application and CX-0128 in Version 2.0.0 |
The standard library does not contain version 2.0.0, only version 1.0.0 | Depending on when you read this, CX-0128 might not have been publicly released yet. |
How am I supposed to work on something without the most recent version of the corresponding standard? | Guides with access to all (even not yet released) standards will be present during the event. |
NIS: Capability was not part of that particular standard version NV: Not verified N/A: Not applicable
Capability / Standard | 23.09 | 24.03 | 24.05 | Outside Standard |
---|---|---|---|---|
Core Process | 100% | 100% | NV | N/A |
Supply Chain Disruption Notification | NIS | NIS | 0% | N/A |
Request for Update | NIS | 0% | 0% | N/A |
Comments | NIS | 0% | 0% | N/A |
DCM Asset Administration Shell API (AAS API) | NIS | 0% | 0% | N/A |
Simulated Delta-Production (Pre-/Post-production) | NIS | 25% | 0% | N/A |
Demand Volatility Metrics | NIS | NIS | 0% | N/A |
Load Factors | NIS | NIS | 0% | N/A |
Type | Name | Function |
---|---|---|
Standard | CX-0128 Demand and Capacity Management Data Exchange | Contains all relevant information on how the core DCM process works |
Aspect Model | WeekBasedMaterialDemand | Contains Demand Data, including materialNumberCustomer, demandCategoryCode and customerLocation |
Aspect Model | WeekBasedCapacityGroup | Contains Capacity Data, including linkedDemandSeries{} |
API | WeekBasedMaterialDemand | EndPoint for receiving Demand Data |
API | WeekBasedCapacityGroup | EndPoint for receiving Capacity Data |
sequenceDiagram
actor Customer
actor Supplier
autonumber
loop provide weekBasedMaterialDemand
Customer-)+Supplier: I require x amount of material N
end
loop link weekBasedMaterialDemand and weekBasedCapacityGroup
Supplier->>Supplier: I had a look in my contracts and<br> matched my customers materialnumbers to my own materialnumbers
Supplier->>Supplier: I have analyzed my production facilities and<br> concluded what the relevant bottlenecks are
Supplier->>Supplier: Materials N,M,... share a common, relevant bottleneck
end
loop provide weekBasedCapacityGroup
Supplier -)-Customer: I do have y capacity for the following combination of materials N,M,...
end
Type | Name | Function |
---|---|---|
Standard | CX-0146 Supply Chain Disruption Notifications | Contains all relevant information on how Supply Chain Disruption Notification works |
Aspect Model | DemandAndCapacityNotification | Contains Notification Data |
API | DemandAndCapacityNotification | Endpoint for receiving Notification Data |
sequenceDiagram
actor J as Company J
actor K as Company K
autonumber
alt provide DemandAndCapacityNotification A
J-)K: There is an earth-quake effecting site A and B <br> starting on 10.10.2010 which results in demand-reduction for materials X,Y and Z.<br> I expect is disruption to end on 20.10.2010
end
opt provide DemandAndCapacityNotification B
J-)K: There is an strike effecting site C <br> starting on 12.10.2010 which results in demand-reduction for material Z.<br> This happened because of the event mentioned in DemandAndCapacityNotification A
end
opt provide DemandAndCapacityNotification A
J-)K: The earth-quake has been resolved.
end
opt provide DemandAndCapacityNotification B
J-)K: The strike has been resolved.
end
Type | Name | Function |
---|---|---|
Standard | CX-0128 Demand and Capacity Management Data Exchange | Contains all relevant information on how Request for Update works |
Aspect Model | IdBasedRequestForUpdate | Contains RfU Data |
API | IdBasedRequestForUpdate | Endpoint for receiving RfU Data |
sequenceDiagram
actor J as Company J
actor K as Company K
autonumber
par provide IdBasedRequestForUpdate
J-)+K: Give every single WeekBasedMaterialDemand you have, that concerns us both
and
J-)K: Give me WeekBasedCapacityGroup A and B <br> also give me C but only if your version of C is more recent than 01.01.2022
end
loop provide weekBasedMaterialDemand
K-)J: Here are all the WeekBasedMaterialDemands<br> where you and I are Customer and Supplier OR Supplier und Customer
end
loop provide weekBasedCapacityGroup
K-)-J: Here are WeekBasedCapacityGroup A and C<br> but not B, because you are neither Customer nor Supplier in B
end
Type | Name | Function |
---|---|---|
Standard | CX-0128 Demand and Capacity Management Data Exchange | Contains all relevant information on how comments work |
Aspect Model | IdBasedComment | Contains Comment Data |
API | IdBasedComment | Endpoint for receiving Comment Data |
sequenceDiagram
actor J as Company J
actor K as Company K
autonumber
par provide IdBasedComment
J-)K: Here is a comment, concerning WeekBasedCapacityGroup A
and
J-)K: Here is a comment, concerning WeekBasedCapacityGroup B: weeks 34 to 40
and
J-)K: Here is a comment, concerning your previous IdBasedComment Y
end
Type | Name | Function |
---|---|---|
Standard | CX-0002 DIGITAL TWINS IN CATENA-X | Contains all relevant information on how Digital Twins in Catena- X work |
Standard | CX-0128 Demand and Capacity Management Data Exchange | Contains all relevant information on how to utilize Digital Twins within DCM |
Aspect Model | WeekBasedMaterialDemand | Contains Demand Data, including materialNumberCustomer, demandCategoryCode and customerLocation |
Aspect Model | WeekBasedCapacityGroup | Contains Capacity Data, including linkedDemandSeries{} |
API | DCM Asset Administration Shell API (AAS API) | Endpoint for patching submodels within a DTR |
API | WeekBasedMaterialDemand | EndPoint for receiving Demand Data |
API | WeekBasedCapacityGroup | EndPoint for receiving Capacity Data |
sequenceDiagram
actor Customer
actor Supplier
autonumber
activate Customer
loop
par Manage Material Demands
Customer-)Customer: I need to communicate <br>the following material demands to the following suppliers
and Manage Digital Twin Registry
Customer-)Customer:Register submodel and grant supplier right <br>to write to patch the submodel
and provide weekBasedMaterialDemand
Customer-)+Supplier: I require X amount of material N
end
end
deactivate Customer
loop
par Manage Capacity Groups
Supplier-)Supplier: I need to bundle the following weekBasedMaterialDemand together<br> into the following weekBasedCapacityGroup<br> and communicate them to the following Customer.
and Patch submodel in Customer DTR
Supplier-)Customer: The following weekBasedCapacityGroup<br> relate to the following materials.
and Manage Digital Twin Registry
Supplier-)Supplier: Register submodel and grant customer right <br>to write to patch the submodel
and provide weekBasedCapacityGroup
Supplier-)-Customer: I do have Y capacity for<br> the following combination of materials N,M,...
activate Customer
end
end
loop
par Patch submodel in Supplier DTR
Customer-)Supplier: The following weekBasedMaterialDemand<br> relate to the following materials.
end
deactivate Customer
end
Type | Name | Function |
---|---|---|
Standard | CX-0128 Demand and Capacity Management Data Exchange | Contains all relevant information on how simulated delta production works |
Aspect Model | WeekBasedCapacityGroup | Contains Capacity Data including deltaProductionResult |
API | WeekBasedCapacityGroup | EndPoint for receiving Capacity Data |
sequenceDiagram
actor Customer
actor Supplier
autonumber
alt provide weekBasedCapacityGroup
Supplier-)Customer: I do have y capacity for the following combination of materials N,M,...<br>and I am using Post-production in weeks 8,9,10 to compensate bottlenecks in weeks 5,6
else provide weekBasedCapacityGroup
Supplier-)Customer: I do have y capacity for the following combination of materials N,M,...<br>and I am using Pre-production in weeks 11,12,13,14 to compensate bottlenecks in week 20
end
Type | Name | Function |
---|---|---|
Standard | CX-0128 Demand and Capacity Management Data Exchange | Contains all relevant information on how demand volatility metrics work |
Aspect Model | WeekBasedCapacityGroup | Contains Capacity Data, including demandVolatilityParameters{} |
API | WeekBasedCapacityGroup | EndPoint for receiving Capacity Data |
sequenceDiagram
actor Customer
actor Supplier
autonumber
alt provide weekBasedCapacityGroup
Supplier-)Customer: I do have y capacity for the following combination of materials N,M,...<br>and I am measuring the volatility of the demands linked to this weekBasedCapacityGroup<br>using the following parameters
end
Type | Name | Function |
---|---|---|
Standard | CX-0128 Demand and Capacity Management Data Exchange | Contains all relevant information on how load factors work |
Aspect Model | WeekBasedCapacityGroup | Contains Capacity Data, including loadFactor and unitOfMeasure |
API | WeekBasedCapacityGroup | EndPoint for receiving Capacity Data |
sequenceDiagram
actor Customer
actor Supplier
autonumber
alt provide weekBasedCapacityGroup
Supplier-)Customer: I do have X capacity for the following combination of materials N,M,...<br>and the demands of your material N should be treated as if multiplied by Y<br>and the demands of your material M should be treated as if multiplied by Z<br>and that the unitOfMeasure of all your materials should be treated as if it were {cycles or seconds}.
end
NIS: Capability was not part of that particular standard version NV: Not verified N/A: Not applicable
Capability / Standard | 23.09 | 24.03 | 24.05 | Outside Standard |
---|---|---|---|---|
Local Address Book | NIS | NIS | NIS | 90% |
Capacity Groups and Material Demand - Alerts | NIS | NIS | NIS | 65% |
Event Logging and History | NIS | NIS | NIS | 90% |
Favorites | NIS | NIS | NIS | 80% |
Admin Panel | NIS | NIS | NIS | 20% |
- Capability to create local address book entries for companies from a Catena-X provided golden record
- Capability to synchronize those local entries with golden records
- Capability to import an existing list of company records and verify them against golden records
- Capability to create local person records and link them to company records
- Capability to manage global alerts
- Capability to manage dedicated alerts
- Capability to manage alerts for absolute changes of demand and capacity
- Capability to manage alerts for relative changes of demand and capacity
- Capability to log user interactions
- Capability to log system events (EDC)
- Capability to favorite companies, materials, material demands, capacity groups, persons, ...
- Capability to manage favorites on a per user basis
- Integration of favorites in all related search functionalities and drop-downs
- Show favorites on top
- Search favorites first
- Integration of all relevant admin functionalities into a single GUI
- Manage BPN L/S/A
- Configure events
- Configure alerts
- Setup EDC
- ...
Type | Name | Function |
---|---|---|
Standard | CX-0018 Eclipse Data Space Connector (EDC) | Contains all relevant information on how EDC works |
Repository | Tractus-X EDC | Contains EDC release 0.7 |
Catena-X release 24.05 mandates EDC 0.7, which represents a breaking change from EDC 0.5. DCM FOSS needs to be updated to work with EDC 0.7
Type | Name | Function |
---|---|---|
Repository | Eclipse Tractus-X Demand Capacity Management | Contains DCM FOSS. This is the intended and final repository. |
Repository | Catena-X Demand Capacity Management | Contains DCM FOSS. This was an intermediate repository. |
PULL Request | Consortia Cleanup | Merged the final development efforts of the consortia into Eclipse Tractus-X |
DCM FOSS was initially developed within the Catena-X Consortia organization and repository. Both organization and repository will be locked and abandoned once the consortia ends in 2024. For DCM FOSS the consortia cleanup was successfully executed and it was migrated to Eclipse Tractus-X. However DCM FOSS has never been built within and from this new environment.
DCM FOSS needs to be fully integrated into Eclipse Tractus-X
- Ensure that Git Actions run successfully
- Update helm
- Update build
- Update Install.MD
- Ensure that the most recent versions of the Release Guidelines are satisfied