Skip to main content
Release: Jupiter (preview)

CX-0128 - Demand and Capacity Management Data Exchange v2.0.0

ABSTRACT

This section and all its subsections are non-normative

The Catena-X Demand and Capacity Management (DCM) standard is designed for all members of the automotive supply chain. Its goal is to help these members prevent or anticipate production issues that can arise from fluctuations in demand or capacity planning. This standard is particularly relevant for mid- to long-term planning, covering periods up to 24 months into the future. Effective collaboration between partners in a direct business relationship (also referred to as “one-up” and “one-down”) is a key element of success.

The Catena-X DCM standard is accessible to all supply chain participants, including suppliers and Original Equipment Manufacturers (OEMs), regardless of their size and position in the supply chain. It is particularly useful for those involved in production and production planning. The standard prioritizes parts and materials that are critical to manufacturing, aiming to create mutually beneficial outcomes for all parties involved and to enhance the flexibility in meeting customer needs.

This standard offers an alternative to proprietary systems or manual processes that are often resource-intensive and prone to errors. It provides a collaborative foundation for demand and capacity management within the automotive industry, ensuring compatibility with existing systems and maintaining data sovereignty for all users.

Recent global supply chain disruptions have highlighted the need for greater resilience. The automotive industry, with its complex and volatile environment, has multiple IT solutions and interfaces within a single company and across the supply chain. However, there is a lack of a unified process understanding among all partners.

Demand and Capacity Management (DCM) involves the exchange of demand and capacity data between customers and suppliers within their direct business relationships. Customers communicate their anticipated material needs for specific timeframes and suppliers respond with their planned production capacities for those materials and timeframes.

For successful DCM, companies must share a common understanding that enables the exchange of data across different partners and systems while respecting each partner's data sovereignty.

This standard describes the data models, data exchange protocols and a core business logic for interpreting the data, ensuring a consistent approach for all DCM participants.

Cross-company interactions and common business logic required for DCM are standardized in Chapter 5, while the Application Programming Interfaces (APIs) are described in Chapter 4. The data models are presented in Chapter 3.

COMPARISON WITH PREVIOUS VERSIONS OF THIS STANDARD

This section and all its subsections are non-normative

Release 24.05

  • Replaced MaterialDemand with WeekBasedMaterialDemand aspect model
  • Added deactivation of WeekBasedCapacityGroup to Section 4.2.2.2
  • Added deactivation of WeekBasedMaterialDemand to Section 4.1.2.2
  • Added Chapter 2.3 Additional Requirements
  • Added Chapter 5.10 Supply Chain Disruption Notifications
  • Added Chapter 5.11 Demand Volatility Metrics
  • Added Agreed Capacity to Section 5.6.1
  • Added Repositories to Annexes
  • Updated References in Chapter 7
  • Updated WeekBasedCapacityGroup aspect model
  • Updated WeekBasedMaterialDemand aspect model
  • Updated MessageHeaderAspect version in Chapter 4
  • Updated Policies in Chapter 6
  • Updated choice of words and writing pattern throughout this standard

Release 24.03

  • Merged CX-0046, CX-0047 and CX-0048 into this standard
  • Replaced WeekBasedMaterialDemand with MaterialDemand aspect model
  • Added Nesting of WeekBasedCapacityGroup to Section 5.6.2
  • Added Section 5.6.4 Load Factors
  • Added Section 5.7.2 Simulated Delta-Production (Pre-/Post-production)
  • Added Chapter 5.8 Request for Update
  • Added Chapter 5.9 Collaboration functionalities for DCM
  • Updated WeekBasedCapacityGroup aspect model
  • Updated unit of measure representation and handling

Release 23.09

  • Initial release

1 INTRODUCTION

This section and all its subsections are non-normative

1.1 Audience and Scope

This standard is intended for the three roles below, who are involved in the Demand and Capacity Management (DCM) process within the automotive industry:

  • Data Provider
  • Data Consumer
  • Business Application Provider

For clarity on the roles and responsibility of each actor, please see Chapter 5.2. The scope of this standard includes regulations for managing future demands and capacities. It does not cover the specific methods companies use to calculate their demand or capacity data, nor does it address internal company measures.

Illustrations and descriptions of roles are provided to help explain concepts and processes but are not mandatory. This standard requires that data consumers, providers and business application providers must adopt a uniform business logic, data models and data exchange protocols to ensure interoperable data exchange.

This standard focuses on direct one-to-one business relationships between customers and suppliers. Companies participating in Catena-X DCM must have signed the DCM framework agreement.

1.2 Context and Architecture Fit

This standard (CX-0128) defines the standard data models and APIs for the following objects, utilized by the DCM use case: WeekBasedMaterialDemand, WeekBasedCapacityGroup, IdBasedRequestForUpdate and IdBasedComment. Applying these standards ensures that:

  • All actors participating in the DCM use case provide and consume demand-, capacity- and comment-information in an identical manner
  • All actors participating in the DCM use case process data in an identical manner
  • All actors participating in the DCM use case exchange data only via a connector conformant to [CX-0018] (e.g. Tractus-X EDC)
  • All actors participating in the DCM use case interpret the exchanged data in an identical manner

The APIs must only be used on the context of Catena-X and must only be accessible via a connector conformant to [CX-0018] (e.g. Tractus-X EDC).

1.2.1 Architectural Overview

This standard covers the exchange of WeekBasedMaterialDemand, WeekBasedCapacityGroup, IdBasedRequestForUpdate and IdBasedComment data as JSON strings through a connector conformant to [CX-0018].

This standard also discusses the optional use of digital twin registries to support the transmission of WeekBasedMaterialDemand and WeekBasedCapacityGroup objects.

How to build an application that creates and handles these objects is not part of this standard.

1.3 Conformity and Proof of Conformity

Non-mandatory sections include authoring guidelines, diagrams, examples and notes. All other content is mandatory.

The capitalized key words such as MAY, MUST, MUST NOT, OPTIONAL, RECOMMENDED, REQUIRED, SHOULD and SHOULD NOT are to be interpreted as defined in BCP 14 [RFC2119] [RFC8174].

Participants must demonstrate conformity with Catena-X standards. Conformity Assessment Bodies (CABs) verify that standards are correctly applied.

Proof of Conformity for Data Models

Participants must implement and conform to the standardized data models as described in Chapter 3.

Proof of Conformity for APIs

Participants must implement and conform to the standardized APIs as described in Chapter 4.

Proof of Conformity for Process and Core Business Logic

Participants must implement and conform to the DCM core business logic as described in Chapter 5.

1.4 Examples

1.4.1 Examples for Process and Core Business Logic

Customers and suppliers must agree to the DCM framework agreement, implement the core business logic from Chapter 5 and manage their access authorizations. They should ensure that material demand and capacity data are accurate, regularly updated and shared in a standardized format.

Business application providers must implement APIs as described in this standard and enforce requirements for a trusted usage environment, contractual agreements and antitrust requirements. Their applications must also enforce process traceability and data sovereignty.

1.4.2 Examples for Data Models

This section provides JSON examples for WeekBasedMaterialDemand, WeekBasedCapacityGroup, IdBasedRequestForUpdate and IdBasedComment payloads. The actual values must replace the placeholders in double curly braces. Further property descriptions are available in Chapter 5.

1.4.2.1 WeekBasedMaterialDemand data model JSON structure

value-only payload serialization example

{
"unitOfMeasureIsOmitted" : false,
"unitOfMeasure" : "unit:piece",
"materialDescriptionCustomer" : "Spark Plug",
"materialGlobalAssetId" : "urn:uuid:48878d48-6f1d-47f5-8ded-a441d0d879df",
"materialDemandId" : "0157ba42-d2a8-4e28-8565-7b07830c1110",
"materialNumberSupplier" : "MNR-8101-ID146955.001",
"supplier" : "{{CATENAX-SUPPLIER-BPNL}}",
"changedAt" : "2023-11-05T08:15:30.123-05:00",
"demandSeries" : [ {
"expectedSupplierLocation" : "{{CATENAX-SUPPLIER-BPNS}}",
"demands" : [ {
"demand" : 1000,
"pointInTime" : "2023-10-09"
} ],
"customerLocation" : "{{CATENAX-CUSTOMER-BPNS}}",
"demandCategory" : {
"demandCategoryCode" : "0001"
}
} ],
"materialDemandIsInactive" : true,
"materialNumberCustomer" : "MNR-7307-AU340474.002",
"customer" : "{{CATENAX-CUSTOMER-BPNL}}"
}
1.4.2.2 WeekBasedCapacityGroup data model JSON structure

value-only payload serialization example

{
"unitOfMeasure" : "unit:piece",
"linkedDemandSeries" : [ {
"loadFactor" : 3.5,
"materialNumberCustomer" : "MNR-7307-AU340474.002",
"materialNumberSupplier" : "MNR-8101-ID146955.001",
"customerLocation" : "{{CATENAX-CUSTOMER-BPNS}}",
"demandCategory" : {
"demandCategoryCode" : "0001"
}
} ],
"linkedCapacityGroups" : [ "be4d8470-2de6-43d2-b5f8-2e5d3eebf3fd" ],
"unitOfMeasureIsOmitted" : false,
"capacityGroupIsInactive" : true,
"demandVolatilityParameters" : {
"rollingHorizonAlertThresholds" : [ {
"sequenceNumber" : 1,
"absoluteNegativeDeviation" : 100.0,
"subhorizonLength" : 4,
"relativeNegativeDeviation" : 0.3,
"absolutePositiveDeviation" : 100.0,
"relativePositiveDeviation" : 0.2
} ],
"measurementInterval" : 4,
"startReferenceDateTime" : "2024-01-10T12:00:00.320Z"
},
"supplier" : "{{CATENAX-SUPPLIER-BPNL}}",
"name" : "Spark Plugs on drilling machine for car model XYZ",
"supplierLocations" : [ "{{CATENAX-SUPPLIER-BPNS}}" ],
"capacities" : [ {
"pointInTime" : "2022-08-01",
"agreedCapacity" : 1800,
"actualCapacity" : 1000,
"maximumCapacity" : 2000,
"deltaProductionResult" : 400
} ],
"changedAt" : "2023-03-10T12:27:11.320Z",
"capacityGroupId" : "0157ba42-d2a8-4e28-8565-7b07830c1110",
"customer" : "{{CATENAX-CUSTOMER-BPNL}}"
}
1.4.2.3 IdBasedRequestForUpdate data model JSON structure

value-only payload serialization example

{
"weekBasedMaterialDemand" : [ {
"materialDemandId" : "0157ba42-d2a8-4e28-8565-7b07830c3456",
"changedAt" : "2023-03-10T12:27:11.320Z"
} ],
"weekBasedCapacityGroup" : [ {
"capacityGroupId" : "0157ba42-d2a8-4e28-8565-7b07830c1110",
"changedAt" : "2023-03-10T12:27:11.320Z"
} ]
}
1.4.2.4 IdBasedComment data model JSON structure

value-only payload serialization example

{
"postedAt" : "2023-03-10T12:27:11.320Z",
"listOfReferenceDates" : [ "2023-11-05" ],
"author" : "someone@company.com",
"supplier" : "{{CATENAX-SUPPLIER-BPNL}}",
"commentType" : "information",
"commentId" : "f5c151e4-30b5-4456-94fd-2a7b559b6121",
"changedAt" : "2023-03-10T12:27:11.320Z",
"commentText" : "Hello, this is a comment!",
"requestDelete" : true,
"objectId" : "dfeb1334-497e-4dab-97c1-4e6f4e1c0320",
"objectType" : "urn:samm:io.catenax.week_based_capacity_group",
"customer" : "{{CATENAX-CUSTOMER-BPNL}}"
}

1.5 Terminology

TermDescription
Actual CapacityThis is the capacity a supplier realistically plans to have available to produce a certain amount of material per week for a customer. It takes into account the supplier's own assessment of their capabilities, inventory and existing commitments.
Agreed CapacityMay be coordinated between customer and supplier. The agreed capacity must not constitute a legal obligation to deliver. Using the agreed capacity is optional and has purely informative character. The agreed capacity may be greater than, less than or equal to the actual or maximum capacity of the supplier. It may be used for a time frame shorter than the whole time series.
Aspect ModelAn Aspect model is a structured, machine-readable description of data. It utilizes the Turtle file format to serialize a Resource Description Framework (RDF) graph, that relates to a specific aspect. It must follow the Semantic Aspect Meta Model (SAMM) guidelines, meaning it uses defined elements and rules from SAMM. Aspect models help to clarify the meaning of data at runtime and should link to standardized business glossary terms, if available.
BottleneckA facility, function, department, or resource whose capacity is less than the demand placed upon it. For example, a bottleneck machine or work center exists where jobs are processed at a slower rate than they are demanded (Source: ASCM Supply Chain Dictionary, 17th edition).
Business application providerOffers tools for demand and capacity management that conform to the core business logic, data models and APIs described in this standard.
Business Partner Number Legal Entity (BPNL)A BPNL is an unique identifier for a company or partner within the Catena-X network.
Business Partner Number Site (BPNS)A BPNS is an unique identifier for a specific location, such as a factory, within the Catena-X network.
Calendar WeekA week consisting of seven days, typically numbered according to the week containing the year's first Thursday. For example, if the first Thursday of the year is on January 1st, that week is considered Week 1.
Capacity1. The capability of a system to perform its expected function. 2. The capability of a worker, machine, work center, plant, or organization to produce output per time period. (Source: ASCM Supply Chain Dictionary, 17th edition).
Capacity GroupA Capacity Group is where material demand and capacity information are matched for collaborative planning. When written as WeekBasedCapacityGroup, it refers to a specific data model within this standard.
CommentA feature that allows two business partners to exchange messages about material demand and capacity, facilitating direct collaboration and quick issue resolution.
CommentsThese are purely text-based exchanges without the transfer of documents or attachments.
CreationEntityCurrently, a Creation Entity groups WeekBasedCapacityGroup objects to support digital twins in the planning process. It may represent a production plant and will be further defined in future revisions of this standard.
CustomerA role within the DCM use case. Receives goods from its suppliers. Participating companies can have multiple roles at the same time. Customers provide consistent and up-to-date demand forecast and receive capacity data from suppliers.
(Simulated) Delta-ProductionThis is an optional feature that allows suppliers to manage capacity bottlenecks by simulating changes in production without altering actual or maximum capacity.
Demand DeviationThis is an optional metric that allows suppliers to monitor changes in customer demands and to identify significant changes that can collaboratively be addressed by suppliers and customers.
Digital TwinBased on [CX-0002] Standard a digital twin (DT) describes a digital representation of an asset sufficient to meet the requirements of a set of use cases. For detailed information please refer to [CX-0002] Digital Twins in Catena-X.
Flexible CapacityThe difference between maximum and actual capacity, representing the potential to increase capacity without further agreements, such as extending the use of production resources within a week. In particular, it refers to measures to extend the weekly utilization of the available production resources.
Linking material demandMaterial demands can be linked directly to a capacity group or indirectly through another capacity group, which is known as "Nesting."
Load FactorOptional feature of a capacity group. ~ adds individual numerical material load factors to WeekBasedMaterialDemand linked by the WeekBasedCapacityGroup. ~ adds flexibility to the unit of measure of the capacity group.
MaterialThe elements, constituents, or substances of which something is composed or can be made. Usually referred to by a material number.
(Material) demandA need for a particular product or component. The demand could come from any number of sources (e.g., a customer order or forecast, an interplant requirement, a branch warehouse request for a service part, or the manufacturing of another product). At the finished goods level, demand data is usually different from sales data because demand does not necessarily result in sales (i.e., If there is no stock, there will be no sale (Source: ASCM Supply Chain Dictionary, 17th edition)). Material demand may comprise multiple demand series by location and demand categories. When the term is written as one word (WeekBasedMaterialDemand), the term refers specifically to the respective aspect model.
Maximum CapacityIs the maximum releasable capacity of a supplier which should be possible to achieve a material output per calendar week with a certain unit of measure for one customer. The maximum capacity is based on capacity-increasing measures, agreed by the parties involved. Capacity-increasing measures can be, for example, a longer utilization of the available production resources, a shift extension or additional shifts. Secondarily, additional resources can also be activated.
NestingA method by which a capacity group links another capacity group, allowing for dynamic changes and centralized data management.
SupplierA role within the DCM use case. Supplies goods to its customers. Participating companies can have multiple roles at the same time. Suppliers provide consistent and up-to-date capacity data and receive demands from customers.
SurplusA surplus is a situation in which an oversupply exists.
WeekBasedCapacityGroupThis term refers to the specific WeekBasedCapacityGroup object defined in this standard.

For additional terminology, please refer to the glossary on the association's homepage.

2 RELEVANT PARTS OF THIS STANDARD FOR SPECIFIC USE CASES

This section and all its subsections are normative

This chapter lists all aspects of this standard that directly impact other Catena-X use cases if modified.

2.1 Digital Twins

This standard utilizes digital twins of "part type" (BOM as planned). Digital twins of "part instance" (BOM as built) are not utilized. Part type twins are also relevant to various other Catena-X standards. For additional details see [CX-0126] Industry Core: Part Type.

2.2 Supply Chain Disruption Notifications

This standard utilizes Supply Chain Disruption Notifications. Supply Chain Disruption Notifications are also relevant to other Catena-X standards. For additional details see [CX-0146] Supply Chain Disruption Notifications.

2.3 Additional Requirements

2.3.1 Conventions for Use Case Policy in Context Data Exchange

In alignment with our commitment to data sovereignty, a specific framework governing the utilization of data within the Catena-X use cases has been described. A set of specific policies on data offering and data usage level detail the conditions under which data may be accessed, shared, and used, ensuring compliance with legal standards.

For a comprehensive understanding of the rights, restrictions, and obligations associated with data usage in the Catena-X ecosystem, we refer users to:

  • The detailed [ODRL] policy repository. This document provides in-depth explanations of the terms and conditions applied to data access and utilization, ensuring that all engagement with our data is conducted responsibly and in accordance with established guidelines.
  • The ODRL schema template. This defines how policies used for data sharing/usage should get defined. Those schemas MUST be followed when providing services or apps for data sharing/consuming.
2.3.1.1 Additional details regarding access policies

A data provider may tie certain access authorizations Access Policies to its data offers for members of Catena-X and one or several data consumers. By limiting access to certain Participants, data provider maintains control over its anti-trust obligations when sharing certain data. In particular, data providers may apply access policies to restrict access to a particular data offer for only one participant identified by a specific business partner number.

2.3.1.2 Additional details regarding usage policies

In the context of data usage policies Usage Policies, participants and related services MUST use the following policy rules:

  • Use Case Framework FrameworkAgreement
  • At least one use case purpose UsagePurpose from the above mentioned [ODRL] policy repository.

Additionally, respective usage policies MAY include the following policy rule:

  • Reference Contract ContractReference.

Details on namespaces and ODRL policy rule values to be used for the above-mentioned types are provided via the [ODRL] policy repository.

3 ASPECT MODELS

This section and all its subsections are normative

3.1 Aspect Model WeekBasedMaterialDemand

3.1.1 Introduction

For the exchange of material demand information, customers MUST provide data to suppliers. The data format specified in this standard MUST be conformed to.

Customers and suppliers MUST implement the WeekBasedMaterialDemand data model.

Suppliers MUST be able to consume and process material demand information.

Customers MUST be able to provide and process material demand information.

Data providers of WeekBasedMaterialDemand data MUST ensure that it aligns with the semantic model specified in this standard.

The unique identifier for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred.

Business applications utilizing WeekBasedMaterialDemand data MUST consume this data, conforming to the semantic model specified in this standard.

This semantic model MUST be made available in the central Semantic Hub.

Data consumers and data providers MUST comply with the license of the semantic model specified in Section 3.1.3.

Within the Catena-X data space WeekBasedMaterialDemand data MUST be requested and exchanged using a connector, conforming to the standards [CX-0018] and [CX-0002].

The JSON Payload provided by data providers MUST comply with the JSON schema as specified in this standard.

The characteristics BPNL and BPNS MUST be used, conforming with [CX-0010].

3.1.2 Specification Artifacts

The creation of the semantic model specified in this section followed a sematic driven workflow, conforming to [SMT]. Conforming with [CX-0003] the resulting aspect model was written in SAMM 2.0.0 and is available on GitHub.

3.1.3 License

This Catena-X data model is released under the CC-BY-4.0 license.

3.1.4 Identifier of Semantic Model

The semantic model has the unique identifier

urn:samm:io.catenax.week_based_material_demand:3.0.0

Data providers MUST use this identifier to clearly define the semantics of the data they are transferring.

3.1.5 Formats of Semantic Model

3.1.5.1 RDF turtle

All other file format and serializations are derived from a RDF turtle file. It is the source for the Semantic Aspect Meta Model. You can access the RDF turtle file at the following URL:

https://github.com/eclipse-tractusx/sldt-semantic-models/blob/main/io.catenax.week_based_material_demand/3.0.0/WeekBasedMaterialDemand.ttl

The open source command line tool of the Eclipse Semantic Modeling Framework is used to generate other file formats such as JSON schema, AASX for Asset Administration Shell Submodel template or HTML documentation.

3.1.5.2 JSON schema

A JSON schema, which describes the structure of the data payload, can be created from the RDF turtle file. This schema specifically describes the data format for the GetSubmodel API operation within the Asset Administration Shell, focusing on the values without including semantic information. This allows for a clear and structured way to retrieve data from the API.

3.1.5.3 AASX

An AASX file can be generated from the RDF turtle file. The AASX file defines one of the requested artifacts for a Submodel template specification conformant to [SMT].

3.1.6 Semantic Model

Not applicable.

3.2 Aspect Model WeekBasedCapacityGroup

3.2.1 Introduction

For the exchange of capacity group information, suppliers MUST provide data to customers. The data format specified in this standard MUST be conformed to.

Customers and suppliers MUST implement the WeekBasedCapacityGroup data model.

Suppliers MUST be able to provide and process capacity group information.

Customers MUST be able to consume and process capacity group information.

Data providers of WeekBasedCapacityGroup data MUST ensure that it aligns with the semantic model specified in this standard.

The unique identifier for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred.

Business applications utilizing WeekBasedCapacityGroup data MUST consume this data, conforming to the semantic model specified in this standard.

This semantic model MUST be made available in the central Semantic Hub.

Data consumers and data providers MUST comply with the license of the semantic model specified in Section 3.2.3.

Within the Catena-X data space WeekBasedCapacityGroup data MUST be requested and exchanged using a connector, conforming to the standards [CX-0018] and [CX-0002].

The JSON Payload provided by data providers MUST comply with the JSON schema as specified in this standard.

The characteristics BPNL and BPNS MUST be used, conforming with [CX-0010].

3.2.2 Specification Artifacts

The creation of the semantic model specified in this section followed a sematic driven workflow, conforming to [SMT]. Conforming with [CX-0003] the resulting aspect model was written in SAMM 2.0.0 and is available on GitHub.

3.2.3 License

This Catena-X data model is released under the (CC-BY-4.0) license.

3.2.4 Identifier of Semantic Model

The semantic model has the unique identifier

urn:samm:io.catenax.week_based_capacity_group:3.0.0

Data providers MUST use this identifier to clearly define the semantics of the data they are transferring.

3.2.5 Formats of Semantic Model

3.2.5.1 RDF turtle

All other file format and serializations are derived from a RDF turtle file. It is the source for the Semantic Aspect Meta Model. You can access the RDF turtle file at the following URL:

https://github.com/eclipse-tractusx/sldt-semantic-models/blob/main/io.catenax.week_based_capacity_group/3.0.0/WeekBasedCapacityGroup.ttl

The open source command line tool of the Eclipse Semantic Modeling Framework is used to generate other file formats such as JSON schema, AASX for Asset Administration Shell Submodel template or HTML documentation.

3.2.5.2 JSON schema

A JSON schema, which describes the structure of the data payload, can be created from the RDF turtle file. This schema specifically describes the data format for the GetSubmodel API operation within the Asset Administration Shell, focusing on the values without including semantic information. This allows for a clear and structured way to retrieve data from the API.

3.2.5.3 AASX

An AASX file can be generated from the RDF turtle file. The AASX file defines one of the requested artifacts for a Submodel template specification conformant to [SMT].

3.2.6 Semantic Model

Not applicable.

3.3 Aspect Model IdBasedRequestForUpdate

3.3.1 Introduction

IdBasedRequestForUpdate can be exchanged between customer and supplier conforming to the API standard described in Chapter 4.3. The data format specified in this standard MUST be conformed to.

Customers and suppliers MUST implement the IdBasedRequestForUpdate data model.

Customers and suppliers MUST be able to consume and process a request for update.

Providing an IdBasedRequestForUpdate is OPTIONAL. It is RECOMMENDED to be both capable of providing and consuming a request for update.

Providers of an IdBasedRequestForUpdate MUST ensure that it aligns with the semantic model specified in this standard.

The unique identifier for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred.

Business applications utilizing IdBasedRequestForUpdate data MUST consume this data, conforming to the semantic model specified in this standard.

This semantic model MUST be made available in the central Semantic Hub.

Data consumers and data providers MUST comply with the license of the semantic model specified in Section 3.3.3.

Within the Catena-X data space IdBasedRequestForUpdate data MUST be requested and exchanged using a connector, conforming to the standards [CX-0018] and [CX-0002].

The JSON Payload provided by data providers MUST comply with the JSON schema as specified in this standard.

3.3.2 Specification Artifacts

The creation of the semantic model specified in this section followed a sematic driven workflow, conforming to [SMT]. Conforming with [CX-0003] the resulting aspect model was written in SAMM 2.0.0 and is available on GitHub.

3.3.3 License

This Catena-X data model is released under the (CC-BY-4.0) license.

3.3.4 Identifier of Semantic Model

The semantic model has the unique identifier

urn:samm:io.catenax.id_based_request_for_update:3.0.0

Data providers MUST use this identifier to clearly define the semantics of the data they are transferring.

3.3.5 Formats of Semantic Model

3.3.5.1 RDF turtle

All other file format and serializations are derived from a RDF turtle file. It is the source for the Semantic Aspect Meta Model. You can access the RDF turtle file at the following URL:

https://github.com/eclipse-tractusx/sldt-semantic-models/blob/main/io.catenax.id_based_request_for_update/3.0.0/IdBasedRequestForUpdate.ttl

The open source command line tool of the Eclipse Semantic Modeling Framework is used to generate other file formats such as JSON schema, AASX for Asset Administration Shell Submodel template or HTML documentation.

3.3.5.2 JSON schema

A JSON schema, which describes the structure of the data payload, can be created from the RDF turtle file. This schema specifically describes the data format for the GetSubmodel API operation within the Asset Administration Shell, focusing on the values without including semantic information. This allows for a clear and structured way to retrieve data from the API.

3.3.5.3 AASX

An AASX file can be generated from the RDF turtle file. The AASX file defines one of the requested artifacts for a Submodel template specification conformant to [SMT].

3.3.6 Semantic Model

Not applicable.

3.4 Aspect Model IdBasedComment

3.4.1 Introduction

An IdBasedComment can refer to a WeekBasedCapacityGroup, its weekly capacities, a WeekBasedMaterialDemand, or its weekly demand series. This comment can be exchanged between customer and supplier conforming to the API standard described in Chapter 4.4. The data format specified in this standard MUST be conformed to.

Customers and suppliers MUST implement the IdBasedComment data model.

Customers and suppliers MUST be able to provide and process an IdBasedComment.

Customers and suppliers MUST be able to consume and process an IdBasedComment.

Data providers of IdBasedComment data MUST ensure that it aligns with the semantic model specified in this standard.

The unique identifier for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred.

Business applications utilizing IdBasedComment data MUST consume this data, conforming to the semantic model specified in this standard.

This semantic model MUST be made available in the central Semantic Hub.

Data consumers and data providers MUST comply with the license of the semantic model specified in Section 3.4.3.

Within the Catena-X data space IdBasedComment data MUST be requested and exchanged using a connector, conforming to the standards [CX-0018] and [CX-0002].

The JSON Payload provided by data providers MUST comply with the JSON schema as specified in this standard.

The characteristics BPNL and BPNS MUST be used, conforming with [CX-0010].

3.4.2 Specification Artifacts

The creation of the semantic model specified in this section followed a sematic driven workflow, conforming to [SMT]. Conforming with [CX-0003] the resulting aspect model was written in SAMM 2.0.0 and is available on GitHub.

3.4.3 License

This Catena-X data model is released under the (CC-BY-4.0) license.

3.4.4 Identifier of Semantic Model

The semantic model has the unique identifier

urn:samm:io.catenax.id_based_comment:1.0.0

Data providers MUST use this identifier to clearly define the semantics of the data they are transferring.

3.4.5 Formats of Semantic Model

3.4.5.1 RDF turtle

All other file format and serializations are derived from a RDF turtle file. It is the source for the Semantic Aspect Meta Model. You can access the RDF turtle file at the following URL:

https://github.com/eclipse-tractusx/sldt-semantic-models/blob/main/io.catenax.id_based_comment/1.0.0/IdBasedComment.ttl

The open source command line tool of the Eclipse Semantic Modeling Framework is used to generate other file formats such as JSON schema, AASX for Asset Administration Shell Submodel template or HTML documentation.

3.4.5.2 JSON schema

A JSON schema, which describes the structure of the data payload, can be created from the RDF turtle file. This schema specifically describes the data format for the GetSubmodel API operation within the Asset Administration Shell, focusing on the values without including semantic information. This allows for a clear and structured way to retrieve data from the API.

3.4.5.3 AASX

An AASX file can be generated from the RDF turtle file. The AASX file defines one of the requested artifacts for a Submodel template specification conformant to [SMT].

3.4.6 Semantic Model

Not applicable.

4 APPLICATION PROGRAMMING INTERFACES

This section and all its subsections are normative

HEADER

When exchanging data with a DCM partner, the POST request payload MUST be structured as follows:

{
"messageHeader":
<messageHeaderObject>,

"content":{
"informationObject":[
<informationObject>,
<informationObject>
]
}
}

This format ensures that the header, which contains metadata about the message, is kept separate from the content, which includes the actual data being exchanged. The content section can hold multiple informationObject entries. These objects can be one of the following types: WeekBasedMaterialDemand, WeekBasedCapacityGroup, IdBasedComment, or IdBasedRequestForUpdate.

The master reference for generating additional file formats and serializations is the RDF turtle file, which is an instance of the Semantic Aspect Meta Model. The RDF turtle file for the messageHeaderObject is defined in a centralized shared aspect model and can be accessed at the following URL:

https://github.com/eclipse-tractusx/sldt-semantic-models/blob/main/io.catenax.shared.message_header/3.0.0/MessageHeaderAspect.ttl

Within the RDF turtle file, you will find detailed descriptions for how to use the message header.

4.1 WeekBasedMaterialDemand API

The WeekBasedMaterialDemand object is used to provide material demand information from customer to supplier.

Customers MUST be able to provide WeekBasedMaterialDemand.

Suppliers MUST be able to consume and process WeekBasedMaterialDemand.

4.1.1 Preconditions and Dependencies

The WeekBasedMaterialDemand API MUST be published towards the network using a Data Asset/Contract Offer, which is in line with the Dataspace Protocol as specified by the International Data Spaces Association (IDSA) and MUST conform with the Catena-X standard [CX-0001].

4.1.2 API Specification

4.1.2.1 API endpoints and resources

The API requires a single endpoint that accepts HTTP POST requests as described in [RFC9110]. The specific structure of the endpoint MAY vary, but its address MUST be included in the Data Asset as defined in Section 4.1.2.5.

4.1.2.2 Data exchange

Customers MUST provide suppliers with WeekBasedMaterialDemand data via HTTP POST request. The data MUST conform to the format specified in this standard and it MUST NOT exceed 15 MiB in size. It MUST be a valid JSON string and MUST include all mandatory properties. The data model with all its properties MUST conform to the respective aspect model and the definitions in Chapter 3.1 as well as Units of measure used in DCM. Properties marked as "optional" MAY be included in the data. When consuming a payload, that contains unknown properties not described within the data model but is otherwise correct, those properties MUST be ignored.

Attributes that are strings MUST be formatted correctly. For example, expectedSupplierLocation MUST be formatted as a BPNS. The pointInTime property MUST represent the week's Monday in the format YYYY-MM-DD as described in [ISO8601].

The demandCategory property MUST be set to one of the predefined values from Section 5.5.1.

The unitOfMeasure property MUST be set to one of the predefined values from Units of measure used in DCM. If no unit of measure is to be provided, the customer MUST omit the property and set the unitOfMeasureIsOmitted flag to true.

Multiple WeekBasedMaterialDemand aspects MAY be provided in one transfer as a JSON list. If only one WeekBasedMaterialDemand aspect is provided, it MUST be as list with one entry.

The current week is denominated as N=0, the next week as N=1, the week after the next week as N=2 and so on. The data series in the WeekBasedMaterialDemand SHOULD start from week N=2. The dataset MUST include at least one week, where N>1 and MUST NOT contain duplicate weeks. Weeks N=0 and N=1 MAY be included. If demand changes, the entire dataset MUST be provided again, avoiding inconsistent or incomplete data. The new dataset might contain additional data or less data than the previous version of the same dataset. This includes the possibility that a demandSeries might have been removed entirely. Each WeekBasedMaterialDemand object MUST be unique for a given supplier, customer and materialNumberCustomer combination. This means that customers need to aggregate demands from all their factories before providing them to suppliers as a single WeekBasedMaterialDemand.

If a week's demand is zero (value = 0), it MUST be explicitly stated and included in the WeekBasedMaterialDemand, unknown demands (value = null) SHOULD be omitted.

The customer MAY define a WeekBasedMaterialDemand as inactive by setting and transferring the materialDemandIsInactive flag to the supplier. The inactive WeekBasedMaterialDemand and their related demandSeries data MUST be ignored during the demand-capacity matching over the whole horizon, i.e. must be considered in the same way as not existing data for the demand-capacity matching. Inactivating a WeekBasedMaterialDemand may trigger their archiving or deletion in the local DCM application of the business partner. Once a WeekBasedMaterialDemand has been set as inactive, this MAY be undone by the customer by reverting the materialDemandIsInactive flag. In this case, the WeekBasedMaterialDemand MUST again be considered during the demand-capacity matching. The reverting of the inactive flag of a WeekBasedMaterialDemand may correspond to a newly created and initially transferred or to an updated WeekBasedMaterialDemand.

4.1.2.3 UUID generation and handling

UUIDv4 is REQUIRED for exchanging demand data to ensure uniqueness and security. The UUID MUST be generated conforming to [RFC4122] and MUST be treated as unique within the supplier-customer relationship.

See Section 4.1.2.7 for further handling information.

4.1.2.4 Available data types

The API MUST use JSON formatted data transmitted over HTTPS.

4.1.2.5 Data asset structure

The HTTP POST endpoint introduced in Section 4.1.2.1 MUST NOT be called from a supply chain partner directly. Rather, it MUST be called via connector conformant to [CX-0018]. Therefore, the endpoint MUST be offered as a Data Asset. The latter MUST have a property https://purl.org/dc/terms/type with the ID https://w3id.org/catenax/taxonomy#DcmWeekBasedMaterialDemand. It can be abbreviated if the namespaces of key and value are part of the json-ld @context object (see example below). This property SHOULD be used to identify the asset when searching the assets catalog of a supplier. Because the asset reflects the contractual relationship between a supplier and its customers, only one asset with the aforementioned property for one version MUST be visible to the customer at any time to avoid ambiguity.

The API version described in this standard MUST be published in the property https://w3id.org/catenax/ontology/common#version as version 2.0 in the asset. The requester of an asset MUST be able to handle multiple assets for this endpoint, being differentiated only by the version. The requester SHOULD choose the asset with the highest compatible version number implemented by themselves. If the requester cannot find a compatible version with their own, the requester MUST terminate the data transfer.

Each supplier MUST ensure that only their customers have access to the asset by using access and usage policies and respective contract definitions.

An example Data Asset definition is shown below.

Note: Expressions in double curly braces {{}} MUST be substituted with a corresponding value.

Asset definition example for Management API v3 (non-normative)

{
"@context": {
"edc": "https://w3id.org/edc/v0.0.1/ns/",
"cx-common": "https://w3id.org/catenax/ontology/common#",
"cx-taxo": "https://w3id.org/catenax/taxonomy#",
"dct": "https://purl.org/dc/terms/"
},
"@id": "{{ ASSET_ID }}",
"properties": {
"dct:type": {
"@id": "cx-taxo:DcmWeekBasedMaterialDemand"
},
"description": "Endpoint for providing Material Demands",
"cx-common:version": "2.0"
},
"dataAddress": {
"@type": "DataAddress",
"type": "HttpData",
"baseUrl": "{{ URL-BACKEND-APPLICATION-WEEKBASEDMATERIALDEMAND-ENDPOINT }}",
"method": "POST",
"proxyBody": "true",
"contentType": "application/json"
}
}
4.1.2.6 Error handling

Every API endpoint defined in Section 4.1.2.1 MUST respond to incoming requests with HTTP status codes as described in [RFC9110]. All of the following HTTP status codes, except for codes 200 and 201, MUST be interpreted as failures. Therefore, it may be sufficient for a business application to simply check if the status code is 200 or 201 or not. If not, the request failed.

HTTP Status CodeHTTP Status MessageDescription
200OKThe request has succeeded. The WeekBasedMaterialDemand has been successfully processed in the backend system.
201CreatedThe request has succeeded and has led to the creation of a new WeekBasedMaterialDemand in the backend system.
400Bad requestThe server cannot or will not process the request due to something that is perceived to be a client error (e.g. malformed request syntax, invalid request message framing, or deceptive request routing).
401UnauthorizedThe client request has not been completed because it lacks valid authentication credentials for the requested resource.
403ForbiddenThe WeekBasedMaterialDemand in question is not available for the client (e.g. it belongs to a different company).
405Method not allowedThe method used to request the data was not POST.
422Unprocessable EntityThe request was well-formed but was unable to be followed due to semantic errors, e.g. the JSON payload could not be parsed.
503Service UnavailableThe server is not ready to handle the request.

If one WeekBasedMaterialDemand aspect is provided in one HTTP request, the return codes MUST be used as stated in the table above.

If a list of multiple WeekBasedMaterialDemand aspects is provided in one HTTP request, the status code 400 MUST be used if at least one WeekBasedMaterialDemand in the list cannot be processed. Applications MAY choose to process valid entries from a list which also contains invalid entries. If a list of multiple WeekBasedMaterialDemand aspects is provided in one HTTP request and all of them can be processed successfully, the status code 200 MUST be used.

The return codes 401, 405, 422 and 503 in the table above MAY also be applicable to a list of multiple WeekBasedMaterialDemand aspects.

4.1.2.7 Validating payload

The following tables are supposed to answer questions regarding what business logic MUST be executed when consuming a WeekBasedMaterialDemand which has been formed in a specific way.

The order of rules is indicated by the 'Number' row. The rules MUST be executed in exactly this order, starting from the lowest number.

The first rule that matches MUST be executed. All other rules MUST be ignored.

'value' indicates the actual value written in quotation marks and without any specific formatting (e.g. italic).

Valid value indicates that the value is valid according to aspect model, API and process.

Invalid value indicates that the value is invalid according to aspect model, API and process.

Any value indicates that the value can be anything, valid or not.

A whitespace or an empty cell indicates that for this specific rule that row is not applicable.

Number1
Properties
Meta PropertiesAny propertyInvalid value
All other propertiesAny value
ActionsBusiness LogicIgnore consumed values
Return Code400 - Bad Request
Number2
PropertiescustomerCustomer BPNL does not match the providing connectors registered BPNL
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicIgnore consumed values
Return Code400 - Bad Request
Number3
PropertiescustomerSupplier does not match any Supplier BPNL that I am responsible for
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicIgnore consumed values
Return Code400 - Bad Request
Number4
PropertiesmaterialDemandIDKnown value
changedAtMore recent than all previously consumed WeekBasedMaterialDemand with the same materialDemandID
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicOverwrite all existing values
Return Code200 - OK
Number5
PropertiesmaterialDemandIDUnknown value, but there exists another UUID for the exact same combination of supplier, customer and materialNumberCustomer
customerKnown value
supplierKnown value
materialNumberCustomerKnown value
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicIgnore consumed values
Return Code400 - Bad Request
Number6
PropertiesmaterialDemandIDUnknown value
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicSave as new material demand with consumed values
Return Code201 - Created
Number7
PropertiesmaterialDemandIDKnown value
changedAtOlder than any previously consumed WeekBasedMaterialDemand with the same materialDemandID
Meta PropertiesAny property
All other propertiesAny value
ActionsBusiness LogicIgnore consumed values
Return Code400 - Bad Request
Number8
PropertiesmaterialDemandIDKnown value
changedAtIdentical to the most recent of all previously consumed WeekBasedMaterialDemand with the same materialDemandID
Meta PropertiesAny property
All other propertiesAny value
ActionsBusiness LogicOverwrite all existing values with consumed values
Return Code200 - OK

4.2 WeekBasedCapacityGroup API

The WeekBasedCapacityGroup object is used to provide capacity group information from supplier to customer.

Suppliers MUST be able to provide WeekBasedCapacityGroup

Customers MUST be able to consume and process WeekBasedCapacityGroup

4.2.1 Preconditions and Dependencies

The WeekBasedCapacityGroup API MUST be published towards the network using a Data Asset/Contract Offer, which is in line with the Dataspace Protocol as specified by IDSA and MUST conform with the Catena-X standard [CX-0001].

4.2.2 API Specification

4.2.2.1 API endpoints and resources

The API requires a single endpoint that accepts HTTP POST requests as described in [RFC9110]. The specific structure of the endpoint MAY vary, but its address MUST be included in the Data Asset as defined in Section 4.1.2.5.

4.2.2.2 Data exchange

Suppliers MUST provide customers with WeekBasedCapacityGroup data via HTTP POST request. The data MUST conform to the format specified in this standard and it MUST NOT exceed 15 MiB in size. It MUST be a valid JSON string and MUST include all mandatory properties. The data model with all its properties MUST conform to the respective aspect model and the definitions in Chapter 3.2 as well as in Units of measure used in DCM. Properties marked as "optional" MAY be included in the data. When consuming a payload, that contains unknown properties not described within the data model but is otherwise correct, those properties MUST be ignored.

Attributes that are strings MUST be formatted correctly. For example, customer MUST be formatted as a BPNL. The pointInTime property MUST represent the week's Monday in the format YYYY-MM-DD as described in [ISO8601].

The demandCategory property MUST be set to one of the predefined values from Section 5.5.1.

The unitOfMeasure property MUST be set to one of the predefined values from Units of measure used in DCM. If no unit of measure is to be provided, the customer MUST omit the property and set the unitOfMeasureIsOmitted flag to true.

Multiple WeekBasedCapacityGroup aspects MAY be provided in one transfer as a JSON list. If only one WeekBasedCapacityGroup aspect is provided, it MUST be as a list with one entry.

The current week is denominated as N=0, the next week as N=1, the week after the next week as N=2 and so on. The data series in the WeekBasedCapacityGroup SHOULD start from N=2. The dataset MUST include at least one week, where N>1 and MUST NOT contain duplicate weeks. Weeks N=0 and N=1 MAY be included. If capacity changes, the entire dataset MUST be provided again, avoiding inconsistent or incomplete data. A single combination of demandCategory, customerLocation and materialNumberCustomer MAY be referenced across multiple WeekBasedCapacityGroup objects. This means that one materialNumberCustomer MAY appear in the linkedDemandSeries of several distinct WeekBasedCapacityGroup objects.

If a week's demand is zero (value = 0), it MUST be explicitly stated and included in the WeekBasedMaterialDemand, unknown demands (value = null) SHOULD be omitted.

The linkedDemandSeries property specifies which particular WeekBasedMaterialDemand a WeekBasedCapacityGroup is referencing. To clarify the linkedDemandSeries points to a demand with a specific trio: demandCategory, customerLocation and materialNumberCustomer.

The customer MAY define a WeekBasedCapacityGroup as inactive by setting and transferring the capacityGroupIsInactive flag to the supplier. The inactive WeekBasedCapacityGroup MUST be ignored during the demand-capacity matching over the whole horizon, i.e. must be considered in the same way as not existing data for the demand-capacity matching. Inactivating data may trigger their archiving or deletion in the local DCM application of the business partner. The inactive flag of a WeekBasedCapacityGroup MUST NOT affect linked WeekBasedMaterialDemand objects or other linked WeekBasedCapacityGroup. The inactivation of a WeekBasedCapacityGroup MAY result in the situation that its linked active WeekBasedMaterialDemand objects have to be newly linked to other active WeekBasedCapacityGroup. Once a WeekBasedCapacityGroup has been set as inactive, this MAY be undone by reverting the capacityGroupIsInactive flag. In this case, the WeekBasedCapacityGroup MUST again be considered during the demand-capacity matching. The reverting of the inactive flag of a WeekBasedCapacityGroup may correspond to a newly created and initially transferred or to an updated WeekBasedCapacityGroup.

Suppliers MAY use demand volatility metrics, including the optional entity demandVolatilityParameters within the JSON payload.

The following properties are used by demand volatility metrics:

  • demandVolatilityParameters
    • startReferenceDateTime
    • measurementInterval
    • rollingHorizonAlertThresholds
      • sequenceNumber
      • subhorizonLength
      • absolutePositiveDeviation
      • absoluteNegativeDeviation
      • relativePositiveDeviation
      • relativeNegativeDeviation

Suppliers use startReferenceDateTime to define the start of the demand volatility metric calculation, it is also marks the start of the first measurement interval. Its value MUST be chosen, so that transfer times are considered, allowing the customer to consume the data while startReferenceDateTime is still larger than the customer´s system time. It is RECOMMENDED to allow for a grace period of at least 24 hours.

In order to get the start of any subsequent measurement intervals the value of measurementInterval needs to be converted from integer to weeks and added to startReferenceDateTime.

Once demand volatility metric calculation has been initialized startReferenceDateTime MUST maintain its value.

If the value of startReferenceDateTime or measurementInterval changes this is considered another initialization.

For details, see Chapter 3.2.

The sequence of entries within the linkedDemandSeries of a WeekBasedCapacityGroup does not follow any particular order and MUST be treated as non-sequential or random.

4.2.2.3 UUID generation and handling

UUIDv4 is REQUIRED for exchanging capacity data to ensure uniqueness and security. The UUID MUST be generated conforming to [RFC4122] and MUST be treated as unique within the supplier-customer relationship.

See Section 4.1.2.7 for further handling information.

4.2.2.4 Available data types

The API MUST use JSON formatted data transmitted over HTTPS.

4.2.2.5 Data asset structure

The HTTP POST endpoint introduced in Section 4.2.2.1 MUST NOT be called from a supply chain partner directly. Rather, it MUST be called via a connector conformant to [CX-0018]. Therefore, the endpoint MUST be offered as a Data Asset. The latter MUST have a property https://purl.org/dc/terms/type with the ID https://w3id.org/catenax/taxonomy#DcmWeekBasedCapacityGroup. It can be abbreviated if the namespaces of key and value are part of the json-ld @context object (see example below). This property SHOULD be used to identify the asset when searching the assets catalog of a customer. Because the asset reflects the contractual relationship between a customer and its suppliers, only one asset with the aforementioned property for one version MUST be visible to the supplier at any time to avoid ambiguity.

The API version described in this standard MUST be published in the property https://w3id.org/catenax/ontology/common#version as version 2.0 in the asset. The requester of an asset MUST be able to handle multiple assets for this endpoint, being differentiated only by the version. The requester SHOULD choose the asset with the highest compatible version number implemented by themselves. If the requester cannot find a compatible version with their own, the requester MUST terminate the data transfer.

Each customer MUST ensure that only their suppliers have access to the asset by using access and usage policies and respective contract definitions.

An example Data Asset definition is shown below.

Note: Expressions in double curly braces {{}} MUST be substituted with a corresponding value.

Asset definition example for management API v3 (non-normative)

{
"@context": {
"edc": "https://w3id.org/edc/v0.0.1/ns/",
"cx-common": "https://w3id.org/catenax/ontology/common#",
"cx-taxo": "https://w3id.org/catenax/taxonomy#",
"dct": "https://purl.org/dc/terms/"
},
"@id": "{{ ASSET_ID }}",
"properties": {
"dct:type": {
"@id": "cx-taxo:DcmWeekBasedCapacityGroup"
},
"description": "Endpoint for providing Week Based Capacity Groups",
"cx-common:version": "2.0"
},
"dataAddress": {
"@type": "DataAddress",
"type": "HttpData",
"baseUrl": "{{ URL-BACKEND-APPLICATION-WEEKBASEDCAPACITYGROUP-ENDPOINT }}",
"method": "POST",
"proxyBody": "true",
"contentType": "application/json"
}
}
4.2.2.6 Error handling

Every API endpoint defined in Section 4.2.2.1 MUST respond to incoming requests with HTTP status codes as described in [RFC9110]. All of the following HTTP status codes, except for codes 200 and 201, MUST be interpreted as failures. Therefore, it may be sufficient for a business application to simply check if the status code is 200 or 201 or not. If not, the request failed.

HTTP Status CodeHTTP Status MessageDescription
200OKThe request has succeeded. The WeekBasedCapacityGroup has been successfully processed in the backend system.
201CreatedThe request has succeeded and has led to the creation of a new WeekBasedCapacityGroup in the backend system.
400Bad requestThe server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
401UnauthorizedThe client request has not been completed because it lacks valid authentication credentials for the requested resource.
403ForbiddenThe WeekBasedCapacityGroup in question is not available for the client (e.g. it belongs to a different company).
405Method not allowedThe method used to request the data was not POST.
422Unprocessable EntityThe request was well-formed but was unable to be followed due to semantic errors, e.g. the JSON payload could not be parsed.
503Service UnavailableThe client request has not been completed because it lacks valid authentication credentials for the requested resource.

If one WeekBasedCapacityGroup aspect is provided in one HTTP request, the return codes MUST be used as stated in the table above.

If a list of multiple WeekBasedCapacityGroup aspects is provided in one HTTP request, the status code 400 MUST be used if at least one WeekBasedCapacityGroup in the list cannot be processed. Applications MAY choose to process valid entries from a list which also contains invalid entries. If a list of multiple WeekBasedCapacityGroup aspects is provided in one HTTP request and all of them can be processed successfully, the status code 200 MUST be used.

The return codes 401, 405, 422 and 503 in the table above MAY also be applicable to a list of multiple WeekBasedCapacityGroup aspects.

4.2.2.7 Validating payload

The following tables are supposed to answer questions regarding what business logic MUST be executed when consuming a WeekBasedCapacityGroup which has been formed in a specific way.

The order of rules is indicated by the 'Number' row.

The first rule that matches MUST be executed. All other rules MUST be ignored.

'value' indicates the actual value written in quotation marks and without any specific formatting (e.g. italic).

Valid value indicates that the value is valid according to aspect model, API and process.

Invalid value indicates that the value is invalid according to to aspect model, API and process.

Any value indicates that the value can by anything, valid or not.

A whitespace or an empty cell indicates that for this specific rule that row is not applicable.

Number1
Properties
Meta PropertiesAny propertyInvalid value
All other propertiesAny value
ActionsBusiness LogicIgnore consumed values
Return Code400 - Bad Request
Number2
PropertiescustomerSupplier BPNL does not match the providing connectors registered BPNL
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicIgnore consumed values
Return Code400 - Bad Request
Number3
PropertiescustomerCustomer does not match any Supplier BPNL that I am responsible for
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicIgnore consumed values
Return Code400 - Bad Request
Number4
PropertieslinkedCapacityGroupsEither both linkedCapacityGroups and linkedDemandSeries contain Any value or do not contain a value.
linkedDemandSeriesEither both linkedCapacityGroups and linkedDemandSeries contain Any value or do not contain a value.
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicIgnore consumed values
Return Code400 - Bad Request
Number5
PropertiesstartReferenceDateTimevalue < system time AND value <> current value of startReferenceDateTime
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicIgnore consumed values.
Return Code400 - Bad Request
Number6
PropertiescapacityGroupIDKnown value
changedAtMore recent than all previously consumed WeekBasedCapacityGroup with the same capacityGroupID
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicOverwrite all existing values
Return Code200 - OK
Number7
PropertiescapacityGroupIDUnknown value
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicSave as new capacity group with consumed values
Return Code201 - Created
Number8
PropertiescapacityGroupIDKnown value
changedAtOlder than any previously consumed WeekBasedCapacityGroup with the same capacityGroupID
Meta PropertiesAny property
All other propertiesAny value
ActionsBusiness LogicIgnore consumed values
Return Code400 - Bad Request
Number9
PropertiescapacityGroupIDKnown value
changedAtIdentical to the most recent of all previously consumed WeekBasedCapacityGroup with the same capacityGroupID
Meta PropertiesAny property
All other propertiesAny value
ActionsBusiness LogicOverwrite all existing values with consumed values
Return Code200 - OK

4.3 RequestForUpdate API

The IdBasedRequestForUpdate object (RfU) is used to request updates of some or even all WeekBasedMaterialDemand or WeekBasedCapacityGroup objects.

Customers and Supplier MUST be able to consume and process a RfU. Being able to provide a RfU is RECOMMENDED.

To properly proccess a RfU, the following steps MUST be executed:

  1. Response: Answering with the appropriate HTTP status code
  2. Action: If that status code is 200 OK: Providing the requested material demands and capacity groups via WeekBasedMaterialDemand API or WeekBasedCapacityGroup API respectively.

It is RECOMMENDED that this functionality SHOULD NOT be an end-user functionality which can be executed in an user interface.

4.3.1 Preconditions and Dependencies

The IdBasedRequestForUpdate API MUST be published towards the network using a Data Asset/Contract Offer, which is in line with the Dataspace Protocol as specified by IDSA and MUST conform with the Catena-X standard [CX-0001].

4.3.2 API Specification

4.3.2.1 API endpoints and resources

The API requires a single endpoint that accepts HTTP POST requests as described in [RFC9110]. The specific structure of the endpoint MAY vary, but its address MUST be included in the Data Asset as defined in Section 4.1.2.5.

4.3.2.2 Data exchange

The IdBasedRequestForUpdate data MUST be provided by the customer to the supplier or vice versa via HTTP POST request. The data MUST conform to the format specified in this standard and it MUST NOT exceed 15 MiB in size. When consuming a payload, that contains unknown properties not described within this standard but is otherwise correct, those properties MUST be ignored.

An empty RfU payload requests all data within the specific customer-supplier relationship.

A RfU payload MAY specify that only WeekBasedMaterialDemand or WeekBasedCapacityGroup objects are requested within the specific customer-supplier relationship.

A RfU payload MAY specify that only certain data objects, identified by their respective UUID, are requested within the specific customer-supplier relationship.

A RfU payload MAY specify that only certain data objects, that have been updated, identified by their respective UUID and changedAt value, are requested within the specific customer-supplier relationship.

The following example payloads are intended to illustrate the different possible payloads of an IdBasedRequestForUpdate:

RfU: Provide Everything

{
}

RfU: Provide only Material Demands

{
"weekBasedMaterialDemand": [
]
}

RfU: Provide only Capacity Groups

{
"weekBasedCapacityGroup": [
]
}

RfU: Provide only certain Objects

{
"weekBasedMaterialDemand": [
{
"materialDemandId":"278e333d-f06b-4b59-8e95-22862f69807f"},
{
"materialDemandId":"46adfa5d-36b7-4a9b-9ac6-508dac500dd2"}
]
},
{
"weekBasedCapacityGroup": [
{
"capacityGroupId":"a2fc69ac-ede7-48d3-bee5-04de665d49f0"},
{
"capacityGroupId":"34238729-990a-4b61-b0c6-336da7b71675"}
]
}

RfU: Provide only certain Objects and only if my version is not up to date

{
"weekBasedMaterialDemand": [
{
"materialDemandId":"278e333d-f06b-4b59-8e95-22862f69807f"},
{
"materialDemandId":"46adfa5d-36b7-4a9b-9ac6-508dac500dd2"}
]
},
{
"weekBasedCapacityGroup": [
{
"capacityGroupId":"a2fc69ac-ede7-48d3-bee5-04de665d49f0"},
{
"capacityGroupId":"34238729-990a-4b61-b0c6-336da7b71675",
"changedAt": "2023-03-08T11:44:27.701+01:00"}
]
}
4.3.2.3 Available data types

The API MUST use JSON formatted data transmitted over HTTPS.

4.3.2.4 Data asset structure

The HTTP POST endpoint introduced in Section 4.3.2.1 MUST NOT be called from a supply chain partner directly. Rather, it MUST be called via a connector conformant to [CX-0018]. Therefore, the endpoint MUST be offered as a Data Asset. The latter MUST have a property https://purl.org/dc/terms/type with the ID https://w3id.org/catenax/taxonomy#DcmIdBasedRequestForUpdate. It can be abbreviated if the namespaces of key and value are part of the json-ld @context object (see example below). This property SHOULD be used to identify the asset when searching the assets catalog of a partner. Because the asset reflects the contractual relationship between two DCM partners, only one asset with the aforementioned property for one version MUST be visible to the partner at any time to avoid ambiguity.

The API version described in this standard MUST be published in the property https://w3id.org/catenax/ontology/common#version as version 2.0 in the asset. The requester of an asset MUST be able to handle multiple assets for this endpoint, being differentiated only by the version. The requester SHOULD choose the asset with the highest compatible version number implemented by themselves. If the requester cannot find a compatible version with their own, the requester MUST terminate the data transfer.

Each DCM participant MUST ensure that only their business partners have access to the asset by using access and usage policies and respective contract definitions.

An example Data Asset definition is shown below.

Note: Expressions in double curly braces {{}} MUST be substituted with a corresponding value.

Asset definition example for management API v3 (non-normative)

{
"@context": {
"edc": "https://w3id.org/edc/v0.0.1/ns/",
"cx-common": "https://w3id.org/catenax/ontology/common#",
"cx-taxo": "https://w3id.org/catenax/taxonomy#",
"dct": "https://purl.org/dc/terms/"
},
"@id": "{{ ASSET_ID }}",
"properties": {
"dct:type": {
"@id": "cx-taxo:DcmIdBasedRequestForUpdate"
},
"description": "Endpoint for requesting updates",
"cx-common:version": "2.0"
},
"dataAddress": {
"@type": "DataAddress",
"type": "HttpData",
"baseUrl": "{{ URL-BACKEND-APPLICATION-IDBASEDREQUESTFORUPDATE-ENDPOINT }}",
"method": "POST",
"proxyBody": "true",
"contentType": "application/json"
}
}
4.3.2.5 Error handling

Every API endpoint defined in Section 4.3.2.1 MUST respond to incoming requests with HTTP status codes as described in [RFC9110]. All of the following HTTP status codes, except for code 200 , MUST be interpreted as failures. Therefore, it may be sufficient for a business application to simply check if the status code is 200 or not. If not, the request failed.

HTTP Status CodeHTTP Status MessageDescription
200OKThe request has succeeded. The IdBasedRequestForUpdate has been successfully processed in the backend system.
400Bad requestThe server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
401UnauthorizedThe client request has not been completed because it lacks valid authentication credentials for the requested resource.
403ForbiddenThe IdBasedRequestForUpdate functionality is not available for the client.
405Method not allowedThe method used to request the data was not POST.
422Unprocessable EntityThe request was well-formed but was unable to be followed due to semantic errors, e.g. the JSON payload could not be parsed.
503Service UnavailableThe client request has not been completed because it lacks valid authentication credentials for the requested resource.

Because multiple material demands and capacity groups can be requested at the same time HTTP status code 200 only means that the IdBasedRequestForUpdate was processed successfully and that the data objects will be provided in due time.

The requested data objects SHOULD be provided within five minutes, but definitely they MUST be provided within 24 hours.

If only a single data object is requested it MUST be provided within 10 seconds.

4.3.2.6 Validating payload

Payload validation only applies to the formal layer. If a payload is correctly formed and thusly can be processed HTTP 200 is the correct response code. Even if a material demand (identified by its UUID) has been requested that does not exist within that supplier-customer relationship, HTTP 200 is the correct response code.

4.4 IdBasedComment API

The IdBasedComment object is used to exchange comments, referencing a WeekBasedCapacityGroup or a WeekBasedMaterialDemand between customer and supplier.

Customers and suppliers MUST be able to provide, consume and process IdBasedComment.

4.4.1 Preconditions and Dependencies

The IdBasedComment API MUST be published towards the network using a Data Asset/Contract Offer, which is in line with the Dataspace Protocol as specified by IDSA and MUST conform with the Catena-X standard [CX-0001].

4.4.2 API Specification

4.4.2.1 API endpoints and resources

The API requires a single endpoint that accepts HTTP POST requests as described in [RFC9110]. The specific structure of the endpoint MAY vary, but its address MUST be included in the Data Asset as defined in Section 4.1.2.5.

4.4.2.2 Data exchange

The IdBasedComment data MUST be provided by the customer to the supplier or vice versa via HTTP POST request. The data MUST conform to the format specified in this standard and it MUST NOT exceed 15 MiB in size. It MUST be a valid JSON string and MUST include all mandatory properties. The data model with all its properties MUST conform to the respective aspect model and the definitions in Chapter 3.4. When consuming a payload, that contains unknown properties not described within the data model but is otherwise correct, those properties MUST be ignored.

Attributes that are strings MUST be formatted correctly. For example, expectedSupplierLocation MUST be formatted as a BPNS. The listOfReferenceDates collection MUST represent the calendar week's Mondays in the format YYYY-MM-DD as described in [ISO8601].

Certain properties, such as author, objectId, listOfReferenceDates and objectType, have specific requirements for their values. author MUST contain a valid email address or BPNL if anonymity is preferred. objectId, MUST be the UUID of either the WeekBasedMaterialDemand or WeekBasedCapacityGroup the comments is referencing. objectType MUST be as a Catena-X aspect model unique identifier without a version. See Section 3.1.4 and Section 3.2.4.

Multiple IdBasedComment aspects MAY be provided in one transfer as a JSON list. If only one IdBasedComment aspect is provided, it MUST be as a list with one entry.

A comment MAY reference more than one calendar week utilizing the listOfReferenceDates property. Every entry in listOfReferenceDates MUST be set to a Monday, MUST conform to [ISO8601] and MUST use the format YYYY-MM-DD (for example 2023-02-13).

Applications that consume a IdBasedComment with the property requestDelete set to true MUST delete the comment in compliance with General Data Protection Regulation (GDPR). Deletion is final and MUST NOT be reversed.

Applications SHOULD remember which comments they originated in order to prevent unauthorized deletion.

An IdBasedComment SHOULD always be provided with as much information as is available, so that the consuming application can better decide how to process the comment.

The table below MUST be considered in addition to the data model itself and describes which properties MUST be treated as mandatory so that applications can execute certain actions on an IdBasedComment.

Property \ ActionCreateUpdateDelete
commentIdMUSTMUSTMUST
objectIdMUSTMUSTMUST
objectTypeMUSTMUSTMUST
supplierMUSTMUSTMUST
customerMUSTMUSTMUST
commentTypeSHOULD - if not, consumer can use value defaultSHOULD - if not, consumer can use value defaultMAY
authorSHOULD - if not, consumer can use sender BPNL from connectorSHOULD - if not, consumer can use sender BPNL from connectorMAY
postedAtSHOULD - if not, consumer can set timestamp of receiptSHOULD - MUST NOT differ from time of creationMAY
listOfReferenceDatesMAYMAYMAY
changedAtMAYSHOULD - if not consumer can set timestamp of receiptMAY
commentTextSHOULDSHOULDMAY
requestDeleteMUST NOTMUST NOTMUST
4.4.2.3 UUID generation and handling

UUIDv4 is REQUIRED for exchanging comment data to ensure uniqueness and security. The UUID MUST be generated conforming to [RFC4122] and MUST be treated as unique within the supplier-customer relationship.

See Section 4.1.2.7 for further handling information.

4.4.2.4 Available data types

The API MUST use JSON formatted data transmitted over HTTPS.

4.4.2.5 Data asset structure

The HTTP POST endpoint introduced in Section 4.4.2.1 MUST NOT be called from a supply chain partner directly. Rather, it MUST be called via a connector conformant to [CX-0018]. Therefore, the endpoint MUST be offered as a Data Asset. The latter MUST have a property https://purl.org/dc/terms/type with the ID https://w3id.org/catenax/taxonomy#DcmIdBasedComment. It can be abbreviated if the namespaces of key and value are part of the json-ld @context object (see example below). This property SHOULD be used to identify the asset when searching the assets catalog of a partner. Because the asset reflects the contractual relationship between two DCM partners, only one asset with the aforementioned property for one version MUST be visible to the partner at any time to avoid ambiguity.

The API version described in this standard MUST be published in the property https://w3id.org/catenax/ontology/common#version as version 2.0 in the asset. The requester of an asset MUST be able to handle multiple assets for this endpoint, being differentiated only by the version. The requester SHOULD choose the asset with the highest compatible version number implemented by themselves. If the requester cannot find a compatible version with their own, the requester MUST terminate the data transfer.

Each DCM participant MUST ensure that only their business partners have access to the asset by using access and usage policies and respective contract definitions.

An example Data Asset definition is shown below.

Note: Expressions in double curly braces {{}} MUST be substituted with a corresponding value.

Asset definition example for management API v3 (non-normative)

{
"@context": {
"edc": "https://w3id.org/edc/v0.0.1/ns/",
"cx-common": "https://w3id.org/catenax/ontology/common#",
"cx-taxo": "https://w3id.org/catenax/taxonomy#",
"dct": "https://purl.org/dc/terms/"
},
"@id": "{{ ASSET_ID }}",
"properties": {
"dct:type": {
"@id": "cx-taxo:DcmIdBasedComment"
},
"description": "Endpoint for providing comments",
"cx-common:version": "2.0"
},
"dataAddress": {
"@type": "DataAddress",
"type": "HttpData",
"baseUrl": "{{ URL-BACKEND-APPLICATION-IDBASEDCOMMENT-ENDPOINT }}",
"method": "POST",
"proxyBody": "true",
"contentType": "application/json"
}
}
4.4.2.6 Error handling

Every API endpoint defined in Section 4.4.2.1 MUST respond to incoming requests with HTTP status codes as described in [RFC9110]. All of the following HTTP status codes, except for codes 200 and 201, MUST be interpreted as failures. Therefore, it may be sufficient for a business application to simply check if the status code is 200 or 202 or not. If not, the request failed.

HTTP Status CodeHTTP Status MessageDescription
200OKThe request has succeeded. The IdBasedComment has been successfully processed in the backend system.
201CreatedThe request has succeeded and has led to the creation of a new IdBasedComment in the backend system.
400Bad requestThe server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
401UnauthorizedThe client request has not been completed because it lacks valid authentication credentials for the requested resource.
403ForbiddenThe IdBasedComment in question is not available for the client (e.g. it belongs to a different company).
405Method not allowedThe method used to request the data was not POST.
422Unprocessable EntityThe request was well-formed but was unable to be followed due to semantic errors, e.g. the JSON payload could not be parsed.
501Not ImplementedThe IdBasedComment is not accepted since the feature is not implemented.
503Service UnavailableThe client request has not been completed because it lacks valid authentication credentials for the requested resource.

If one IdBasedComment aspect is provided in one HTTP request, the return codes MUST be used as stated in the table above.

If a list of multiple IdBasedComment aspects is provided in one HTTP request, the status code 400 MUST be used if at least one IdBasedComment in the list cannot be processed. Applications MAY choose to process valid entries from a list which also contains invalid entries. If a list of multiple IdBasedComment aspects is provided in one HTTP request and all of them can be processed successfully, the status code 200 MUST be used.

The return codes 401, 405, 422 and 503 in the table above MAY also be applicable to a list of multiple IdBasedComment aspects.

4.4.2.7 Validating payload

The following tables are supposed to answer questions regarding what business logic MUST be executed when consuming a IdBasedComment which has been formed in a specific way.

The order of rules is indicated by the 'Number' row.

The first rule that matches MUST be executed. All other rules MUST be ignored.

'value' indicates the actual value written in quotation marks and without any specific formatting (e.g. italic).

Valid value indicates that the value is valid according to data model, API and process.

Invalid value indicates that the value is invalid according to data model, API and process.

Any value indicates that the value can by anything, valid or not.

A whitespace or an empty cell indicates that for this specific rule that row is not applicable.

Number1
Properties
Meta PropertiesAny propertyInvalid value
All other propertiesAny value
ActionsBusiness LogicIgnore consumed values
Return Code400 - Bad Request
Number2
PropertiesmessageHeader.header.senderBpnSupplier BPNL does not match the sending connectors registered BPNL
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicIgnore consumed values
Return Code400 - Bad Request
Number3
PropertiesmessageHeader.header.senderBpnConsumer does not match any Partners BPNL that I am in a relation with
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicIgnore consumed values
Return Code400 - Bad Request
Number4
PropertiesobjectIdDoes not match a UUID (WeekBasedMaterialDemand or WeekBasedCapacityGroup) the consumer exchanged with the provider before
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicIgnore consumed values
Return Code403 - Forbidden
Number5
PropertiesobjectTypeMatches the identifier of the WeekBasedMaterialDemand (urn:samm:io.catenax.week_based_material_demand), but the endpoint does not process an IdBasedComment linked to a WeekBasedMaterialDemand (compare Section 5.9.1)
Meta PropertiesAny property
All other propertiesAny value
ActionsBusiness LogicIgnore consumed values
Return Code501 - Not Implemented
Number6
PropertiescommentIdKnown value
requestDeletetrue
Meta PropertiesAny property
All other propertiesAny value
ActionsBusiness LogicDelete comment incl. all of its history from consumers application(s)
Return Code200 - OK
Number7
PropertiescommentIdKnown value
changedAtMore recent than all previously consumed IdBasedComment with the same commentId
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicOverwrite all existing values
Return Code200 - OK
Number8
PropertiescommentIdUnknown value
Meta PropertiesAny property
All other propertiesValid value
ActionsBusiness LogicSave as new comment with consumed values
Return Code201 - Created
Number9
PropertiescommentIdKnown value
changedAtOlder than any previously consumed IdBasedComment with the same commentId
Meta PropertiesAny property
All other propertiesAny value
ActionsBusiness LogicIgnore consumed values
Return Code400 - Bad Request

4.5 DCM Asset Administration Shell API (AAS API)

Data providers MAY adopt the DCM AAS API. If they choose otherwise, none of the obligations of this section apply.

The WeekBasedMaterialDemand contains the demand information which is provided from the customer to the supplier. The supplier maintains a set of Submodels (one for each WeekBasedMaterialDemand) and registers them in their Digital Twin Registry. Both conform to the definitions of [CX-0002].

The WeekBasedCapacityGroup contains the capacity information which is provided from the supplier to the customer. The customer maintains a set of Submodels (one for each WeekBasedCapacityGroup) and registers them in their Digital Twin Registry. Both conform to the definitions of [CX-0002].

Suppliers MUST be able to host and correctly expose the WeekBasedMaterialDemand-Submodel and update the customer-hosted WeekBasedCapacityGroup-Submodel.

Customers MUST be able to host and correctly expose the WeekBasedCapacityGroup-Submodel and update the supplier-hosted WeekBasedMaterialDemand-Submodel.

4.5.1 Preconditions and Dependencies

Not applicable.

4.5.2 API Specification

4.5.2.1 API endpoints and resources

Exchanging Data via the DCM AAS API requires customers and suppliers to both act in the roles of data provider and data consumer. The API is a superset of [CX-0002] with the following specializations:

  • A supplier MUST host and expose a Submodel WeekBasedMaterialDemand via the Submodel-API as defined in [CX-0002]
  • A customer MUST host and expose a Submodel WeekBasedCapacityGroup via the Submodel-API as defined in [CX-0002]
  • Additionally, suppliers and customers MUST offer the PatchSubmodel-Operation with the content-modifier $value on all Submodels as defined in [AAS Pt.2]
    • A supplier MUST client-side be capable to update the WeekBasedCapacityGroup-Submodel hosted by the customer
    • A customer MUST client-side be capable to update the WeekBasedMaterialDemand-Submodel hosted by the supplier
4.5.2.2 Data exchange

Restrictions on the exchanged data can be retrieved from the data models. Additionally, the definitions of Section 4.1.2.2 and Section 4.2.2.2 apply.

4.5.2.3 UUID generation and handling

UUIDv4 is REQUIRED for exchanging demand and capacity data to ensure uniqueness and security. The UUID MUST be generated conforming to [RFC4122] and MUST be treated as unique within the supplier-customer relationship.

See Section 4.1.2.7 for further handling information.

4.5.2.4 Available data types

The API MUST use JSON formatted data transmitted over HTTPS.

4.5.2.5 DTR registration

As mandated by [CX-0002], all Data-Providers MUST provide a Digital Twin Registry and use it to link their Submodels to identified assets. Assets in the DTR are identified via specificAssetIds.

When registering Submodels with semanticId WeekBasedMaterialDemand, the data provider (supplier) MUST reuse the IDs mandated in [CX-0126], section 2.1.4.

When registering Submodels with semanticId WeekBasedCapacityGroup, the data provider (customer) MUST create a single specificAssetId with name creationEntityId and a UUIDv4 as value.

All other properties are standardized in [CX-0002] or [AAS Pt.2] respectively.

Example:

{
"id": "{{id of the AAS}}",
"idShort": "{{short name of your AAS}}",
"specificAssetIds": [
{
"name": "creationEntityId",
"value": "{{someUuidV4}}",
"externalSubjectId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "*"
}
]
}
}
],
"submodelDescriptors": [
{
"id": "{{someSubmodelId}}",
"semanticId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "urn:samm:io.catenax.week_based_capacity_group:2.0.0#WeekBasedCapacityGroup"
}
]
},
"endpoints": [
{
"interface": "SUBMODEL-3.0",
"protocolInformation": {
"href": "{{dataplane baseurl extended with the appropriate path ending on /submodel}}",
"endpointProtocol": "HTTP",
"endpointProtocolVersion": [
"1.1"
],
"subprotocol": "DSP",
"subprotocolBody": "id={{ID of the connector asset the submodel is living behind}};dspEndpoint={{controlPlaneEndpoint}}",
"subprotocolBodyEncoding": "plain",
"securityAttributes": [
{
"type": "NONE",
"key": "NONE",
"value": "NONE"
}
]
}
}
]
}
]
}
4.5.2.6 Registration

Obligations for the Asset Definition of the Digital Twin Registry are adopted from [CX-0002].

Obligations for the Asset Definition of a Submodel are adopted from [CX-0002]. Of the example below, only the "properties"- section is defined as normative there. Please note that the example below only signifies a single registered Submodel. While bundling several Submodels into a single Asset, there are no normative requirements for Asset properties.

4.5.2.6.1 Data asset

There are no normative statements on the section dataAddress for the Asset.

{
"@context": {
"cx-common": "https://w3id.org/catenax/ontology/common#",
"ctx": "https://w3id.org/catenax/taxonomy#",
"aas-semantics": "https://admin-shell.io/aas/3/0/HasSemantics/"
},
"@id": "{{ID for the Asset}}",
"properties": {
"dct:type": {
"@id": "ctx:Submodel"
},
"cx-common:version": "3.0",
"aas-semantics:semanticId": "{{URN of WeekBasedMaterialDemand or WeekBasedCapacityGroup Submodel}}"
},
"dataAddress": {
"@type": "DataAddress",
"type": "HttpData",
"proxyPath": "true",
"proxyBody": "true",
"proxyMethod": "true",
"proxyQueryParams": "true",
"baseUrl": "{{Submodel endpoint ending before /submodel}}"
}
}
4.5.2.6.2 Policy definition

This policy is an example to let a single business partner pass. It could be used as (part of) either an accessPolicy or contractPolicy.

{
"@context": {
"@vocab": "https://w3id.org/edc/v0.0.1/ns/",
"odrl": "http://www.w3.org/ns/odrl/2/"
},
"@type": "PolicyDefinition",
"@id": "{{POLICY-DEFINITION-ID}}",
"policy": {
"odrl:permission": [
{
"odrl:action": "USE",
"odrl:constraint": [
{
"odrl:leftOperand": "{{BPN attribute in Data Consumer VC}}",
"odrl:operator": "=",
"odrl:rightOperand": "{{hard-coded BPN of privileged consumer}}"
}
]
}
],
"odrl:prohibition": [],
"odrl:obligation": []
}
}
4.5.2.6.3 Contract definition

This example for a contract definition connects the defined policy to the defined asset.

{
"@context": {
"@vocab": "https://w3id.org/edc/v0.0.1/ns/"
},
"@type": "ContractDefinition",
"@id": "contract-definition-id",
"accessPolicyId": "{{POLICY-DEFINITION-ID}}",
"contractPolicyId": "{{POLICY-DEFINITION-ID}}",
"assetsSelector": [
{
"operandLeft": "https://w3id.org/edc/v0.0.1/ns/id",
"operator": "=",
"operandRight": "{{ID for the Asset}}"
}
]
}
4.5.2.7 Error handling

Error handling is specified by [CX-0002] and [AAS Pt.2].

5 PROCESSES

This section and all its subsections are normative

5.1 Contextual Description

The DCM process requires the following steps:

  • Customers provide their material demands
  • Suppliers provide their capacities
  • Creation of capacity groups which serve as a platform for matching and comparing material demands with supplier capacities

In addition the following step is optional:

  • Customers and suppliers MAY collaborate by sharing comments

To facilitate these steps and enable effective collaboration, customers and suppliers in a direct business relationship MUST share data and MUST ensure that shared data is up-to-date.

All companies participating in Catena-X DCM MUST adopt the common core business logic, data models and data exchange structure described in this standard.

5.2 Actors and Roles

The DCM core business logic considers three general actors: the customer, the supplier and the business application provider. Note that a single company may have different roles in various business relationships. In fact most companies will have to act as customer and a supplier when considering the whole supply chain network. Regardless of the specific titles within their organizations, all actors have defined responsibilities which are described in Chapter 1.5.

Typical job titles of personnel on the customer side:

  • Demand Planner
  • Supplier Capacity Manager
  • Logistic Planner/Manager
  • Buyer

Typical job titles of personnel on the supplier side:

  • Production/Supply Planner
  • Demand Planner
  • Product Manager
  • Sales Manager/Customer Service

Typical job titles of personnel on the business application provider side:

  • Solution/Product Manager
  • Developer
  • System Architect
  • Operations Manager/Responsible
  • Support Engineer

5.3 Process Representation

Process Chart DCM
Figure 1: Process Chart DCM

For more detailed information, please refer to the Annex Figures.

5.4 Prerequisites for a Collaborative Demand and Capacity Management

Before beginning data exchange, the following conditions MUST be met:

  • Customer and supplier MUST have registered with a Catena-X operational company and conform to the Catena-X guidelines
  • Customer and supplier MUST have entered into a contract with each other
  • Customer and supplier MUST have signed the DCM framework agreement
  • Customer and supplier MUST agree on a common unit of measure (see Units of measure used in DCM) for product-level data exchange (WeekBasedMaterialDemand and WeekBasedCapacityGroup)
  • Customer and supplier MUST have the technical capability to engage in the DCM process with their business applications

Once these conditions are satisfied, the exchange of demand data and capacity data and fundamental collaboration are enabled.

5.5 Providing Demand Data to Supplier

5.5.1 Detailed Description of Demand Data

Customers provide WeekBasedMaterialDemand data and any updates to their supplier.

The supplier MUST be able to consume the WeekBasedMaterialDemand from the customer.

A WeekBasedMaterialDemand indicates the need for a specific product or component over a certain time frame and quantity.

Customers MUST regularly provide their suppliers with WeekBasedMaterialDemand data. It is RECOMMENDED to provide the dataset without any gaps, extending at least nine months into the future.

Customers MAY provide data that extends up to 24 months (or even longer) into the future, as this is considered ideal.

The WeekBasedMaterialDemand data series MAY start from week n+2 (where n is the current week), although the focus is on mid- to long-term planning (typically 4 to 24 months).

The customer has the option to mark a WeekBasedMaterialDemand as inactive (i.e. the demand is obsolete), in this case the demand will not be considered in the demand-capacity matching. However, the WeekBasedMaterialDemand can be reactivated again.

For technical details see Section 4.1.2.2.

Customers MUST conform to the following guidelines for qualitative demand data and enable an efficient demand and capacity matching:

  • Demand quantities MUST be organized into weekly buckets
  • The difference between forecasted demand and actual single-orders SHOULD be minimal
  • Demands quantities SHOULD include product phase-ins and/or phase-outs where necessary

For a detailed process description, see Figures. Below is an example of how a WeekBasedMaterialDemand might be visualized.

Visualized example for Demand Data
Figure 2: Example of Demand Data Visualization

  • WeekBasedMaterialDemand data MUST be categorized as follows:
Demand CategoryDescriptionDemand Category Code (based on data model)
DefaultNo Assignment0001
After-SalesAfter sales demand of spare partsA1S1
SeriesDependent demand e.g. production, assembly, raw materialSR99
Phase-In-periodRamp up of a new product or new material introductionPI01
Single-OrderDemand outside the normal spectrum of supplyOS01
Small seriesShort time frame for demand and pose to higher volatilityOI01
Extraordinary demandDemand on top of standard demandED01
Phase-Out-periodRamp down of a retiring product or material from the marketPO01
  • Demand data MUST be consistent with other data exchanged, such as call-offs and updated whenever changes occur

For implementation details, see Chapter 3.1.

Additional guidelines:

  • Customers SHOULD update demand data at least monthly
  • Customers SHOULD avoid or minimize unnecessary fluctuations in demands to allow a better capacity planning, because a stable demand plan enables better capacity planning

5.5.2 WeekBasedMaterialDemand Structure

A WeekBasedMaterialDemand dataset includes information about the material, the customer-supplier relationship and the requested quantities per week.

For more information, see Chapter 3.1 and Chapter 4.1.

If the DCM Asset Administration Shell is used, see Chapter 4.5.

5.5.3 Example of a Visualization of a WeekBasedMaterialDemand

The following image shows how WeekBasedMaterialDemand information could be visualized, differentiating between header data and time series data:

Visualized example of a material demand structure
Figure 3: Visualized example of a material demand structure

5.6 Providing Capacity Data to Customer

5.6.1 Detailed Description of Capacity Data

Suppliers provide WeekBasedCapacityGroup data and any updates to their customers. This data MUST refer to the WeekBasedMaterialDemand data they previously consumed from their customers.

The customer MUST be able to consume the WeekBasedCapacityGroup from the supplier.

Suppliers MUST conform to the following guidelines for qualitative capacity data:

  • Actual capacity represents the supplier's planned available capacity
  • Maximum capacity is the highest possible capacity that the supplier can offer, which MAY be equal to or greater than the actual capacity but MUST NOT be less
  • Flexible capacity is the difference between maximum capacity and actual capacity

In addition suppliers MAY conform to the following:

  • Agreed capacity represents the agreed capacity of a supplier for a specific customer material(s) within a capacity group. It MUST NOT constitute a legal obligation to deliver. Using the agreed capacity is OPTIONAL and has purely informative character. The agreed capacity MAY be greater than, less than or equal to the actual or maximum capacity of the supplier. It MAY be used for a time frame shorter than the whole time series.

For detailed capacity definitions, see Chapter 1.5.

For a visual process description, see Figures.

5.6.2 WeekBasedCapacityGroup Structure

A WeekBasedCapacityGroup dataset includes information about which material demands it links to, the customer-supplier relationship and how much capacity is available. Thereby providing a shared perspective for both customer and supplier on the matching of demand and capacity information, enables collaborative DCM.

The WeekBasedCapacityGroup can represent combined capacities from machines, facilities, or entire plants. For additional details, especially if using the DCM Asset Administration Shell, see Chapter 4.5.

For a functional WeekBasedCapacityGroup, the supplier MUST link it directly or indirectly to a WeekBasedMaterialDemand.

  • Direct linking involves connecting at least one WeekBasedMaterialDemand to the WeekBasedCapacityGroup
  • Indirect linking (or "nesting") involves connecting the WeekBasedCapacityGroup to another WeekBasedCapacityGroup that is already linked to a WeekBasedMaterialDemand

Visualized example of possible linkage of WeekBasedMaterialDemand to WeekBasedCapacityGroup
Figure 4: Example of Linking WeekBasedMaterialDemand to WeekBasedCapacityGroup

When a supplier provides a WeekBasedCapacityGroup to a customer, the following properties MUST have a value so that WeekBasedCapacityGroup and WeekBasedMaterialDemand can be linked:

  • supplier
  • customer
  • materialNumberCustomer
  • customerLocation
  • demandCategory

If there's no complete match between supplier and customer data, it's RECOMMENDED to initiate collaboration, as described in Chapter 5.9.

The supplier has the option to mark a WeekBasedCapacityGroup as inactive (i.e. the capacity is obsolete), in this case the capacity will not be considered in the demand-capacity matching. However, the WeekBasedCapacityGroup can be reactivated again.

For more details, see the semantic model in Chapter 3.2 and the APIs in Chapter 4.2.

5.6.3 Example of a Visualization of Capacity Data

The figure below demonstrates:

  • The solid line represents actual capacity
  • The dotted line represents maximum capacity
  • The dashed line represents agreed capacity
  • The area between the solid and the dotted lines represents flexible capacity

Visualized example of Capacity Data
Figure 5: Example of Capacity Data Visualization

5.6.4 Load Factors for WeekBasedCapacityGroup

The feature “load factors” allows suppliers to model and represent otherwise impossible capacity occurrences, by introducing a numerical multiplication factor, that changes the interpretation of a capacity group.

Suppliers MAY apply load factors within a WeekBasedCapacityGroup. If they choose to do so, a load factor MUST be applied to every WeekBasedMaterialDemand linked by the WeekBasedCapacityGroup.

If a WeekBasedCapacityGroup links several WeekBasedMaterialDemand, which contain the same material, load factors applied to those WeekBasedMaterialDemand SHOULD be identical.

Load factors SHOULD be used to solve the following two problems:

  • Usage of non-homogeneous material variants within a capacity group, resulting in diverging capacity utilization.
  • Requirement for having a different unit of measure within a WeekBasedCapacityGroup, as opposed to its linked WeekBasedMaterialDemand.

Load factors solve these problems by:

  • Scaling the weekly demand linearly if a material variant causes higher or lower than normal load within the capacity group. Load factors can for example express a reduction to 90% or an increase to 150%.
  • Acting as conversion factors, converting the unit of measure of a WeekBasedMaterialDemand into the unit of measure of the WeekBasedCapacityGroup. This leads to a conversion into either “time” (unit:secondUnitOfTime) or “cycle” (unit:cycle), expressing that, for example, a piece of material takes 12 seconds or a set of material takes half a cycle to manufacture.

A load factor of 1 is neutral and leaves the linked WeekBasedMaterialDemand unchanged. Because load factors are applied via the WeekBasedCapacityGroup a WeekBasedMaterialDemand can have multiple load factors applied to it, that differ from each other. Without load factors applied the unit of measure of a WeekBasedCapacityGroup and its linked WeekBasedMaterialDemand SHOULD be identical. With load factors applied they MAY differ. Lot size restrictions, especially lot size = 1, are not considered when using load factors. Rounding any fractional conversion results SHOULD be avoided to keep demand-capacity comparison consistent.

5.7 Comparison of Demand and Capacity Data within a Capacity Group

The comparison of aggregated demands and capacities helps to identify imbalances, such as when demand exceeds or falls short of capacity. For visuals, see Figures.

5.7.1 Matching Results and Resolution

Both customers and suppliers MUST use the same logic when comparing demand and capacity, based on the WeekBasedCapacityGroup and WeekBasedMaterialDemand models.

Inactive WeekBasedMaterialDemand data and its related demandSeries data as well as inactive WeekBasedCapacityGroup data MUST NOT be considered when comparing the demand with the corresponding capacity values.

The table below describes potential scenarios and their outcomes:

Scenario and WeekMatching situation (MUST)Matching result (MUST)Color (MAY)Hex Code (MAY)
1Demand = actual capacity = maximum capacityZero deviationGreen#809500
2Demand = actual capacity < maximum capacityZero deviationGreen#809500
3Demand < actual capacity = maximum capacitySurplusGreen#809500
4Demand < actual capacity < maximum capacitySurplusGreen#809500
5Demand > actual capacity = maximum capacityBottleneckRed#D91E18
6Actual capacity < demand = maximum capacityBottleneckOrange#FFA600
7Actual capacity < demand < maximum capacityBottleneckOrange#FFA600
8Actual capacity < maximum capacity < demandBottleneckRed#D91E18

An example visualization is provided below.

Visualized example of Demand and Capacity Data Matching and Comparison
Figure 6: Visualized example of Demand and Capacity Data Matching and Comparison

When a bottleneck or surplus is identified, collaboration between customer and supplier is strongly RECOMMENDED. For more details, see Figures.

The exchange of comments is a key collaborative feature, enabling a dialogue between customers and suppliers. For more information, refer to Chapter 5.9.

5.7.2 Simulated Delta-Production (Pre-/Post-production)

5.7.2.1 Business value

Simulated Delta-Production is a feature that helps suppliers to manage their production capacity more effectively. It allows them to address and balance capacity shortages without having to increase their actual or maximum capacity. Suppliers can choose to use this feature, but it is not mandatory. Simulated Delta-Production, which covers both simulated pre-production and post-production activities.

The main advantage of using simulated Delta-Production is that it gives suppliers a way to manage small capacity shortfalls. This can be done manually or automatically, which saves time and effort that would otherwise be spent on frequent capacity adjustments, particularly when demand is unpredictable.

Simulated Delta-Production enables suppliers to add extra detail to their capacity information. This helps illustrate solutions for capacity issues or times when production resources might be offline. Only the end results of simulated Delta-Production are shared with the customer. Suppliers MAY input a simulated Delta-Production value for each week as needed (see Fig. 7 and 8), which shows an increase or decrease in planned demand without actually changing the real figures.

5.7.2.2 Definition of simulated delta-production (Pre-/post-production) in the context of capacity groups

Simulated Delta-Production MAY be used within a Capacity Group to indicate how production can be adjusted to meet demand. It helps cover potential shortfalls by showing where goods could be produced earlier or later than currently demanded. Suppliers can provide these simulated values on a weekly basis alongside their regular capacity data. There's no need to give details about the duration of these adjustments, as this can be inferred from the number of weeks for which the simulated data is provided.

When comparing demand and capacity data, the simulated values are considered without altering the actual data. If a simulated Delta-Production value is provided, it MUST be included in the weekly demand and capacity comparison. A positive value indicates a virtual increase in planned demand, while a negative value indicates a virtual decrease.

Simulated Delta-Production MUST NOT change the material demand. It's strictly a simulation feature.

Suppliers can use comments to provide customers with additional information about the simulated Delta-Production. For more details on this communication feature, see Chapter 5.9.

Below are two examples of how simulated Delta-Production might be represented visually.

Visualized example of results of simulated Delta-Production (with pre-production) Figure 7: Visualized example of results of simulated Delta-Production (with pre-production)

Visualized example of results of simulated Delta-Production (with post-production) Figure 8: Visualized example of results of simulated Delta-Production (with post-production)

5.8 Request for Update (RfU)

The Request for Update (RfU) enables customers and suppliers to ask for updates on WeekBasedMaterialDemand and WeekBasedCapacityGroup. This can be particularly useful to check for and avoid data inconsistency. Customer and Supplier MUST be capable of consuming and correctly responding to a RfU. Being able to provide a RfU is RECOMMENDED.

It is RECOMMENDED that this feature is inaccessible to the end-user.

For further technical information please see Chapter 3.3 and Chapter 4.3.

5.9 Collaboration Functionalities for Demand and Capacity Management

Collaboration is key in DCM. By exchanging comments, customers and suppliers can communicate effectively within their direct business relationships. Comments can be linked to specific data objects, such as material demands or capacity groups and are identified by an unique CommentID.

This feature benefits users by having all data - even the communication with their business partners - embedded into the core process. This establishes a common point of truth within the DCM process and enables efficient decision making.

This standard only covers the exchange of textual comments without attachments. It does not describe the visualization, creation, deletion, or internal visibility of comments within an application.

5.9.1 Detailed Description of Comments

Customers and suppliers MUST be able to process, provide and consume comments linked to specific objects identified by an ObjectID. These objects MUST be a WeekBasedMaterialDemand or a WeekBasedCapacityGroup. Comments MAY also reference specific time periods to enhance clarity. The exchange of comments MUST conform to standardized data formats and API processing as described in Chapter 3.4 and Chapter 4.4.

Customers and suppliers MUST be able to provide and consume comments linked to WeekBasedCapacityGroup.

Customers and suppliers MUST be able to consume comments linked to WeekBasedMaterialDemand. Customers and suppliers SHOULD also be able to process comments linked to WeekBasedMaterialDemand. If comments for WeekBasedMaterialDemand are not processed by the business logic behind the API a HTTP status code MUST be sent, conforming to Chapter 4.4.

Customers and suppliers SHOULD be able to provide comments linked to WeekBasedMaterialDemand.

Customers and supplier MUST be able to provide and consume a comment deletion. Only the business partner that created the comment MUST be able to update or delete it. If a comment is updated, the changedAt timestamp MUST reflect the change. If a comment deletion is being processed successfully the IdBasedComment itself, as well as data derived from it, MUST be deleted.

The table below describes the types of comments that MUST be used:

Comment TypeDescriptionComment Type Code (based on data model)
Information commentComment purely provides additional information to the exchanged datainformation
Warning commentComment provides additional information, which should be considered by the consumer, who might initiate follow up activitieswarning
Action required commentConsumer of the comment should react on provided informationactionRequired
DefaultDefault comment type without special classificationdefault

The creator of a comment is responsible for its content and MUST comply with antitrust and information privacy laws.

5.10 Supply Chain Disruption Notifications

To enable a quick information flow outside a capacity group and the DCM process with regards to upcoming disruptions in the supply chain and potential effect beyond the one-to-one business relationship, a notifications functionality MAY be used. If a business partner decides to use this feature it MUST be used conforming to [CX–0146].

5.11 Demand Volatility Metrics

5.11.1 Business Value

Demand volatility metric is a feature that helps suppliers to identify and measure demand volatility. It allows them to address demand volatility directly to their customers, increasing transparency for a more effective collaborative capacity planning.

This standard supports the following volatility metrics:

  • Demand deviation

5.11.2 Demand Deviation Process

Customers MUST be able to consume WeekBasedCapacityGroup.

Customers SHOULD be able to fully process WeekBasedCapacityGroup that include properties related to demand volatility and calculate the demand deviation metric. If they choose otherwise, none of the obligations of Chapter 5.11 apply.

Suppliers MUST process and provide WeekBasedCapacityGroup.

Suppliers SHOULD process and provide WeekBasedCapacityGroup that include properties related to demand volatility and calculate the demand deviation metric. If they choose to use this feature at least startReferenceDateTime and measurementInterval must be provided. If they choose otherwise, none of the obligations of Chapter 5.11 apply.

After suppliers identify critical WeekBasedCapacityGroup and apply demand deviation metrics to them the following applies:

  • Suppliers and customers MUST calculate the demand deviation metric exactly as described in Section 5.11.3. Other calculation methods MUST NOT be used for the calculation of the metric.
  • Suppliers MUST calculate the demand deviation metric on WeekBasedCapacityGroup level.
  • Suppliers MUST activate each of the WeekBasedCapacityGroups for which the metric has to be calculated, see Chapter 4.2.
  • Suppliers MUST specify the start date of calculations at a future date and time. The first calculation will then be completed at the end of the first measurement interval, see Chapter 4.2.
  • If suppliers change the measurement interval, they MUST specify a new start date of calculations at a future date and time.
  • Suppliers SHOULD NOT calculate the demand deviation based on any data measured before the start date of calculations.
  • Suppliers MUST provide the parameters of the calculation of the demand deviation metric to their customers, as specified in Section 5.11.3 and Chapter 4.2.
  • Suppliers SHOULD compare the results of the calculation of the demand deviation metric to the relevant alert thresholds defined for the demand deviation metric, see Section 5.11.3.

The demand deviation is calculated locally and compared against the consumed or provided values from the WeekBasedCapacityGroup. The table below describes potential scenarios and their outcomes:

Scenario and WeekMatching situation (MUST)Matching result (MUST)Color (MAY)Hex Code (MAY)
1Calculated relative demand deviation > relativePositiveDeviationUnacceptable deviationRed#D91E18
2Calculated relative demand deviation < relativeNegativeDeviationUnacceptable deviationRed#D91E18
3Calculated absolute demand deviation > absolutePositiveDeviationUnacceptable deviationRed#D91E18
4Calculated absolute demand deviation < absoluteNegativeDeviationUnacceptable deviationRed#D91E18

Visualized Example of Demand Deviation and Alert Threshold Comparison
Figure 9: Visualized example of Demand Deviation and Alert Threshold Comparison

It is RECOMMENDED that suppliers organize individual collaborative alignments with customers to discuss the status of significant volatility measurements of demand deviation, ideally at least on a quarterly basis.

The exchange of comments is a key collaborative feature, enabling a dialogue between customers and suppliers. For details, see Chapter 5.9.

5.11.3 Demand Deviation Metric

The demand deviation metric is generally based on the comparison of the latest demand with a previous demand. It is RECOMMENDED to compare the latest demand with previous demands on a monthly basis, in line with typical monthly long-term planning cycles and set the measurement interval to 4 weeks.

The demand deviation metric is calculated at the WeekBasedCapacityGroup level, meaning the demands of 1..n material demand series assigned to a specific WeekBasedCapacityGroup are aggregated on a weekly level and form the basis for the calculation. Thus, the time series of aggregated material demands which is measured at a defined point in time in the current week is equal to the latest demand. The time series of aggregated material demands which is measured at a defined point in time in an earlier week is equal to the previous demand.

Suppliers initiate the calculation of the demand deviation metric by specifying the start date of the calculation StartReferenceDateTime at a future date and time. This marks the point in time of the first measurement of the aggregated material demand. The date and time of subsequent measurements is defined by the measurement interval that also describes the time offset in weeks between the latest demand time series and the previous demand time series.

Calculation

The demand deviation MUST be calculated as follows:

$$Absolute Deviation =\sum Latest Demand - \sum Previous Demand$$

$$Relative Deviation = \frac{\sum Latest Demand - \sum Previous Demand}{\sum Previous Demand}$$

∑ ≙ sum of demands per calendar week of each material demand series assigned within the WeekBasedCapacityGroup.

Visualized Example of Demand Deviation Calculation at Capacity Group Level
Figure 10: Visualized example of demand deviation calculation at capacity group level

It is RECOMMENDED to store the inputs for the calculations of the demand deviation metric for at least 6 months.

Alert Threshold

Alert thresholds are positive or negative values of demand deviation that define unacceptable levels of demand volatility with reference to a specific subhorizon.

Suppliers SHOULD specify values for at least one of the following two alert thresholds:

  • Maximum relative positive deviation: (e.g. max. 15 % quantity increase compared to previous demand)
    • ∆rel. pos. MUST be ≥ 0 (1 ≙ 100%)
  • Maximum relative negative deviation: (e.g. max. 10 % quantity decrease compared to previous demand)
    • ∆rel. neg. MUST be ≥ 0 and ≤ 1 (1 ≙ -100%)

To cover more business scenarios, suppliers MAY specify values for the following two alert thresholds:

  • Maximum absolute positive deviation: (e.g. max. 1000 units more compared to previous demand)
    • ∆abs. pos.
  • Maximum absolute negative deviation: (e.g. max. 500 units less compared to previous demand)
    • ∆abs. neg.

Threshold values cannot be standardized across the Catena-X network, but must be individually agreed and made transparent between two business partners.

Subhorizons

A subhorizon is a period of time that represents a part of the whole DCM time frame and is used for a specific view on the calculation of the demand deviation metric. Suppliers MAY specify subhorizons to allow for different alert thresholds, as the flexibility of supply chains decreases, the closer demand values approach today's date. It is RECOMMENDED to divide the rolling DCM time frame (typically up to 104 weeks) into multiple subhorizons.

A subhorizon is defined as follows:

For 1,2,3,...h subhorizons (1 ≤ h ≤ 104):

  • Subhorizon length l (1 ≤ l ≤ 104, l = number of weeks)
  • Subhorizon alert thresholds: one value for each alert threshold to be used within the subhorizon

The start and end of a subhorizon are determined as follows:

  • Subhorizon start = week 0 for the first subhorizon OR subhorizon end of the previous subhorizon + 1
  • Subhorizon end = subhorizon start + subhorizon length l

It is RECOMMENDED to apply the following rules:

  • The subhorizons are sequenced consecutively (1,2,3,...).
  • The sequence starts always with 1.
  • The first week of the first subhorizon is denominated as week 0.
  • There are no gaps in between the subhorizons, they are always consecutive.
  • The entire DCM time frame (104 weeks) does not need to be fully populated with subhorizons.
  • In case a subhorizon does not contain any deviation properties, no alert threshold is applicable.

Visualized example of Demand Deviation subhorizons
Figure 11: Visualized example of Demand Deviation subhorizons and related alert thresholds

6 FRAMEWORK AGREEMENT AND POLICIES

This section and all its subsections are normative

All participants involved in the Catena-X DCM use case MUST consent to the DCM framework agreement.

A key aspect of managing business partner relationships within Catena-X involves defining and applying policies that facilitate and protect data exchange. Both customers and suppliers MUST implement and uphold these policies in order to guarantee a secure and collaborative data exchange:

CategoryPolicy NameDescription
Access PolicyBPN-restricted Data UsageLimit access to the data offered to a list of specified BPNs (to the connectors with the BPN attribute listed in the policy)
Access PolicyMembership CredentialLimit access to data offered to Catena-X participants
Usage PolicyDCM Framework Agreement CredentialLimit access to data offered to participants who have signed the DCM Framework Agreement

7 REFERENCES

7.1 Normative References

This section and all its subsections are normative

[CX-0001] v1.0.2 EDC Discovery API

[CX-0002] v2.2.0 Digital Twins in Catena-X

[CX-0003] v1.1.0 SAMM Aspect Meta Model

[CX-0010] v2.0.0 Business Partner Number

[CX-0018] v3.0.0 Dataspace Connectivity

[CX-0126] v2.0.0 Industry Core: Part Type

[CX-0146] v1.0.0 Supply Chain Disruption Notifications

7.2 Non-Normative References

This section and all its subsections are non-normative

[RFC2119] March 1997 Key words for use in RFCs to Indicate Requirement Levels (https://www.rfc-editor.org/rfc/rfc2119)

[RFC8174] May 2017 Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words (https://www.rfc-editor.org/rfc/rfc8174)

[ISO3166] 2020-08 ISO 3166 Country Codes

[ISO8601] 2019-02 Date and time format

[RFC4122] July 2005 A Universally Unique IDentifier (UUID) URN Namespace (https://www.rfc-editor.org/rfc/rfc4122)

[RFC9110] June 2022 HTTP Semantics (https://www.rfc-editor.org/rfc/rfc9110)

[CC-BY-4.0] Version 4.0 Creative Commons Attribution 4.0 International license (https://creativecommons.org/licenses/by/4.0/legalcode.en)

[SMT] 1st Version Guideline: How to create a Submodel template specification (https://industrialdigitaltwin.org/wp-content/uploads/2022/12/I40-IDTA-WS-Process-How-to-write-a-SMT-FINAL-.pdf)

[I4.0-AAS] 1.0RC02 Details of the Asset Administration Shell - Part 2 (https://www.plattform-i40.de/IP/Redaktion/EN/Downloads/Publikation/Details_of_the_Asset_Administration_Shell_Part2_V1.html)

7.3 Reference Implementations

This section and all its subsections are non-normative

Not applicable.

ANNEXES

This section and all its subsections are non-normative

Figures

Below are illustrative figures that depict the DCM process from the viewpoints of customers and suppliers.

Complete DCM process
Figure 12: Complete DCM process

Complete DCM process with digital twins
Figure 13: Complete DCM process with digital twins

Tables

Units of measure used in DCM

DimensionUN CodeDescription (English)Description (German)UN SymbolC-X SymbolReference unit used in data models
MassGRMgramGrammggunit:gram
MassKGMkilogramKilogrammkgkgunit:kilogram
MassTNEmetric tonMetrische Tonnettunit:tonneMetricTon
MassSTNton (US) or short ton (UK/US)US Tonneton (US)tonunit:tonUsOrShortTonUkorus
MassONZounceUnzeozozunit:ounceAvoirdupois
MassLBRpoundPfundlblbunit:pound
LengthCMTcentimetreZentimetercmcmunit:centimetre
LengthMTRmetreMetermmunit:metre
LengthKTMkilometreKilometerkmkmunit:kilometre
LengthINHinchZollininunit:inch
LengthFOTfootFußftftunit:foot
LengthYRDyardYardydydunit:yard
AreaCMKsquare centimetreQuadrat-zentimetercm2cm2unit:squareCentimetre
AreaMTKsquare metreQuadratmeterm2m2unit:squareMetre
AreaINKsquare inchQuadratzollin2in2unit:squareInch
AreaFTKsquare footQuadratfußft2ft2unit:squareFoot
AreaYDKsquare yardQuadratyardyd2yd2unit:squareYard
VolumeCMQcubic centimeterKubikzentimetercm3cm3unit:cubicCentimetre
VolumeMTQcubic meterKubikmeterm3m3unit:cubicMetre
VolumeINQcubic inchKubikzollin3in3unit:cubicInch
VolumeFTQcubic footKubikfußft3ft3unit:cubicFoot
VolumeYDQcubic yardKubikyardyd3yd3unit:cubicYard
VolumeMLTmillilitrevMillimetermlmlunit:millilitre
VolumeLTRlitreLiterllunit:litre
VolumeHLThectolitreHektoliterhlhlunit:hectolitre
QuantumH87pieceStück-pcunit:piece
QuantumSETsetSatz-setunit:set
QuantumPRpairPaar-prunit:pair
QuantumZPpageBlatt-pgunit:page
MechanicKWHkilowatt hourKilowattstundekW·hkwhunit:kilowattHour
TimeSECsecond [unit of time]Sekunde [Maßeinheit der Zeit]ssunit:secondUnitOfTime
TimeMINminute [unit of time]Minute [Maßeinheit der Zeit]minminunit:minuteUnitOfTime
TimeHURhourStundehhunit:hourUnitOfTime
CycleB7cycleZyklus[empty]cylunit:cycle

Repositories

[ODRL] ODRL policy repository (https://github.com/catenax-eV/cx-odrl-profile)

ABOUT THIS STANDARD AND MOTIVATION

This section and all its subsections are non-normative

DISCLAIMER AND LIABILITY

This section and all its subsections are non-normative

REVISIONS AND UPDATE

This section and all its subsections are non-normative

This section and all its subsections are non-normative

Copyright © 2024 Catena-X Automotive Network e.V. All rights reserved. For more information, please visit here.