Skip to main content
Release: CX-Io

CX-0142 Shop Floor Information Service v1.0.0

ABSTRACT

A Modular Production is part of the value chain. On the one hand, it has to guarantee flexibility and availability, and on the other, it has to allow for product mixes with small lot sizes. The effects of disturbances and decisions in this network are not limited to a local area, but also have a major impact on other partners in the value chain network. It is therefore necessary to exchange values from the shop floor directly with other members of the network, such as customersCustomer In the context of OSim, the receiver of produced goods from a supplier. or their representatives, like logisticiansLogistician In the context of OSim, the organization that transports produced goods from supplier to customer.. This communication is realized with the Shop-Floor-Information-Service (SIS). This service provides different types of information that a factory can offer to its customersCustomer In the context of OSim, the receiver of produced goods from a supplier.. It is not dedicated to a specific purpose, as customersCustomer In the context of OSim, the receiver of produced goods from a supplier. may decide how to handle the information themselves.

The current version of the standard provides two different kinds of data: Production Forecasting, and Production Tracking data. To give an example of forecasting data, suppose a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. wants to know when production is expected to start. He can use the Shop-Floor-Information-Service in order to get the information either directly, via cyclic messages or via notifications when the calculated production dates change. As an example of production tracking, a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. can request certain production attributes collected during production, such as the torque of a particular process step. This data can then be used for both documentation and tracking.

In order to exchange the data the Shop-Floor-Information-Service defines the necessary data models, such as the GetProductionForecast data and the ProvideProductionForecast data model as well as GetProductionTracking data and ProvideProductionTracking data model. This data exchange mechanism between Modular Production and the data consumer is realized via the Shop-Floor-Information APIAPI An API is a way for two or more computer programs to communicate with each other..

COMPARISON WITH THE PREVIOUS VERSION OF THE STANDARD

  • Release 24.05
    • Merge CX-0068, CX-0069 and CX0075 by combining the different standards that describe the data model, the APIAPI An API is a way for two or more computer programs to communicate with each other. and and the process into this combined standard.
    • Additional functionality added: production tracking aspects.
    • Update of Production Forecast Models due to update of CX-header.
  • Release 23.09
    • Initial Release

1 INTRODUCTION

1.1 AUDIENCE & SCOPE

This standard is relevant for

  • Business Application Providers: their role is to implement the Shop-Floor-Information-Service,
  • Data Providers, mainly Modular Productions: they have to provide the data required for the Shop-Floor-Information-Service,
  • Data Consumers, e.g. tier n-1 factories, end customersCustomer In the context of OSim, the receiver of produced goods from a supplier. or logisticiansLogistician In the context of OSim, the organization that transports produced goods from supplier to customer.: they have to be able to process the data provided by the Shop-Floor-Information-Service.

Stakeholders within Catena-X

  • PURIS, DCM: capacity planning requires a forecast of the products to be delivered,
  • OSim: the Forecast Data from the SIS can serve as input for a OSim-simulation,
  • Traceability: The production tracking aspect allows recalling production data for a specific product, which can be an assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. for traceability.

1.2 CONTEXT AND ARCHITECTURE FIT

Higher-level, external influencing factors from the supply chain, such as delays in the logistics chain for supplierSupplier In the context of OSim, the producer of goods. parts or short-term order changes, may invalidate a production plan that has already been drawn up. Today, such short-term changes in the general conditions of the production process can often only be taken into consideration indirectly and made through manual corrections. The solution approaches in the Modular Production use case aim to increase the flexibility of production in order to better leverage the existing business potential. For this purpose, services, interface, and data model definitions based on industry standards are offered with the goal of increasing the flexibility and reliability of industrial production. The shop floor is connected to the Catena-X network using the Catena-X standardized connectors. Modular Production will offer a Shop-Floor-Information-Service that supplies information about the production status and planning as needed by other partners in the Catena-X network. The goal is to enable individual production (lot size 1) at the price of series production. In particular, this is to be achieved by automating the orchestration of production resources and planning of production processes as much as possible, thus significantly reducing effort and planning times. A growth in efficiency in the sense of the OEE is achieved by reconfiguring the production in the event of faults to continue operation as well as possible. The increased flexibility creates the space for new business models, such as the interposition of highly prioritized, lucrative orders. As a consequence not only the production is required to be flexible and has to react quickly to changes, it also requires communication of future factory output to the customersCustomer In the context of OSim, the receiver of produced goods from a supplier.. As part of a supply chain the products produced by a Modular Production are part of a bigger product. For this reason, certain parameters are offered to customersCustomer In the context of OSim, the receiver of produced goods from a supplier. by the Production Tracking aspect for the overall documentation of the production process.

Both partners - a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. and a Modular Production - MUST be members of the Catena X network in order to communicate with each other. By registering a Modular Production in advance with the Discovery Service, a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. can find it via a so-called Business Partner Number (BPNBPN A BPN is the unique identifier of a partner within Catena-X.). With the help of SSI (Self Sovereign Identity) the correct identity is guaranteed.

1.2.1 Forecasting

The customerCustomer In the context of OSim, the receiver of produced goods from a supplier. uses the GetProductionForecastData call in order to request a production forecast, as specified in section 4.1. The Modular Production generates the required information internally by internal services like a scheduler and answers accordingly by calling ProvideProductionForecastData as specified in section 4.2. For cyclic messages or notifications, the CustomerCustomer In the context of OSim, the receiver of produced goods from a supplier. must unsubscribe from the service when the service is no longer required as described in Section 4.3.

SIS Overview

The GetProductionForecastData as well as the ProvideProductionForecastData is using an AAS serialized as a JSON string which is sent through a connector as defined in [CX-0018] (e.g. Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options.) mechanism, namely:

  • GetProductionForecastData uses "GetProductionForecast" data model and
  • ProvideProductionForecastData uses "ProvideProductionForecast" data model.

The unsubscribe call has no corresponding data model, as it is a simple HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. DELETE.

The JSON string is standardized in section 3.1-3.3. The standard only describes the sending and receiving of Shop-Floor-Information-data through a data connector. The object is created and handled by applications of the companies involved, but these applications are not part of the standard.

1.2.2 Production Tracking

The customerCustomer In the context of OSim, the receiver of produced goods from a supplier. uses the GetProductionTrackingData call in order to request production tracking information, as specified in section 4.4. The Modular Production provides the data stored in internal databases and replies accordingly by calling ProvideProductionTrackingData as specified section 4.5.

SIS ProductionTracking Overview

The GetProductionTrackingData as well as the ProvideProductionTrackingData is using an AAS serialized as a JSON string which is sent through connector defined in [CX-0018] (e.g. Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options.) mechanisms - namely:

  • GetProductionTrackingData uses "GetProductionTracking" data model and
  • ProvideProductionTrackingData uses "ProvideProductionTracking" data model.

The JSON string is standardized in section 3.4-3.5. The standard only describes the sending and receiving of Shop-Floor-Information-data through a data connector. The object is created and handled by applications of the companies involved, but these applications are not part of the standard.

1.3 CONFORMANCE AND PROOF OF CONFORMITY

1.3.1 For Production Forecasting

All participants and their solutions will need to proof, that they conform to Catena-X standards. To validate that the standards are applied correctly, Catena-X employs Conformity Assessment Bodies (CABs). Any actor using the Production Forecasting aspect of the Shop-Floor-Information-Service, MUST implement, and follow the following standards:

  • The Shop-Floor-Information-Service Forecasting core business logic – in section 5
  • The Shop-Floor-Information-Service Forecasting standardized APIAPI An API is a way for two or more computer programs to communicate with each other. – described section 4
  • The Shop-Floor-Information-Service Forecasting standardized Data Model – described in section 3

In order to prove conformity, the participant needs to provide to the conformity assessment body:

  • An example GetProductionForecast-JSON as created by their solution,
  • An example ProvideProductionForecast-JSON as created by their solution,
  • A proof that their solution can process the example payload JSON as listed below.

In case an assessee wants to get certified WHEN requesting assessment THEN the assessee produces a letter affirming that they adhere to this standard and the letter is signed by person who has full power of attorney

Note that in a future revision of this standard it is planned to offer descriptions of test sets including test cases and test data for validating APIAPI An API is a way for two or more computer programs to communicate with each other. implementations.

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

1.3.2 For Production Tracking

All participants and their solutions will need to proof that they conform to Catena-X standards. To validate that the standards are applied correctly, Catena-X employs Conformity Assessment Bodies (CABs). Any actor using the Shop-Floor-Information-Service, MUST implement, and follow the following standards:

  • The Shop-Floor-Information-Service Tracking core business logic – in section 5
  • The Shop-Floor-Information-Service Tracking standardized APIAPI An API is a way for two or more computer programs to communicate with each other. – described section 4
  • The Shop-Floor-Information-Service Tracking standardized Data Model – described in section 3

In order to prove conformity, the participant needs to provide to the conformity assessment body:

  • An example GetProductionTracking-JSON as created by their solution.
  • An example ProvideProductionTracking-JSON as created by their solution.
  • A proof that their solution can process the example payload JSON as listed below.

In case an assessee wants to get certified WHEN requesting assessment THEN the assessee produces a letter affirming that they adhere to this standard and the letter is signed by person who has full power of attorney

Note that in a future revision of this standard it is planned to offer descriptions of test sets including test cases and test data for validating APIAPI An API is a way for two or more computer programs to communicate with each other. implementations.

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

1.4 EXAMPLES

Disturbances of the supply chain always have a major impact on the following links in the chain. It is therefore necessary to inform the customersCustomer In the context of OSim, the receiver of produced goods from a supplier. resp. their logisticianLogistician In the context of OSim, the organization that transports produced goods from supplier to customer. as soon as possible, as the real date of manufacturing might vary from the one negotiated in the contract. The Shop-Floor-Information-Service therefore gives an update about the scheduled production times to allow a better planning for both the tier n-1 customerCustomer In the context of OSim, the receiver of produced goods from a supplier. as well as for the logistic in-between.

1.4.1 Production Forecast

The following sections are providing examples for the APIAPI An API is a way for two or more computer programs to communicate with each other. call as well as for the data models corresponding to the Production Forecast aspects.

1.4.1.1 APIAPI An API is a way for two or more computer programs to communicate with each other.

Production Forecast provides three APIAPI An API is a way for two or more computer programs to communicate with each other. calls. Examples for each call are listed below.

1.4.1.1.1 Example for GetProductionForecastData

An example JSON string for GetProductionForecast is discussed in section 1.4.1.2. GetProductionForecastData is the request to receive Shop-Floor-Information. It contains the BPNSBPNS The unique identifier of a partner site within Catena-X (e.g., a specific factory). of the requesting partner, the customerID, which is the internal customerID in the Modular Production management tool and the orderID, for which forecast information is requested. In addition, the requester can select one of the three communication modes: synchronous (the answer will be given immediately), cyclic (the information will be given cyclic with a negotiated cycle, e.g., every day etc.) and notification (changed production date). Each mode requires some additional parameters.

The execution of the endpoint which is used as the base URL in the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition is done via a connector as defined in [CX-0018] (e.g. Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options.). As the endpoint execution parameters are sent as path parameters, they are added to the endpoint call at the data plane of the Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options., which passes them on to the endpoint at the Modular Production.

The GetProductionForecastData MUST be sent from the requestor of Shop-Floor-Information to the Modular Production using an HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. GET request.

An example HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. request is provided below:

GET /get-production-forecast HTTP/1.1
Host: localhost: 3000
Content-Type: application/json
Content-Length: 918
{
"request": {
"orderId": "C95_SLM140_1_W1",
"customerId": "BPNL7588787849VQ",
"deviationOfSchedule": {
"value": 12,
"timeUnit": "unit:secondUnitOfTime"
},
"productionForecastForAll": false,
"version": "2.0.0",
"notificationInterval": {
"value": 12,
"timeUnit": "unit:secondUnitOfTime"
},
"communicationMode": "synchronous"
},
"header": {
"senderBpn": "BPNL6666787765VQ",
"relatedMessageId": "d9452f24-3bf3-4134-b3eb-68858f1b2362",
"expectedResponseBy": "2023-06-19T21:24:00+07:00",
"context": "urn:samm:io.catenax.shopfloor_information.get_production_forecast:2.0.0",
"messageId": "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9",
"receiverBpn": "BPNL6666787765VQ",
"sentDateTime": "2023-06-19T21:24:00+07:00",
"version": "2.0.0"
}
}
1.4.1.1.2 Example for ProvideProductionForecastData

An example JSON string for ProvideProductionForecast is discussed in section 1.4.1.2. ProvideProductionForecastData returns the current forecast results in synchronous mode. In the case of the cyclic, the notification and the unsubscribe mode, it contains an immediate confirmation with the corresponding information. In case of a cyclic or notification event the current forecasting information will be sent using the ProvideProductionForecastData mechanism. The endpoint, which is used as the base URL in the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition, is executed via a connector as defined in [CX-0018] (e.g. Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options.). Since the endpoint execution parameters are sent as path parameters, they are added to the endpoint call at the data plane of the Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options. , which forwards them to the endpoint at the producer.

The ProvideProductionForecastData MUST be sent from the Modular Production to the consumer of the Shop-Floor-Information using an HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. POST request. An example HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. request is provided below:

POST /provide-production-forecast HTTP/1.1
Host: localhost:3001
Content-Type: application/json
Content-Length: 962
{
"productionForecastResponse" : {
"listOfForecastItems" : [ {
"returnCode" : "ok",
"precisionOfForecast" : {
"value" : 12,
"timeUnit" : "unit:secondUnitOfTime"
},
"reasonsForDelay" : "supplyProblems",
"positionId" : "C95_SLM140_1_W1",
"productionStatus" : "itemReceived",
"productionForecast" : "2023-06-19T21:24:00+07:00",
"forecastDate" : "2023-06-19T21:24:00+07:00"
} ],
"version" : "2.0.0",
"communicationMode" : "synchronous",
"iterationNumber" : 6
},
"header" : {
"senderBpn" : "BPNL7588787849VT",
"relatedMessageId" : "d9452f24-3bf3-4134-b3eb-68858f1b2362",
"expectedResponseBy" : "2023-06-19T21:24:00+07:00",
"context" : "urn:samm:io.catenax.shopfloor_information.provide_production_forecast:2.0.0",
"messageId" : "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9",
"receiverBpn" : "BPNL6666787765VQ",
"sentDateTime" : "2023-06-19T21:24:00+07:00",
"version" : "2.0.0"
}
}
1.4.1.1.3 Example for Unsubscribe

Unsubscribe is used to opt out of receiving information in the case of a cyclic or notification request. The endpoint, which is used as the base URL in the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition, is executed via a connector as defined in [CX-0018] (e.g. Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options.). Since the endpoint execution parameters are sent as path parameters, they are added to the endpoint call at the data plane of the Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options., which forwards them to the endpoint at the producer.
The Unsubscribe request MUST be sent from the consumer of Shop-Floor-Information to the Modular Production using an HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. DELETE request.

http://\{internal-server\}/relatedMessageId/00000000-0000-0000-C000-000000000042

The final id value should be copied from the GetProductionForecast. An example HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. request is seen below:

DELETE /relatedMessageId/00000000-0000-0000-C000-000000000042  HTTP/1.1
Host: {\{internal-server\}}
1.4.1.2 Data Models

In this chapter, examples for the data models of the production Forecast are listed, namely GetProductionForecast and ProvideProductionForecast as well as ShopfloorInformationTypes for common data in form of JSON for reference.

1.4.1.2.1 GetProductionForecast

The following dataset shows an example of a GetProductionForecast which will be sent to the GetProductionForecastData endpoint.
Example request in case of synchronous answers:

{
"header": {
"senderBpn": "BPNL1234567890SE",
"expectedResponseBy": "2023-07-01T21:24:00+07:00",
"context": "urn:samm:io.catenax.shopfloor_information.get_production_forecast:2.0.0",
"messageId": "00000000-0000-0000-C000-000000000042",
"recipientBpn": "BPNL0987654321RE",
"sentDateTime": "2023-06-19T21:24:00+07:00",
"version": "2.0.0"
},
"request": {
"precisionOfForecast": {
"timeUnit": "day",
"value": 1
},
"offset": {
"timeUnit": "day",
"value": 1
},
"orderId": "0007",
"customerId": "BPNL7588787849VQ",
"deviationOfSchedule": {
"timeUnit": "day",
"value": 7
},
"productionForecastForAll": false,
"version": "2.0.0",
"notificationInterval": {
"timeUnit": "day",
"value": 2
},
"communicationMode": "synchronous"
}
}
1.4.1.2.2 ProvideProductionForecast

The following dataset shows an example for a ProvideProductionForecast which will be sent to the ProvideProductionForecastData endpoint.

{
"header": {
"senderBpn": "BPNL1234567890SE",
"relatedMessageId": "00000000-0000-0000-C000-000000000042",
"expectedResponseBy": "2023-07-02T13:00:00.000+02:00",
"context": "urn:samm:io.catenax.shopfloor_information.provide_production_forecast:2.0.0",
"messageId": "00000000-0000-0000-C000-000000000046",
"recipientBpn": "BPNL0987654321RE",
"sentDateTime": "2023-06-19T21:24:00+07:00",
"version": "2.0.0"
},
"productionForecastResponse": {
"listOfForecastItems": [
{
"returnCode": "ok",
"precisionOfForecast": {
"timeUnit": "day",
"value": 3
},
"reasonsForDelay": "supplyProblems",
"positionId": "0007-3",
"productionStatus": "itemReceived",
"productionForecast": "2023-07-05T14:05:00.000+02:00",
"forecastDate": "2023-07-01T14:05:20.255+02:00"
}
],
"version": "2.0.0",
"communicationMode": "synchronous",
"iterationNumber": 42
}
}
1.4.1.2.3 ShopfloorInformationTypes

In order to use common data in the different models, ShopfloorInformationTypes have also been defined, an example of which is shown below::

{
"timeValue": {
"value": 12,
"timeUnit": "unit:secondUnitOfTime"
},
"communicationMode": "synchronous"
}

1.4.2 Production Tracking

In the following sections examples for the APIAPI An API is a way for two or more computer programs to communicate with each other. calls and the data models for production tracking are given.

1.4.2.1 APIAPI An API is a way for two or more computer programs to communicate with each other.

Production Tracking provides two APIAPI An API is a way for two or more computer programs to communicate with each other. calls. Examples for each call are listed below.

1.4.2.1.1 GetProductionTrackingData

An example JSON string for the GetProductionForecastData can be found in section 1.4.2.2. GetProductionTracking is the request to obtain Shop-Floor-Information regarding the manufacturing steps of a product. The Model itself contains the Catena-X Header Aspect Model (https://github.com/eclipse-tractusx/sldt-semantic-models/tree/4d239fc5709f71f39c3cf13581b5bcf960905157/io.catenax.shared.message_header/2.0.0), so that the BPNSBPNS The unique identifier of a partner site within Catena-X (e.g., a specific factory). of the requesting partner is provided. Within the request, the customerID, which is the internal customerID in the Modular Production management tool, and the identifierNumber, which is used to identify the product for which the production tracking data is requested, are required.

The execution of the endpoint which is used as the base URL in the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition is done via a connector as defined in [CX-0018] (e.g. Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options.). As the endpoint execution parameters are sent as path parameters, they are added to the endpoint call at the data plane of the Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options., which passes them on to the Modular Production Tractus-X endpoint.

The GetProductionForecastTracking MUST be sent from the requester of Shop-Floor-Information to the Modular Production using an HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. GET request.

An example of the HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. request is listed below:

GET /get-production-tracking HTTP/1.1
Host: localhost:3000
Content-Type: application/json
Content-Length: 1007
{
"request" : {
"identifierNumber" : "box-12345678",
"stepIdentifierList" : [ {
"processStepId" : "Fuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben_01",
"processParameterList" : [ {
"processParameterSemanticId" : "0173-1#02-ABK233#001",
"processParameterName" : "Drehmoment_Max"
} ]
} ],
"customerId" : "550e8400-e29b-41d4-a716-446655440000",
"identifierType" : "partInstanceId",
"billOfProcessId" : "box-with-lid-12345678-bill-of-process",
"version" : "1.0.0",
"processReferenceType" : "processStep"
},
"header" : {
"senderBpn" : "BPNL7588787849VQ",
"relatedMessageId" : "d9452f24-3bf3-4134-b3eb-68858f1b2362",
"expectedResponseBy" : "2023-06-19T21:24:00+07:00",
"context" : "urn:samm:io.catenax.shopfloor_information.get_production_tracking:1.0.0",
"messageId" : "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9",
"receiverBpn" : "BPNL6666787765VQ",
"sentDateTime" : "2023-06-19T21:24:00+07:00",
"version" : "2.0.0"
}
}
1.4.2.1.2 ProvideProductionTrackingData

An example JSON string for the ProvideProductionTracking can be found in section 1.4.2.2. ProvideProductionTrackingData will return a set of manufacturing steps of a product, whereas each of these steps can feature one or multiple process parameters, that were specified with the GetProductionForecastData request. These process step information will be returned so that the requester will receive a single message, containing the ProvideProductionTracking information.

The execution of the endpoint which is used as the base URL in the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition is done via a connector as defined in [CX-0018] (e.g. Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options.). As the endpoint execution parameters are sent as path parameters, they are added to the endpoint call at the data plane of the Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options. , which passes them on to the producer's endpoint.

The ProvideProductionTrackingData MUST be sent from the Modular Production to the consumer of the Shop-Floor-Information using an HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. POST request. An example HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. request is provided below:

POST /provide-production-tracking HTTP/1.1
Host: localhost:3001
Content-Type: application/json
Content-Length: 1015
{
"header": {
"senderBpn": "BPNL7588787849VQ",
"relatedMessageId": "d9452f24-3bf3-4134-b3eb-68858f1b2362",
"expectedResponseBy": "2023-06-19T21:24:00+07:00",
"context": "urn:samm:io.catenax.shopfloor_information.get_production_tracking:1.0.0",
"messageId": "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9",
"receiverBpn": "BPNL6666787765VQ",
"sentDateTime": "2023-06-19T21:24:00+07:00",
"version": "2.0.0"
},
"response": {
"identifierNumber": "box-12345678",
"catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379",
"identifierType": "partInstanceId",
"version": "1.0.0",
"processStepIdentifierList": [
{
"processStepId": "Fuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben_01",
"processParameterValueList": [
{
"processParameterName": "Drehmoment_Max",
"semanticId": "0173-1#02-ABK233#001",
"processParameterQuality": "ok",
"processParameterValue": "10"
}
]
}
]
}
}
1.4.2.2 Data Models

This chapter provides examples of the production tracking data models, namely GetProductionTracking and ProvideProductionTracking, for common data in form of JSON for reference.

1.4.2.2.1 GetProductionTracking

The GetProductionTracking data model contains three different cases for a request, namely a partInstanceId, a billOfMaterialId and a billOfProcessId based request, which will be sent to the endpoint GetProductionTrackingData. The cases differ in the various optional fields that become mandatory for the individual cases. The following example illustrates the overall model, however, detailed examples for each of the aforementioned cases are provided in sections 1.4.2.2.1.1 through 1.4.2.2.1.3. In all cases, it is assumed that the required information is common knowledge to both the factory and the customerCustomer In the context of OSim, the receiver of produced goods from a supplier. requesting GetProductionTracking.

{
"request": {
"identifierNumber": "box-12345678",
"catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379",
"stepIdentifierList": [
{
"processStepId": "Fuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben_01",
"processParameterList": [
{
"processParameterSemanticId": "0173-1#02-ABK233#001",
"processParameterName": "Drehmoment_Max"
}
],
"capabilityId": "Fuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben",
"billOfMaterialElementId": "Deckel-Bom-123-Schraube",
"partInstanceLevel": "partInstanceId",
"partInstanceId": "Deckel-Serial-123",
"billOfMaterialId": "321-BomIdentifier"
}
],
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"billOfProcessId": "box-with-lid-12345678-bill-of-process",
"identifierType": "partInstanceId",
"version": "1.0.0",
"processReferenceType": "processStep"
},
"header": {
"senderBpn": "BPNL7588787849VQ",
"relatedMessageId": "d9452f24-3bf3-4134-b3eb-68858f1b2362",
"expectedResponseBy": "2023-06-19T21:24:00+07:00",
"context": "urn:samm:io.catenax.shopfloor_information.get_production_tracking:1.0.0",
"messageId": "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9",
"receiverBpn": "BPNL6666787765VQ",
"sentDateTime": "2023-06-19T21:24:00+07:00",
"version": "2.0.0"
}
}
1.4.2.2.1.1 PartInstanceId based Request

The following shows an example of a partInstanceId based request, where the product and the requested process steps are identified based on on a partInstanceId and a performed capability:

{
"request": {
"identifierNumber": "box-12345678",
"stepIdentifierList": [
{
"processParameterList": [
{
"processParameterSemanticId": "0173-1#02-ABK233#001",
"processParameterName": "Drehmoment_Max"
}
],
"capabilityId": "Fuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben",
"partInstanceLevel": "partInstanceId",
"partInstanceId": "Deckel-Serial-123"
}
],
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"identifierType": "partInstanceId",
"version": "1.0.0",
"processReferenceType": "capability"
},
"header": {
"senderBpn": "BPNL7588787849VQ",
"relatedMessageId": "d9452f24-3bf3-4134-b3eb-68858f1b2362",
"expectedResponseBy": "2023-06-19T21:24:00+07:00",
"context": "urn:samm:io.catenax.shopfloor_information.get_production_tracking:1.0.0",
"messageId": "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9",
"receiverBpn": "BPNL6666787765VQ",
"sentDateTime": "2023-06-19T21:24:00+07:00",
"version": "2.0.0"
}
}
1.4.2.2.1.2 billOfMaterialId based Request

The following shows an example of the billOfMaterialId based request, where the product and the requested process steps are identified based on on a billOfMaterialId and a performed capability:

{
"request": {
"identifierNumber": "box-12345678",
"stepIdentifierList": [
{
"processStepId": "Fuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben_01",
"processParameterList": [
{
"processParameterSemanticId": "0173-1#02-ABK233#001",
"processParameterName": "Drehmoment_Max"
}
],
"capabilityId": "Fuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben",
"billOfMaterialElementId": "Deckel-Bom-123-Schraube",
"partInstanceLevel": "bomId",
"billOfMaterialId": "321-BomIdentifier"
}
],
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"identifierType": "bomId",
"version": "1.0.0",
"processReferenceType": "capability"
},
"header": {
"senderBpn": "BPNL7588787849VQ",
"relatedMessageId": "d9452f24-3bf3-4134-b3eb-68858f1b2362",
"expectedResponseBy": "2023-06-19T21:24:00+07:00",
"context": "urn:samm:io.catenax.shopfloor_information.get_production_tracking:1.0.0",
"messageId": "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9",
"receiverBpn": "BPNL6666787765VQ",
"sentDateTime": "2023-06-19T21:24:00+07:00",
"version": "2.0.0"
}
}
1.4.2.2.1.3 billOfProcessId based Request

The following shows an example of the billOfProcessId based request, where the product can be identified based on a batchId, a partInstanceId or a billOfMaterialId. However, instead of a capability, the process step is identified based on a commonly defined bill of process:

{
"request": {
"identifierNumber": "box-12345678",
"stepIdentifierList": [
{
"processStepId": "Fuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben_01",
"processParameterList": [
{
"processParameterSemanticId": "0173-1#02-ABK233#001",
"processParameterName": "Drehmoment_Max"
}
]
}
],
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"identifierType": "partInstanceId",
"billOfProcessId": "box-with-lid-12345678-bill-of-process",
"version": "1.0.0",
"processReferenceType": "processStep"
},
"header": {
"senderBpn": "BPNL7588787849VQ",
"relatedMessageId": "d9452f24-3bf3-4134-b3eb-68858f1b2362",
"expectedResponseBy": "2023-06-19T21:24:00+07:00",
"context": "urn:samm:io.catenax.shopfloor_information.get_production_tracking:1.0.0",
"messageId": "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9",
"receiverBpn": "BPNL6666787765VQ",
"sentDateTime": "2023-06-19T21:24:00+07:00",
"version": "2.0.0"
}
}
1.4.2.2.2 ProvideProductionTracking

The following dataset shows an example for a ProvideProductionTracking which will be sent to the ProvideProductionTrackingData endpoint. Regardless of the case of the request, the response information is always the same.

{
"header": {
"senderBpn": "BPNL7588787849VQ",
"relatedMessageId": "d9452f24-3bf3-4134-b3eb-68858f1b2362",
"expectedResponseBy": "2023-06-19T21:24:00+07:00",
"context": "urn:samm:io.catenax.shopfloor_information.provide_production_tracking:1.0.0",
"messageId": "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9",
"receiverBpn": "BPNL6666787765VQ",
"sentDateTime": "2023-06-19T21:24:00+07:00",
"version": "2.0.0"
},
"response": {
"identifierNumber": "box-12345678",
"catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379",
"identifierType": "partInstanceId",
"version": "1.0.0",
"processStepIdentifierList": [
{
"processStepId": "Fuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben_01",
"processParameterValueList": [
{
"processParameterName": "Drehmoment_Max",
"semanticId": "0173-1#02-ABK233#001",
"processParameterQuality": "ok",
"processParameterValue": "10"
}
]
}
]
}
}

1.5 TERMINOLOGY

This section is non-normative

NameAbbreviationDescription
AASAsset Administration ShellAsset Administration Shell The AAS is a digital representation of an asset; it is a form of a digital twin.Specification to manage and administrate digital representations of assetsAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. (concepts, physical device, process, etc.). Used synonymously with the term "Digital Twin".
AMAspect ModelAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing).a formal, machine-readable semantic description (expressed with RDF/turtle) of data accessible from an Aspect.Note 1 to entry: An Aspect ModelAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing). must adhere to the Semantic Aspect Meta Model (SAMM), i.e., it utilizes elements and relations defined in the Semantic Aspect Meta Model and is compliant to the validity rules defined by the Semantic Aspect Meta Model.Note 2 to entry: Aspect modelAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing). are logical data models which can be used to detail a conceptual model in order to describe the semantics of runtime data related to a concept. Further, elements of an Aspect modelAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing). can/should refer to terms of a standardized Business Glossary (if existing).
BPNBPN A BPN is the unique identifier of a partner within Catena-X.Business Partner NumberBusiness Partner Number
CXCatena-XData ecosystem / data space for the automotive industry.
DCMDemand and Capacity ManagementProduct within Catena-X for shortage identification.
DTDigital TwinDigital representation of an assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. (concept, physical device, process, etc.). Realized using the Asset Administration ShellAsset Administration Shell The AAS is a digital representation of an asset; it is a form of a digital twin.. Used synonymously with the term "Asset Administration ShellAsset Administration Shell The AAS is a digital representation of an asset; it is a form of a digital twin.".
EDCEclipse Dataspace ConnectorOpen-Source Dataspace Connector Framework to participate in International Data Spaces.
JSONJavaScript Object NotationJson is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects.
MPModular ProductionProduct within Catena-X for shop floor activities
OSimOnline Control and SimulationProduct within Catena-X for Online Simulation along the supply chain
PURISPredictive Unit Real-Time Information SystemProduct within Catena-X for shortage identification.
SAMMSemantic aspect meta modelModelling specification to realize a standardized set of models with strict typing which can be used within the AAS. SAMMs are standardized via the Semantic Layer team and can be looked up via the Semantic Hub.
SISShop-Floor-Information-ServiceService provided by MP in order to give information from the shop floor to customersCustomer In the context of OSim, the receiver of produced goods from a supplier. and third parties
SSISelf Sovereign IdentitySelf Sovereign Identity
 Additional terminology used in this standard can be looked up in the glossary on the association homepage.

2 RELEVANT PARTS OF THE STANDARD FOR SPECIFIC USE CASES

This section is normative

2.1 "Modular Production"

2.1.1 LIST OF STANDALONE STANDARDS

  • CX-0001 EDC Discovery APIAPI An API is a way for two or more computer programs to communicate with each other. Version 1.0.2
  • CX-0003 SAMM Aspect Meta Model Version 1.1.0 or 1.0.2
  • CX-0018 Dataspace Connectivity Version 3.0.0

2.1.2 DATA REQUIRED

No additional data requirements.

2.1.3 ADDITIONAL REQUIREMENTS

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 outlined. 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.

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, the Data Provider maintains control over its anti-trust obligations when sharing certain data. In particular, the Data Provider may apply Access Policies to restrict access to a particular data offer for only one participant identified by a specific business partner number.

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 ODLR policy rule values to be used for the above-mentioned types are provided via the ODRL policy repository.

2.1.4 DIGITAL TWINS AND SPECIFIC ASSETAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. IDsIDS The International Data Space enables 'smart services' and business processes across companies and industries while ensuring data sovereignty and self-determined control of data use.

This version of the document does not define any requirements for standardized integration and governance of digital twins.

3 ASPECT MODELSAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing).

This section is normative

3.1 ASPECT MODELAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing). "GetProductionForecast"

3.1.1 INTRODUCTION

The GetProductionForecast MUST be sent by the customerCustomer In the context of OSim, the receiver of produced goods from a supplier. or a third party to the Modular Production via an HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. request. The data format described here MUST be followed. The GetProductionForecast data model MUST be implemented by all participants who wish to use the Shop-Floor-Information-Service as a Modular Production, a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. or a participating third party. For GetProductionForecast the requester MUST either select the "synchronous", "cyclic" or "notification" communication mode. Companies which use the Shop-Floor-Information-Service as a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. or third party MUST be able to send GetProductionForecastData requests. Companies which use the Shop-Floor-Information-Service as a Modular Production MUST be able to receive GetProductionForecastData requests.

3.1.2 SPECIFICATIONS ARTIFACTS

The modeling of the semantic model specified in this document was done in accordance to the "semantic driven workflow" to create a submodel template specification SMT.

This aspect modelAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing). is written in SAMM 2.1.0 as a modeling language conformant to CX-0003 as input for the semantic driven workflow.

Like all Catena-X data models, this model is available in a machine-readable format on GitHub conformant to CX-0003.

3.1.3 LICENSE

This Catena-X data model is made available under the terms of the Creative Commons Attribution 4.0 International ( CC-BY-4.0) license, which is available at Creative Commons.

3.1.4 IDENTIFIER OF SEMANTIC MODEL

The semantic model has the unique identifier

    urn:samm:io.catenax.shopfloor_information.get_production_forecast:2.0.0

This identifier MUST be used by the data provider to define the semantics of the data being transferred.

3.1.5 FORMATS OF SEMANTIC MODEL

3.1.5.1 RDF TURTLE

The RDF turtle file, an instance of the Semantic Aspect Meta Model, is the master for generating additional file formats and serializations.

https://github.com/eclipse-tractusx/sldt-semantic-models/blob/4d239fc5709f71f39c3cf13581b5bcf960905157/io.catenax.shopfloor_information.get_production_forecast/2.0.0/GetProductionForecast.ttl

The open source command line tool of the Eclipse Semantic Modeling Framework is used for generation of other file formats like for example a JSON Schema, aasx for Asset Administration ShellAsset Administration Shell The AAS is a digital representation of an asset; it is a form of a digital twin. Submodel Template or a HTML documentation.

3.1.5.2 JSON SCHEMA

A JSON Schema can be generated from the RDF Turtle file. The JSON Schema defines the Value-Only payload of the AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. Administration Shell for the APIAPI An API is a way for two or more computer programs to communicate with each other. operation "GetSubmodel".

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.5.4 SEMANTIC MODEL

This Catena-X data model is made available under the terms of the Creative Commons Attribution 4.0 International ( CC-BY-4.0) license, which is available at Creative Commons.

The GetProductionForecast model is described in detail in the table below:

FieldLevelREQUIREDPurposeData TypeExample Value
senderBpnCX-headermandatoryidentification of the senderstringBPNL1234567890SE
recipientBpnCX-headermandatoryidentification of the recipientstringBPNL0987654321RE
expectedResponseByCX-headermandatoryDeadline for the first responsedate2023-07-01T21:24:00+07:00
messageIdCX-headermandatoryunique ID for message will be used as requestID for the following communicationUUID00000000-0000-0000-C000-000000000046
contextCX-headermandatoryInformation about the context the message should be considered in, e.g. "MP-Request"stringMUST BE urn:samm:io.catenax.shopfloor_information.get_production_forecast:2.0.0
sentDateTimeCX-headermandatorytime of requeststring2023-06-19T21:24:00+07:00
versionCX-headermandatoryof Meta model used for compatibilitystring2.0.0
relatedMessageIdCX-headeroptionalnot used for request; will be used in the following parts to refer to the requestUUID00000000-0000-0000-C000-000000000042
versionSIS-Payloadmandatoryversion of the datamodelstring2.0.0
customerIdSIS-PayloadmandatoryThe internal ID of the customerCustomer In the context of OSim, the receiver of produced goods from a supplier. of the Modular Production in order to identify the customerCustomer In the context of OSim, the receiver of produced goods from a supplier. in the databasestringVLhpfQGTMDYpsBZxvfBoeygjb
orderIdSIS-PayloadmandatoryThe orderID communicated between the Modular Production and the customerCustomer In the context of OSim, the receiver of produced goods from a supplier.string0007
communicationModeSIS-PayloadmandatoryEnum describing which communication mode is used for data exchange resp. the mode of the response: synchronous, cyclic or notificationenumsynchronous
productionForecast4AllSIS-Payloadmandatoryif true, the forecast for the entire order will be sent (more precise: latest production date of all suborders ) instead of splitting it in the subordersbooltrue
offsetSIS-Payloadmandatorytimespan to activating of cyclic and notification; for immediate response it should be "0"TimeValue [EnumTimeUnits, uint ]{"timeUnit": "day", "value": 1 }
notificationIntervalSIS-Payloadoptional if [cyclic] = mandatoryin case of cyclic notification it is giving the period of the notification cycles if (communicationMode == [cyclic]) => mandatoryTimeValue [EnumTimeUnits, uint ]{"timeUnit": "day", "value": 2 }
deviationOfScheduleSIS-Payloadoptional if [notification] = mandatoryin case of notification a tolerance will be defined for triggering a new notification to avoid too many notifications with smaa deviations in the forecasting date if (communicationMode == [notification]) => mandatoryTimeValue [EnumTimeUnits, uint ]{"timeUnit": "day", "value": 7 }
precisionOfForecastSIS-PayloadoptionalRequested precision of the forecasting date default, the production defines the date in case of a requested precisionOfForecast, the Modular Production delivers with the required precision if the precision is not possible, an error code is send and the forecast will be the best possible precisionTimeValue [EnumTimeUnits, uint ]{"timeUnit": "day", "value": 1 }
  • The context field in the header MUST be urn:samm:io.catenax.shopfloor_information.get_production_forecast:2.0.0.
  • The APIAPI An API is a way for two or more computer programs to communicate with each other. GetProductionForecastData 4.1 call MUST use the GetProductionForecast data model.
  • Communication Mode MUST be one of the following items: synchronous, cyclic and notification.
  • EnumTimeUnits MUST be one of the following items: seconds, minutes, hour, day, week, month, year.

3.2 ASPECT MODELAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing). "ProvideProductionForecast"

3.2.1 INTRODUCTION

Companies which use the Shop-Floor-Information-Service as a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. or third party MUST be able to receive ProvideProductionForecast information. Companies which use the Shop-Floor-Information-Service as a factory MUST be able to send ProvideProductionForecast information.

3.2.2 SPECIFICATIONS ARTIFACTS

The modeling of the semantic model specified in this document was done in accordance to the "semantic driven workflow" to create a submodel template specification SMT.

This aspect modelAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing). is written in SAMM 2.1.0 as a modeling language conformant to CX-0003 as input for the semantic driven workflow.

Like all Catena-X data models, this model is available in a machine-readable format on GitHub conformant to CX-0003.

3.2.3 LICENSE

This Catena-X data model is made available under the terms of the Creative Commons Attribution 4.0 International ( CC-BY-4.0) license, which is available at Creative Commons.

3.2.4 IDENTIFIER OF SEMANTIC MODEL

The semantic model has the unique identifier:

    urn:samm:io.catenax.shopfloor_information.provide_production_forecast:2.0.0

3.2.5 FORMATS OF SEMANTIC MODEL

3.2.5.1 RDF TURTLE

The rdf turtle file, an instance of the Semantic Aspect Meta Model, is the master for generating additional file formats and serializations.

https://github.com/eclipse-tractusx/sldt-semantic-models/blob/4d239fc5709f71f39c3cf13581b5bcf960905157/io.catenax.shopfloor_information.provide_production_forecast/2.0.0/ProvideProductionForecast.ttl

The open source command line tool of the Eclipse Semantic Modeling Framework is used for generation of other file formats like for example a JSON Schema, aasx for Asset Administration ShellAsset Administration Shell The AAS is a digital representation of an asset; it is a form of a digital twin. Submodel Template or a HTML documentation.

3.2.5.2 JSON SCHEMA

A JSON Schema can be generated from the RDF Turtle file. The JSON Schema defines the Value-Only payload of the AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. Administration Shell for the APIAPI An API is a way for two or more computer programs to communicate with each other. operation "GetSubmodel".

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.5.4 SEMANTIC MODEL

The ProvideProductionForecastData model is described in detail in the following table:

FieldLevelREQUIREDPurposeDatatypeExample Value
versionCX-headermandatoryof Meta model used for compatibilitystring2.0.0
messageIdCX-headermandatoryunique ID for message will be used as requestID for the following communicationUUID00000000-0000-0000-C000-000000000046
contextCX-headermandatoryInformation about the context the message should be considered in, e.g. "MP-Request"stringMUST BEurn:samm:io.catenax.shopfloor_information.provide_production_forecast:2.0.0
sentDateTimeCX-headermandatorytime of requeststring2023-06-19T21:24:00+07:00
senderBpnCX-headermandatoryidentification of the senderstringBPNL1234567890SE
recipientBpnCX-headermandatoryidentification of the recipientstringBPNL0987654321RE
expectedResponseByCX-headermandatoryDeadline for the first responsedate2023-07-02T13:00:00.000+02:00
relatedMessageIdCX-headeroptionalnot used for request; will be used in the following parts to refer to the requestUUID00000000-0000-0000-C000-000000000042
versionSIS-Payloadmandatoryversion of the datamodelstring2.0.0
iterationNoSIS-Payloadoptionalin case of cyclic or notification mode this field is used to count the iterations to keep them in the correct orderint42
communicationModeSIS-PayloadmandatoryEnum describing if synchronous, cyclic or notification is used for data exchangeenumsynchronous
ListOfForecastItemsSIS-Payloadmandatorylist containing the items corresponding to the order of this requestList of Forecast Items
ForecastItem*SIS-Payload
positionIdSIS-Payloadmandatoryfield referring to the ID of this item in the order list, e.g. item number in case of productionForecastForAll =true : provide order ID instead of position IDUUID / string0007-3
productionForecastSIS-Payloadmandatorydate of finalizing the production, this does not cover additional internal activities e.g. logisticdatetime2023-07-05T14:05:00.000+02:00
precisionOfForecastSIS-Payloadmandatoryprecision of the forecast in form of an interval e.g. +-3days, the precision either matches to the required precision of the request or the maximal possible precision.TimeValue [EnumTimeUnits, uint ]{ "timeUnit": "day", "value": 3 },
productionStatusSIS-Payloadmandatory/optstatus of the productionenum <ProductionStatus>itemReceived
forecastDateSIS-Payloadmandatorydate of determination the forecasting statusdatetime2023-07-01T14:05:20.255+02:00
reasonForDelaySIS-Payloadmandatoryin case of a delay a possible explanationenumsupplyProblems
  • The context field in the header MUST be urn:samm:io.catenax.shopfloor_information.provide_production_forecast:2.0.0.
  • The APIAPI An API is a way for two or more computer programs to communicate with each other. ProvideProductionForecastData call in section 4.2 MUST use the ProvideProductionForecast data model.
  • Communication Mode MUST be one of the following items: synchronous, cyclic and notification.
  • EnumTimeUnits MUST be one of the following items: unit:secondUnitOfTime, unit:minuteUnitOfTime, unit:hour, unit:day, unit:week, unit:month, unit:year.
  • ProductionStatus MUST be one of the following items: itemReceived, itemPlanned, itemInProduction, itemCompleted, statusUndefined, ordered following the figure below.

Production States

  • reasonsForDelay MUST be one of the following items: supplyProblems, internalProblems, otherCircumstances, noInformationAvailable.

3.3 ASPECT MODELAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing). "ShopfloorInformationTypes "

The ShopfloorInformationTypes MUST be used for all parties using ProvideProductionForecastData or GetProductionForecastData information.

3.3.1 INTRODUCTION

The ShopfloorInformationTypes are a collection of commonly used data models of ProvideProductionForecastData or GetProductionForecastData.

3.3.2 SPECIFICATIONS ARTIFACTS

The modeling of the semantic model specified in this document was done in accordance to the "semantic driven workflow" to create a submodel template specification SMT.

This aspect modelAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing). is written in SAMM 2.1.0 as a modeling language conformant to CX-0003 as input for the semantic driven workflow.

Like all Catena-X data models, this model is available in a machine-readable format on GitHub conformant to CX-0003.

3.3.3 LICENSE

This Catena-X data model is made available under the terms of the Creative Commons Attribution 4.0 International ( CC-BY-4.0) license, which is available at Creative Commons.

3.3.4 IDENTIFIER OF SEMANTIC MODEL

The semantic model has the unique identifier:

    urn:samm:io.catenax.shared.shopfloor_information_types:2.0.0

This identifier MUST be used by the data provider to define the semantics of the data being transferred.

3.3.5 FORMATS OF SEMANTIC MODEL

3.3.5.1 RDF TURTLE

The rdf turtle file, an instance of the Semantic Aspect Meta Model, is the master for generating additional file formats and serializations.

https://github.com/eclipse-tractusx/sldt-semantic-models/blob/4d239fc5709f71f39c3cf13581b5bcf960905157/io.catenax.shared.shopfloor_information_types/2.0.0/ShopfloorInformationTypes.ttl

The open source command line tool of the Eclipse Semantic Modeling Framework is used for generation of other file formats like for example a JSON Schema, aasx for Asset Administration ShellAsset Administration Shell The AAS is a digital representation of an asset; it is a form of a digital twin. Submodel Template or a HTML documentation.

3.3.5.2 JSON SCHEMA

A JSON Schema can be generated from the RDF Turtle file. The JSON Schema defines the Value-Only payload of the AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. Administration Shell for the APIAPI An API is a way for two or more computer programs to communicate with each other. operation "GetSubmodel".

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.5.4 SEMANTIC MODEL

This Catena-X data model is made available under the terms of the Creative Commons Attribution 4.0 International ( CC-BY-4.0) license, which is available at Creative Commons.

The ShopfloorInformationTypes model is described in detail in the following table:

FieldPurposeDatatypeExample Value
communicationModeEnum describing if synchronous, cyclic or notification is used for data exchangeenumsynchronous
timeValuedataFormat for storing timeValuesTimeValue [EnumTimeUnits, uint ]{ "timeUnit": "day", "value": 3 }

Communication Mode MUST be one of the following items: synchronous, cyclic and notification.

EnumTimeUnits MUST be one of the following items: unit:secondUnitOfTime, unit:minuteUnitOfTime, unit:hour, unit:day, unit:week, unit:month, unit:year.

3.4 ASPECT MODELAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing). "GetProductionTracking"

The GetProductionTracking data model MUST be used for all parties using GetProductionTrackingData.

3.4.1 INTRODUCTION

3.4.2 SPECIFICATIONS ARTIFACTS

The modeling of the semantic model specified in this document was done in accordance to the "semantic driven workflow" to create a submodel template specification SMT.

This aspect modelAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing). is written in SAMM 2.1.0 as a modeling language conformant to CX-0003 as input for the semantic driven workflow.

Like all Catena-X data models, this model is available in a machine-readable format on GitHub conformant to CX-0003.

3.4.3 LICENSE

This Catena-X data model is made available under the terms of the Creative Commons Attribution 4.0 International ( CC-BY-4.0) license, which is available at Creative Commons.

3.4.4 IDENTIFIER OF SEMANTIC MODEL

The semantic model has the unique identifier

urn:samm:io.catenax.shopfloor_information.get_production_tracking:1.0.0

This identifier MUST be used by the data provider to define the semantics of the data being transferred.

3.4.5 FORMATS OF SEMANTIC MODEL

3.4.5.1 RDF TURTLE

The rdf turtle file, an instance of the Semantic Aspect Meta Model, is the master for generating additional file formats and serializations.

https://github.com/eclipse-tractusx/sldt-semantic-models/blob/4d239fc5709f71f39c3cf13581b5bcf960905157/io.catenax.shopfloor_information.get_production_tracking/1.0.0/GetProductionTracking.ttl

The open source command line tool of the Eclipse Semantic Modeling Framework is used for generation of other file formats like for example a JSON Schema, aasx for Asset Administration ShellAsset Administration Shell The AAS is a digital representation of an asset; it is a form of a digital twin. Submodel Template or a HTML documentation.

3.4.5.2 JSON SCHEMA

A JSON Schema can be generated from the RDF Turtle file. The JSON Schema defines the Value-Only payload of the AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. Administration Shell for the APIAPI An API is a way for two or more computer programs to communicate with each other. operation "GetSubmodel".

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.5.4 SEMANTIC MODEL

This Catena-X data model is made available under the terms of the Creative Commons Attribution 4.0 International ( CC-BY-4.0) license, which is available at Creative Commons.

The GetProductionTracking model is described in detail in the following table:

FieldLevelRequiredPurposeDatatypeExample Value
header
senderBpnCX-Headermandatoryof Meta Model used for compatibilityBpnlCharacteristicBPNL1234567890SE
versionCX-headermandatoryof Meta model used for compatibilityVersionCharacteristic2.0.0
messageIdCX-headermandatoryunique ID for message will be used as requestID for the following communicationUUID00000000-0000-0000-C000-000000000046
contextCX-headermandatoryInformation about the context the message should be considered in, e.g. "MP-Request"stringMUST BE urn:samm:io.catenax.shopfloor_information.get_production_tracking:1.0.0
sentDateTimeCX-headermandatorytime of requeststring2023-06-19T21:24:00+07:00
recipientBpnCX-headermandatoryidentification of the recipientBpnlCharacteristicBPNL0987654321RE
expectedResponseByCX-headermandatoryDeadline for the first responsedate2023-07-02T13:00:00.000+02:00
relatedMessageIdCX-headeroptionalnot used for request; will be used in the following parts to refer to the requestUUID00000000-0000-0000-C000-000000000042
request
versionSIS-Payloadmandatoryof Meta model used for compatibilityVersionCharacteristic1.0.0
customerIdSIS-Payloadmandatoryinternal customerCustomer In the context of OSim, the receiver of produced goods from a supplier. numberstring550e8400-e29b-41d4-a716-446655440000
catenaXIdSIS-Payloadoptionalidentifier of a product that is registered in a catena-x digital twin registryuuidurn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379
identifierTypeSIS-Payloadmandatoryspecifies the kind of the identifierNumberenum : [partInstanceId, batchId, billOfMaterialId]partInstanceId
identifierNumberSIS-Payloadmandatoryidentifier of a productstringbox-12345678
processReferenceTypeSIS-Payloadmandatorydetermines whether a process step is identified with a capability or a processStepIdentifier of a billOfProcessstringprocessStep
billOfProcessIdSIS-Payloadoptionalidentifier of a bill of process known by both partnersstringbox-with-lid-12345678-bill-of-process
stepIdentifierListSIS-Payloadmandatorylists all process steps from which parameters are requestedlist
capabilityIdSIS-Payloadoptionalidentifier of a capabilitystringFuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben
partInstanceLevelSIS-Payloadoptionaldetermines whether a sub-product is identified based on a bill of materialBill of Material A Bill of Material (BoM) represents the structure of a product: a list of raw materials, sub-assemblies and sub-components needed to manufacture the end product. In Catena-X Traceability more than one BoM is considered, since the BoM can change during the lifecycle (different BoMs for different lifecycles). or a partInstanceIdenum : [partInstanceId, billOfMaterialId]partInstanceId
billOfMaterialIdSIS-Payloadoptionalidentifier of a bill of materialBill of Material A Bill of Material (BoM) represents the structure of a product: a list of raw materials, sub-assemblies and sub-components needed to manufacture the end product. In Catena-X Traceability more than one BoM is considered, since the BoM can change during the lifecycle (different BoMs for different lifecycles).string321-BomIdentifier
billOfMaterialElementIdSIS-Payloadoptionalidentifies a concrete element of the bill of materialBill of Material A Bill of Material (BoM) represents the structure of a product: a list of raw materials, sub-assemblies and sub-components needed to manufacture the end product. In Catena-X Traceability more than one BoM is considered, since the BoM can change during the lifecycle (different BoMs for different lifecycles). referenced with the billOfMaterialIdstringDeckel-Bom-123-Schraube
partInstanceIdSIS-PayloadoptionalpartInstanceId to identify a sub-product of a productstringDeckel-Serial-123
processStepIdSIS-Payloadoptionalidentifier of a process step referenced in the billOfProcessIdstringFuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben_01
processParameterListSIS-PayloadmandatoryLists all process Parameter requested from a process steplist
processParameterNameSIS-Payloadmandatoryname of a requested process parameterstringDrehmoment_Max
processParameterSemanticIdSIS-Payloadmandatorylink to a semantic that characterizes the type of the process parameterstring0173-1#02-ABK233#001
  • The context field in the header MUST be urn:samm:io.catenax.shopfloor_information.get_production_tracking:1.0.0.
  • IdentifierType MUST be one of the following items: partInstanceId, batchId, billOfMaterialId
  • processReferenceType Mode MUST be one of the following items: processStep, capability
  • partInstanceLevel MUST be one of the following items: partInstanceId, billOfMaterialId
  • partInstanceId COULD be a serial number or a different unique identifier for a specific part of an assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.

3.5 ASPECT MODELAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing). "ProvideProductionTracking"

The ProvideProductionTracking data model MUST be used for all parties using ProvideProductionForecastData.

3.5.1 INTRODUCTION

The ProvideProductionTracking are a collection of commonly used data models of ProvideProductionTrackingData.

3.5.2 SPECIFICATIONS ARTIFACTS

The modeling of the semantic model specified in this document was done in accordance to the "semantic driven workflow" to create a submodel template specification SMT.

This aspect modelAspect Model A formal, machine-readable semantic description (expressed with RDF/Turtle) of data accessible from an aspect. Note 1: An Aspect Model must adhere to the Semantic Aspect Meta Model (SAMM) and be compliant with its validity rules. Note 2: Aspect Models are logical data models that can be used to detail a conceptual model to describe the semantics of runtime data related to a concept; elements of an Aspect Model can/should refer to terms of a standardized Business Glossary (if existing). is written in SAMM 2.1.0 as a modeling language conformant to CX-0003 as input for the semantic driven workflow.

Like all Catena-X data models, this model is available in a machine-readable format on GitHub conformant to CX-0003.

3.5.3 LICENSE

This Catena-X data model is made available under the terms of the Creative Commons Attribution 4.0 International ( CC-BY-4.0) license, which is available at Creative Commons.

3.5.4 IDENTIFIER OF SEMANTIC MODEL

The semantic model has the unique identifier

urn:samm:io.catenax.shopfloor_information.provide_production_tracking:1.0.0

This identifier MUST be used by the data provider to define the semantics of the data being transferred.

3.5.5 FORMATS OF SEMANTIC MODEL

3.5.5.1 RDF TURTLE

The rdf turtle file, an instance of the Semantic Aspect Meta Model, is the master for generating additional file formats and serializations.

https://github.com/eclipse-tractusx/sldt-semantic-models/blob/4d239fc5709f71f39c3cf13581b5bcf960905157/io.catenax.shopfloor_information.provide_production_tracking/1.0.0/ProvideProductionTracking.ttl

The open source command line tool of the Eclipse Semantic Modeling Framework is used for generation of other file formats like for example a JSON Schema, aasx for Asset Administration ShellAsset Administration Shell The AAS is a digital representation of an asset; it is a form of a digital twin. Submodel Template or a HTML documentation.

3.5.5.2 JSON SCHEMA

A JSON Schema can be generated from the RDF Turtle file. The JSON Schema defines the Value-Only payload of the AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. Administration Shell for the APIAPI An API is a way for two or more computer programs to communicate with each other. operation "GetSubmodel".

3.5.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.5.5.4 SEMANTIC MODEL

This Catena-X data model is made available under the terms of the Creative Commons Attribution 4.0 International ( CC-BY-4.0) license, which is available at Creative Commons.

The ProvideProductionTracking data model is described in detail in the following table:

FieldLevelRequiredPurposeDatatypeExample Value
header
senderBpnCX-Headermandatoryof Meta Model used for compatibilityBpnlCharacteristicBPNL1234567890SE
versionCX-headermandatoryof Meta model used for compatibilityVersionCharacteristic2.0.0
messageIdCX-headermandatoryunique ID for message will be used as requestID for the following communicationUUID00000000-0000-0000-C000-000000000046
contextCX-headermandatoryInformation about the context the message should be considered in, e.g. "MP-Request"stringMUST BEurn:samm:io.catenax.shopfloor_information.provide_production_tracking:1.0.0
sentDateTimeCX-headermandatorytime of requeststring2023-06-19T21:24:00+07:00
recipientBpnCX-headermandatoryidentification of the recipientBpnlCharacteristicBPNL0987654321RE
expectedResponseByCX-headermandatoryDeadline for the first responsedate2023-07-02T13:00:00.000+02:00
relatedMessageIdCX-headeroptionalnot used for request; will be used in the following parts to refer to the requestUUID00000000-0000-0000-C000-000000000042
response
versionSIS-Payloadmandatoryof Meta model used for compatibilityVersionCharacteristic1.0.0
catenaXIdSIS-Payloadoptionalidentifier of a product that is registered in a catena-x digital twin registryuuidurn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379
identifierTypeSIS-Payloadmandatoryspecifies the kind of the identifierNumberenumpartInstanceId
identifierNumberSIS-Payloadmandatoryidentifier of a productstringbox-12345678
processStepIdentifierListSIS-PayloadmandatoryLists all process steps for which parameters are providedlist
processStepIdSIS-Payloadoptionalidentifier of a process step referenced in the billOfProcessIdstringFuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben_01
processParameterValueListSIS-PayloadmandatoryLists all process Parameter provided for a process steplist
processParameterNameSIS-Payloadmandatoryname of a requested process parameterstringDrehmoment_Max
processParameterSemanticIdSIS-Payloadmandatorylink to a semantic that characterizes the type of the process parameterstring0173-1#02-ABK233#001
processParameterValueSIS-Payloadmandatorythe concrete value of a process parameterstring10
processParameterQualitySIS-Payloadmandatoryindicates the quality of the parameters value measurementenumnoValue
  • The context field in the header MUST be urn:samm:io.catenax.shopfloor_information.provide_production_tracking:1.0.0.
  • IdentifierType MUST be one of the following items: partInstanceId, batchId, billOfMaterialId
  • processReferenceType Mode MUST be one of the following items: processStep, capability
  • partInstanceLevel MUST be one of the following items: partInstanceId, billOfMaterialId

4 APPLICATION PROGRAMMING INTERFACES

This section is normative

4.1 "GetProductionForecastData" APIAPI An API is a way for two or more computer programs to communicate with each other.

This introduction holds for 4.1-4.3:

The GetProductionForecastData contains the request for forecast data sent by a Modular Production partner to a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. or a third party at the next lower level. All participants using the Shop-Floor-Information-Service in the role of a a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. or third party MUST be able to send GetProductionForecastData. All participants using the Shop-Floor-Information-Service in the role of a Modular Production MUST be able to receive and process GetProductionForecastData.

The following diagram shows the complete communication between the partners in an abstract way. It takes place in different phases:

  1. Negotiation between the connector as in [CX-0018] (e.g. Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options.),
  2. Data connector of the partners using the needed policies,
  3. GetProductionForecastData(...) - the call of the customerCustomer In the context of OSim, the receiver of produced goods from a supplier.,
  4. get the desired information via ProvideProductionForecastData(...) - transferred by Modular Production (synchronous, cyclic or notification-like),
  5. Unsubscribe from the "GetProductionForecastData" service to stop receiving further information.

Production Tracking

The two boxes in the middle represent the data connector like Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options. of the partners. The communication between the respective connectors is transparent to the user (shaded). The transmission of the data for the request, as well as the response to the ProductionForecast is transmitted via the payload of the message. The immediate response (httpHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. response) does not contain any technical information. The left side represents the customerCustomer In the context of OSim, the receiver of produced goods from a supplier. with his different requests. On the right is the Modular Production with a scheduler that generates the requested answers.

4.1.1 PRECONDITIONS AND DEPENDENCIES

The GetProductionForecastData APIAPI An API is a way for two or more computer programs to communicate with each other. MUST be published towards the network using a Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer./Contract Offer in terms of the Dataspace Protocol as defined by IDSAIDSA The IDSA is an organization working to create the future of the global digital economy with International Data Spaces (IDS): a secure, sovereign system of data sharing where participants can realize the full value of their data., following the CX-0018 Eclipse Data Space Connector (EDC).

4.1.2 APIAPI An API is a way for two or more computer programs to communicate with each other. SPECIFICATION

4.1.2.1 APIAPI An API is a way for two or more computer programs to communicate with each other. Endpoints & resources

When sending a request to the GetProductionForecastDataEndpoint, the body MUST be composed out of two information objects: a header and content. Together they form the HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. body that MUST be formatted as JSON.

The elements of the message are described in the following table:

FieldLevelREQUIREDPurposeData TypeExample Value
senderBpnCX-headermandatoryidentification of the senderstringBPNL1234567890SE
recipientBpnCX-headermandatoryidentification of the recipientstringBPNL0987654321RE
expectedResponseByCX-headermandatoryDeadline for the first responsedate2023-07-01T21:24:00+07:00
messageIdCX-headermandatoryunique ID for message will be used as requestID for the following communicationUUID00000000-0000-0000-C000-000000000046
contextCX-headermandatoryInformation about the context the message should be considered in, e.g. "MP-Request"stringMUST BE urn:samm:io.catenax.shopfloor_information.get_production_forecast:2.0.0
sentDateTimeCX-headermandatorytime of requeststring2023-06-19T21:24:00+07:00
versionCX-headermandatoryof Meta model used for compatibilitystring2.0.0
relatedMessageIdCX-headeroptionalnot used for request; will be used in the following parts to refer to the requestUUID00000000-0000-0000-C000-000000000042
versionSIS-Payloadmandatoryversion of the datamodelstring2.0.0
customerIdSIS-PayloadmandatoryThe internal ID of the customerCustomer In the context of OSim, the receiver of produced goods from a supplier. of the Modular Production in order to identify the customerCustomer In the context of OSim, the receiver of produced goods from a supplier. in the databasestringVLhpfQGTMDYpsBZxvfBoeygjb
orderIdSIS-PayloadmandatoryThe orderID communicated between the Modular Production and the customerCustomer In the context of OSim, the receiver of produced goods from a supplier.string0007
communicationModeSIS-PayloadmandatoryEnum describing which communication mode is used for data exchange resp. the mode of the response: synchronous, cyclic or notificationenumsynchronous
productionForecast4AllSIS-Payloadmandatoryif true, the forecast for the entire order will be sent (more precise: latest production date of all suborders ) instead of splitting it in the subordersbooltrue
offsetSIS-Payloadmandatorytimespan to activating of cyclic and notification; for immediate response it should be "0"TimeValue [EnumTimeUnits, uint ]{ "timeUnit": "day", "value": 1 }
notificationIntervalSIS-Payloadoptional if [cyclic] = mandatoryin case of cyclic notification it is giving the period of the notification cycles if (communicationMode == [cyclic]) => mandatoryTimeValue [EnumTimeUnits, uint ]{"timeUnit": "day", "value": 2 }
deviationOfScheduleSIS-Payloadoptional if [notification] = mandatoryin case of notification a tolerance will be defined for triggering a new notification to avoid too many notifications with smaa deviations in the forecasting date if (communicationMode == [notification]) => mandatoryTimeValue [EnumTimeUnits, uint ]{ "timeUnit": "day", "value": 7 }
precisionOfForecastSIS-PayloadoptionalRequested precision of the forecasting date default, the production defines the date in case of a requested precisionOfForecast, the Modular Production delivers with the required precision if the precision is not possible, an error code is send and the forecast will be the best possible precisionTimeValue [EnumTimeUnits, uint ]{"timeUnit": "day", "value": 1 }

The following JSON object gives an example of a valid data model:

{
"header": {
"senderBpn": "BPNL1234567890SE",
"expectedResponseBy": "2023-07-01T21:24:00+07:00",
"context": "urn:samm:io.catenax.shopfloor_information.get_production_forecast:2.0.0",
"messageId": "00000000-0000-0000-C000-000000000046",
"recipientBpn": "BPNL0987654321RE",
"sentDateTime": "2023-06-19T21:24:00+07:00",
"version": "2.0.0"
},
"request": {
"precisionOfForecast": {
"timeUnit": "day",
"value": 1
},
"offset": {
"timeUnit": "day",
"value": 1
},
"orderId": "0007",
"customerId": "BPNL7588787849VQ",
"deviationOfSchedule": {
"timeUnit": "day",
"value": 7
},
"productionForecastForAll": false,
"version": "2.0.0",
"notificationInterval": {
"timeUnit": "day",
"value": 2
},
"communicationMode": "synchronous"
}
}

Available Data Types:

  • The APIAPI An API is a way for two or more computer programs to communicate with each other. GetProductionForecastData call MUST use the GetProductionForecast data model defined in section 3.1.
  • The APIAPI An API is a way for two or more computer programs to communicate with each other. MUST use JSON as the payload transported via HTTPSHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes.. More information on the data objects supported by the endpoints is provided in the corresponding sections of Section 3.1.
  • Communication Mode MUST be one of the following items: synchronous, cyclic and notification.
  • EnumTimeUnits MUST be one of the following items: unit:secondUnitOfTime, unit:minuteUnitOfTime, unit:hour, unit:day, unit:week, unit:month, unit:year.

4.1.2.2 DATA ASSETAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. STRUCTURE

The HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. GET endpoint introduced in chapter 4.1.1 MUST NOT be called from a partner directly. Rather, it MUST be called via the communication defined in [CX-0018]. Therefore, the endpoint MUST be offered as an Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..

  • The latter MUST have a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop:id”. This property MUST be used to identify the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. when searching the assetsAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. catalog of a supplierSupplier In the context of OSim, the producer of goods. as well as initiating a transfer process. Because the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. reflects the contractual relationship between Shop-Floor-Information-Service partners, only one assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. with the aforementioned property MUST be visible to the customerCustomer In the context of OSim, the receiver of produced goods from a supplier. at any time to avoid ambiguity. The value for this property can be chosen freely but must be unique.
  • The assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition SHOULD contain a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop.description” for a human readable description of the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. when providing the contract offer catalog for the consumer and make it easier and readable for a human what kind of data this assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. contains.
  • The assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition MUST contain a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop:version” containing a version number to identify if there have been updates on an assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition.
  • The latter MUST have a property “dataAddress.properties.baseUrl” with a value containing the URL of the endpoint where the function “GetProductionForecastData” is implemented.
  • Additionally, the dataAddress property MUST contain the parameter proxyPath with a value set to TRUE to enable the possibility to use connectors compliant to [CX-0018] as a reverse proxy by adding parameters to the URL.

The APIAPI An API is a way for two or more computer programs to communicate with each other. version described in this standard document MUST be published in the property <https://w3id.org/catenax/ontology/common#version> as version 2.0 in the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.. The requester of an assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. MUST be able to handle multiple assetsAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. for this endpoint, being differentiated only by the version. The requester SHOULD choose the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. 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 supplierSupplier In the context of OSim, the producer of goods. MUST ensure that only their customersCustomer In the context of OSim, the receiver of produced goods from a supplier. have access to the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. by using access and usage policies and respective contract definitions.

An example Tractus-X Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition with corresponding access / usage policies and a contract definition is shown below. Note: Expressions in double curly braces {{}} must be substituted with a corresponding value.

AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition:

{
"@context": {
"": "[https://w3id.org//v0.0.1/ns/](https://w3id.org/edc/v0.0.1/ns/)",
"cx-common": "[https://w3id.org/catenax/ontology/common#](https://w3id.org/catenax/ontology/common)",
"cx-taxo": "[https://w3id.org/catenax/taxonomy#](https://w3id.org/catenax/taxonomy)",
"dct": "<https://purl.org/dc/terms/>"
},
"@id": "sis-request-production-forecast-01",
"properties": {
"description": "Request Production Forecast Asset",
"privateProperties": {},
"cx-common:version": "2.0"
},
"dataAddress": {
"@type": "DataAddress",
"type": "HttpData",
"baseUrl": "{SIS_REQUEST_PRODUCTION_FORECAST_ENDPOINT}}",
"method": "GET",
"proxyPath": "true",
"contentType": "application/json"
}
}

Access and Usage Policy definition:

{
"@context": {
"@vocab": "[https://w3id.org//v0.0.1/ns/](https://w3id.org/edc/v0.0.1/ns/)"
},
"@id": "sis-request-production-forecast-01-policy",
"policy": {
"@context": [
"<https://www.w3.org/ns/odrl.jsonld>",
{
"cx-policy": "<https://w3id.org/catenax/policy/v1.0.0/>"
}
],
"@type": "Policy",
"profile": "cx-policy:profile2405",
"permission": [
{
"action": "use",
"constraint": {
"or": [
{
"leftOperand": "BusinessPartnerNumber",
"operator": "eq",
"rightOperand": "{{POLICY_BPN}}"
}
]
}
}
]
}
}

Contract definition:

{
"@context": {},
"@id": "sis-request-production-forecast-01-contract",
"@type": "ContractDefinition",
"accessPolicyId": "sis-request-production-forecast-01-policy",
"contractPolicyId": "sis-request-production-forecast-01-policy",
"assetsSelector" : {
"@type" : "CriterionDto",
"operandLeft": "https://w3id.org//v0.0.1/ns/id",
"operator": "=",
"operandRight": "sis-request-production-forecast-01"
}
}

4.1.2.3 ERROR HANDLING

Every APIAPI An API is a way for two or more computer programs to communicate with each other. endpoint defined in Chapter 4.1.2.11 MUST respond to incoming requests with HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. status codes as described in [RFC9110]. The status codes for each endpoint are defined in the following sections.

Status CodeDescriptionUsage
200OKThe request has succeeded.
201OK, Precision not possibleThe request has succeeded. Precision is not possible, the default precision will be used
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).
401UnauthorizedAlthough the HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.
403ForbiddenThe client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource.
420Unknown BPNSBPNS The unique identifier of a partner site within Catena-X (e.g., a specific factory).The BPNSBPNS The unique identifier of a partner site within Catena-X (e.g., a specific factory). which is given as parameter is not registered in the data provider database as a direct partner.
421Invalid CustomerIdThe customerID unknown or invalid
422Invalid OrderIdThe orderID not found or invalid
423Invalid Notification IntervalThe data field Notification interval is not set with a proper value or missing
424Invalid DeviationThe data field Deviation is not set with a proper value or missing
425ForbiddenThe client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource.
426incomplete Request

4.2 "ProvideProductionForecastData" APIAPI An API is a way for two or more computer programs to communicate with each other.

The ProvideProductionForecastData APIAPI An API is a way for two or more computer programs to communicate with each other. sends the forecast data from a Modular Production to the customerCustomer In the context of OSim, the receiver of produced goods from a supplier. or a third party on the next lower level. All participants using the Shop-Floor-Information-Service in the role of a a Modular Production MUST be able to send the ProvideProductionForecastData. All participants using the Shop-Floor-Information-Service in the role of a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. or additional third party MUST be able to receive and process the ProvideProductionForecastData.

4.2.1 PRECONDITIONS AND DEPENDENCIES

The ProvideProductionForecastData APIAPI An API is a way for two or more computer programs to communicate with each other. MUST be published towards the network using a Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer./Contract Offer in terms of the Dataspace Protocol as defined by IDSAIDSA The IDSA is an organization working to create the future of the global digital economy with International Data Spaces (IDS): a secure, sovereign system of data sharing where participants can realize the full value of their data., following the CX-0018 Eclipse Data Space Connector (EDC).

4.2.2 APIAPI An API is a way for two or more computer programs to communicate with each other. SPECIFICATION

4.2.2.1 APIAPI An API is a way for two or more computer programs to communicate with each other. Endpoints & resources

When sending a request to the ProvideProductionForecastData Endpoint, the body MUST be composed out of two information objects: a header and content. Together they form the HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. body that MUST be formatted as JSON Request Header.

Note: This is not the HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. Header but rather part of the HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. Body.

FieldLevelREQUIREDPurposeDatatypeExample Value
versionCX-headermandatoryof Meta model used for compatibilitystring2.0.0
messageIdCX-headermandatoryunique ID for message will be used as requestID for the following communicationUUID00000000-0000-0000-C000-000000000046
contextCX-headermandatoryInformation about the context the message should be considered in, e.g. "MP-Request"stringMUST BEurn:samm:io.catenax.shopfloor_information.provide_production_forecast:2.0.0
sentDateTimeCX-headermandatorytime of requeststring2023-06-19T21:24:00+07:00
senderBpnCX-headermandatoryidentification of the senderstringBPNL1234567890SE
recipientBpnCX-headermandatoryidentification of the recipientstringBPNL0987654321RE
expectedResponseByCX-headermandatoryDeadline for the first responsedate2023-07-02T13:00:00.000+02:00
relatedMessageIdCX-headeroptionalnot used for request; will be used in the following parts to refer to the requestUUID00000000-0000-0000-C000-000000000042
versionSIS-Payloadmandatoryversion of the datamodelstring2.0.0
iterationNoSIS-Payloadoptionalin case of cyclic or notification mode this field is used to count the iterations to keep them in the correct orderint42
communicationModeSIS-PayloadmandatoryEnum describing if synchronous, cyclic or notification is used for data exchangeenumsynchronous
ListOfForecastItemsSIS-Payloadmandatorylist containing the items corresponding to the order of this requestList of Forecast Items
ForecastItem*SIS-Payload
positionIdSIS-Payloadmandatoryfield referring to the ID of this item in the order list, e.g. item number in case of productionForecastForAll =true : provide order ID instead of position IDUUID / string0007-3
productionForecastSIS-Payloadmandatorydate of finalizing the production, this does not cover additional internal activities e.g. logisticdatetime2023-07-05T14:05:00.000+02:00
precisionOfForecastSIS-Payloadmandatoryprecision of the forecast in form of an interval e.g. +-3days, the precision either matches to the required precision of the request or the maximal possible precision.TimeValue [EnumTimeUnits, uint ]{ "timeUnit": "day", "value": 3 },
productionStatusSIS-Payloadmandatory/optstatus of the productionenum <ProductionStatus>itemReceived
forecastDateSIS-Payloadmandatorydate of determination the forecasting statusdatetime2023-07-01T14:05:20.255+02:00
reasonForDelaySIS-Payloadmandatoryin case of a delay a possible explanationenumsupplyProblems

The following JSON object provides an example of a valid header and payload:

{
"header": {
"senderBpn": "BPNL7588787849VQ",
"relatedMessageId": "d9452f24-3bf3-4134-b3eb-68858f1b2362",
"expectedResponseBy": "2023-06-19T21:24:00+07:00",
"context": "urn:samm:io.catenax.shopfloor_information.provide_production_forecast:2.0.0",
"messageId": "3b405-e214-47a1-b0c2-1d831cdd9ba9",
"recipientBpn": "BPNL6666787765VQ",
"sentDateTime": "2023-06-19T21:24:00+07:00",
"version": "2.0.0"
},
"productionForecastResponse": {
"listOfForecastItems": [
{
"returnCode": "ok",
"precisionOfForecast": {
"value": 12,
"timeUnit": "unit:secondUnitOfTime"
},
"reasonsForDelay": "supplyProblems",
"positionId": "00000000-0000-0000-C000-000000000046",
"productionStatus": "itemReceived",
"productionForecast": "2023-06-19T21:24:00+07:00",
"forecastDate": "2023-06-19T21:24:00+07:00"
}
],
"version": "2.0.0",
"communicationMode": "synchronous",
"iterationNumber": 6
}
}

Available Data Types:

  • The APIAPI An API is a way for two or more computer programs to communicate with each other. MUST use JSON as the payload transported via HTTPSHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes.. More information on the data objects supported by the endpoints is provided in the corresponding sections of Section 3.2.
  • The APIAPI An API is a way for two or more computer programs to communicate with each other. ProvideProductionForecastData call MUST use the ProvideProductionForecast data model defined in section 3.2.
  • Communication Mode MUST be one of the following items: synchronous, cyclic and notification.
  • EnumTimeUnits MUST be one of the following items: unit:secondUnitOfTime, unit:minuteUnitOfTime, unit:hour, unit:day, unit:week, unit:month, unit:year.
  • ProductionStatus MUST be one of the following items: itemReceived, itemPlanned, itemInProduction,itemCompleted, statusUndefined.
  • reasonsForDelay MUST be one of the following items: supplyProblems, internalProblems, otherCircumstances, noInformationAvailable.

4.2.2.2 DATA ASSETAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. STRUCTURE

The HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. POST endpoint introduced in chapter 4.2.1 MUST NOT be called from a partner directly. Rather, it MUST be called via a data connection compliant to [CX-0018] communication. Therefore, the endpoint MUST be offered as an Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..

  • The latter MUST have a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop:id”. This property MUST be used to identify the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. when searching the assetsAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. catalog of a supplierSupplier In the context of OSim, the producer of goods. as well as initiating a transfer process. Because the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. reflects the contractual relationship between Shop-Floor-Information-Service partners, only one assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. with the aforementioned property MUST be visible to the customerCustomer In the context of OSim, the receiver of produced goods from a supplier. at any time to avoid ambiguity. The value for this property can be chosen freely but must be unique.
  • The assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition SHOULD contain a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop.description” for a human readable description of the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. when providing the contract offer catalog for the consumer and make it easier and readable for a human what kind of data this assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. contains.
  • The assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition MUST contain a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop:version” containing a version number to identify if there have been updates on an assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition.
  • The latter MUST have a property “dataAddress.properties.baseUrl” with a value containing the URL of the endpoint where the function “ProvideProductionForecast” is implemented.
  • Additionally, the dataAddress property MUST contain the parameter proxyPath with a value set to TRUE to enable the possibility to use a connector compliant with [CX-0018] as a reverse proxy by adding parameters to the URL.

An example Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition with a corresponding access / usage policy and contract definition are shown below. Note: Expressions in double curly braces {{}} must be substituted with a corresponding value.

AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition:

{
"@context": {
"edc": "<https://w3id.org/edc/v0.0.1/ns/>",
"cx-common": "[https://w3id.org/catenax/ontology/common#](https://w3id.org/catenax/ontology/common)",
"cx-taxo": "[https://w3id.org/catenax/taxonomy#](https://w3id.org/catenax/taxonomy)",
"dct": "<https://purl.org/dc/terms/>"
},
"@id": "sis-provide-production-forecast-01",
"properties": {
"description": "Provide Production Forecast Asset",
"privateProperties": {},
"cx-common:version": "2.0"
},
"dataAddress": {
"@type": "DataAddress",
"type": "HttpData",
"baseUrl": "{SIS_PROVIDE_PRODUCTION_FORECAST_ENDPOINT}}",
"method": "POST",
"proxyPath": "true",
"contentType": "application/json"
}
}

Access and Usage Policy definition:


{
"@context": {
"@vocab": "<https://w3id.org/edc/v0.0.1/ns/>"
},
"@id": "sis-provide-production-forecast-01-policy",
"policy": {
"@context": [
"<https://www.w3.org/ns/odrl.jsonld>",
{
"cx-policy": "<https://w3id.org/catenax/policy/v1.0.0/>"
}
],
"@type": "Policy",
"profile": "cx-policy:profile2405",
"permission": [
{
"action": "use",
"constraint": {
"or": [
{
"leftOperand": "BusinessPartnerNumber",
"operator": "eq",
"rightOperand": "{{POLICY_BPN}}"
}
]
}
}
]
}
}

Contract definition:

{
"@context": {},
"@id": "sis-provide-production-forecast-01-contract",
"@type": "ContractDefinition",
"accessPolicyId": "sis-provide-production-forecast-01-policy",
"contractPolicyId": "sis-provide-production-forecast-01-policy",
"assetsSelector" : {
"@type" : "CriterionDto",
"operandLeft": "https://w3id.org/edc/v0.0.1/ns/id",
"operator": "=",
"operandRight": "sis-provide-production-forecast-01"
}
}

4.3 "Unsubscribe" APIAPI An API is a way for two or more computer programs to communicate with each other.

The Unsubscribe APIAPI An API is a way for two or more computer programs to communicate with each other. contains the request to stop transferring forecasting data which is sent from a Modular Production to a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. or a third party on the next lower level. All participants using the Shop-Floor-Information-Service in the role of a a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. or third party MUST be able to send the unsubscribe request. All participants using the Shop-Floor-Information-Service in the role of a Modular Production MUST be able to receive and process the unsubscribe request.

4.3.1 PRECONDITIONS AND DEPENDENCIES

4.3.2 APIAPI An API is a way for two or more computer programs to communicate with each other. SPECIFICATION

The GetProductionForecastData APIAPI An API is a way for two or more computer programs to communicate with each other. MUST be published towards the network using a Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer./Contract Offer in terms of the Dataspace Protocol as defined by IDSAIDSA The IDSA is an organization working to create the future of the global digital economy with International Data Spaces (IDS): a secure, sovereign system of data sharing where participants can realize the full value of their data., following the CX-0018 Eclipse Data Space Connector (EDC).

4.3.2.1 APIAPI An API is a way for two or more computer programs to communicate with each other. Endpoints & resources

The Unsubscribe APIAPI An API is a way for two or more computer programs to communicate with each other. MUST be published towards the network using a Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer./Contract Offer in terms of the Dataspace Protocol as defined by IDSAIDSA The IDSA is an organization working to create the future of the global digital economy with International Data Spaces (IDS): a secure, sovereign system of data sharing where participants can realize the full value of their data., following the CX-0018 Eclipse Data Space Connector (EDC).

4.3.2.2 DATA ASSETAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. STRUCTURE

The HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. DELETE endpoint introduced in chapter 4.3 MUST NOT be called from a partner directly. Rather, it MUST be called via a connector conformant to [CX-0018] like Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options. communication. Therefore, the endpoint MUST be offered as an Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..

  • The latter MUST have a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop:id”. This property MUST be used to identify the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. when searching the assetsAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. catalog of a supplierSupplier In the context of OSim, the producer of goods. as well as initiating a transfer process. Because the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. reflects the contractual relationship between Shop-Floor-Information-Service partners, only one assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. with the aforementioned property MUST be visible to the customerCustomer In the context of OSim, the receiver of produced goods from a supplier. at any time to avoid ambiguity. The value for this property can be chosen freely but must be unique.
  • The assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition SHOULD contain a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop.description” for a human readable description of the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. when providing the contract offer catalog for the consumer and make it easier and readable for a human what kind of data this assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. contains.
  • The assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition MUST contain a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop:version” containing a version number to identify if there have been updates on an assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition.
  • The latter MUST have a property “dataAddress.properties.baseUrl” with a value containing the URL of the endpoint where the function “unsubscribe” is implemented.
  • Additionally, the dataAddress property MUST contain the parameter proxyPath with a value set to TRUE to enable the possibility to use the data connectorcompliant to CS-0018 as a reverse proxy by adding parameters to the URL.

An example Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition with a corresponding access / usage policy and contract definition are shown below. Note: Expressions in double curly braces {{}} must be substituted with a corresponding value.

AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition:

{
"@context": {
"edc": "<https://w3id.org/edc/v0.0.1/ns/>",
"cx-common": "[https://w3id.org/catenax/ontology/common#](https://w3id.org/catenax/ontology/common)",
"cx-taxo": "[https://w3id.org/catenax/taxonomy#](https://w3id.org/catenax/taxonomy)",
"dct": "<https://purl.org/dc/terms/>"
},
"@id": "sis-unsubscribe-production-forecast-01",
"properties": {
"description": "Unsubscribe Production Forecast Asset",
"privateProperties": {},
"cx-common:version": "2.0"
},
"dataAddress": {
"@type": "DataAddress",
"type": "HttpData",
"baseUrl": "{SIS_UNSUBSCRIBE_PRODUCTION_FORECAST_ENDPOINT}}",
"method": "DELETE",
"proxyPath": "true",
"contentType": "application/json"
}
}

Access and Usage Policy definition:

{
"@context": {
"@vocab": "<https://w3id.org/edc/v0.0.1/ns/>"
},
"@id": "sis-unsubscribe-production-forecast-01-policy",
"policy": {
"@context": [
"<https://www.w3.org/ns/odrl.jsonld>",
{
"cx-policy": "<https://w3id.org/catenax/policy/v1.0.0/>"
}
],
"@type": "Policy",
"profile": "cx-policy:profile2405",
"permission": [
{
"action": "use",
"constraint": {
"or": [
{
"leftOperand": "BusinessPartnerNumber",
"operator": "eq",
"rightOperand": "{{POLICY_BPN}}"
}
]
}
}
]
}
}

Contract definition:

{
"@context": {},
"@id": "sis-unsubscribe-production-forecast-01-contract",
"@type": "ContractDefinition",
"accessPolicyId": "sis-unsubscribe-production-forecast-01-policy",
"contractPolicyId": "sis-unsubscribe-production-forecast-01-policy",
"assetsSelector" : {
"@type" : "CriterionDto",
"operandLeft": "https://w3id.org/edc/v0.0.1/ns/id",
"operator": "=",
"operandRight": "sis-unsubscribe-production-forecast-01"
}
}

4.3.2.3 ERROR HANDLING

Every APIAPI An API is a way for two or more computer programs to communicate with each other. endpoint defined in Chapter 4.3.1 MUST respond to incoming requests with HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. status codes as described in [RFC9110]. The status codes for each endpoint are defined in the following sections.

Status CodeDescriptionUsage
200OKThe request has succeeded. Unsubscribe was successful
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).
401UnauthorizedAlthough the HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.
403ForbiddenThe client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource.
420Unknown relatedMessageIDThe combination of relatedMessageId and BPNSBPNS The unique identifier of a partner site within Catena-X (e.g., a specific factory). does not fit

4.4 "GetProductionTrackingData" APIAPI An API is a way for two or more computer programs to communicate with each other.

This introduction holds for 4.4-4.5:

The GetProductionTrackingData contains the request for tracking data which is sent from a Modular Production partner to a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. or a third party on the next lower level. All participants using the Shop-Floor-Information-Service in the role of a a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. or third party MUST be able to send the GetProductionTrackingData . All participants using the Shop-Floor-Information-Service in the role of a Modular Production MUST be able to receive and process the GetProductionTrackingData .

The following diagram shows the complete communication between the partners in a abstract way. It takes place in different phases:

  1. Negotiation between the data connectors of the partners like Tractus-X EDCTractus-X EDC The Tractus-X Eclipse Dataspace Connector (Tractus-X EDC) is a reference implementation for a connector conformant to CX-0018 and acts as a de-facto standard/reference implementation within Catena-X; other CX-0018-conformant connectors are also valid options. using the needed policies.
  2. GetProductionTrackingData(...) - the call of the customerCustomer In the context of OSim, the receiver of produced goods from a supplier..
  3. get the desired information via ProvideProductionTrackingData(...) - transfered by Modular Production.

SIS Tracking

4.4.1 PRECONDITIONS AND DEPENDENCIES

4.4.2 APIAPI An API is a way for two or more computer programs to communicate with each other. SPECIFICATION

The GetProductionTrackingData APIAPI An API is a way for two or more computer programs to communicate with each other. MUST be published towards the network using a Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer./Contract Offer in terms of the Dataspace Protocol as defined by IDSAIDSA The IDSA is an organization working to create the future of the global digital economy with International Data Spaces (IDS): a secure, sovereign system of data sharing where participants can realize the full value of their data., following the CX-0018 Eclipse Data Space Connector (EDC).

4.4.2.1 APIAPI An API is a way for two or more computer programs to communicate with each other. Endpoints & resources

When sending a request to the GetProductionTrackingData Endpoint, the body MUST be composed out of two information objects: a header and a content. Together they form the HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. body that MUST be formatted as JSON Request Header.

FieldLevelRequiredPurposeDatatypeExample Value
header
senderBpnCX-Headermandatoryof Meta Model used for compatibilityBpnlCharacteristicBPNL1234567890SE
versionCX-headermandatoryof Meta model used for compatibilityVersionCharacteristic2.0.0
messageIdCX-headermandatoryunique ID for message will be used as requestID for the following communicationUUID00000000-0000-0000-C000-000000000046
contextCX-headermandatoryInformation about the context the message should be considered in, e.g. "MP-Request"stringMUST BE urn:samm:io.catenax.shopfloor_information.get_production_tracking:1.0.0
sentDateTimeCX-headermandatorytime of requeststring2023-06-19T21:24:00+07:00
recipientBpnCX-headermandatoryidentification of the recipientBpnlCharacteristicBPNL0987654321RE
expectedResponseByCX-headermandatoryDeadline for the first responsedate2023-07-02T13:00:00.000+02:00
relatedMessageIdCX-headeroptionalnot used for request; will be used in the following parts to refer to the requestUUID00000000-0000-0000-C000-000000000042
request
versionSIS-Payloadmandatoryof Meta model used for compatibilityVersionCharacteristic1.0.0
customerIdSIS-Payloadmandatoryinternal customerCustomer In the context of OSim, the receiver of produced goods from a supplier. numberstring550e8400-e29b-41d4-a716-446655440000
catenaXIdSIS-Payloadoptionalidentifier of a product that is registered in a catena-x digital twin registryuuidurn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379
identifierTypeSIS-Payloadmandatoryspecifies the kind of the identifierNumberenumpartInstanceId
identifierNumberSIS-Payloadmandatoryidentifier of a productstringbox-12345678
processReferenceTypeSIS-Payloadmandatorydetermines whether a process step is identified with a capability or a processStepIdentifier of a billOfProcessstringprocessStep
billOfProcessIdSIS-Payloadoptionalidentifier of a bill of process known by both partnersstringbox-with-lid-12345678-bill-of-process
stepIdentifierListSIS-Payloadmandatorylists all process steps from which parameters are requestedlist
capabilityIdSIS-Payloadoptionalidentifier of a capabilitystringFuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben
partInstanceLevelSIS-Payloadoptionaldetermines whether a sub-product is identified based on a bill of materialBill of Material A Bill of Material (BoM) represents the structure of a product: a list of raw materials, sub-assemblies and sub-components needed to manufacture the end product. In Catena-X Traceability more than one BoM is considered, since the BoM can change during the lifecycle (different BoMs for different lifecycles). or a partInstanceIdenumpartInstanceId
billOfMaterialIdSIS-Payloadoptionalidentifier of a bill of materialBill of Material A Bill of Material (BoM) represents the structure of a product: a list of raw materials, sub-assemblies and sub-components needed to manufacture the end product. In Catena-X Traceability more than one BoM is considered, since the BoM can change during the lifecycle (different BoMs for different lifecycles).string321-BomIdentifier
billOfMaterialElementIdSIS-Payloadoptionalidentifies a concrete element of the bill of materialBill of Material A Bill of Material (BoM) represents the structure of a product: a list of raw materials, sub-assemblies and sub-components needed to manufacture the end product. In Catena-X Traceability more than one BoM is considered, since the BoM can change during the lifecycle (different BoMs for different lifecycles). referenced with the billOfMaterialIdstringDeckel-Bom-123-Schraube
partInstanceIdSIS-PayloadoptionalpartInstanceId to identify a sub-product of a productstringDeckel-Serial-123
processStepIdSIS-Payloadoptionalidentifier of a process step referenced in the billOfProcessIdstringFuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben_01
processParameterListSIS-PayloadmandatoryLists all process Parameter requested from a process steplist
processParameterNameSIS-Payloadmandatoryname of a requested process parameterstringDrehmoment_Max
processParameterSemanticIdSIS-Payloadmandatorylink to a semantic that characterizes the type of the process parameterstring0173-1#02-ABK233#001

The following JSON object gives an example of a valid data model:

{
"request" : {
"identifierNumber" : "box-12345678",
"stepIdentifierList" : [ {
"processStepId" : "Fuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben_01",
"processParameterList" : [ {
"processParameterSemanticId" : "0173-1#02-ABK233#001",
"processParameterName" : "Drehmoment_Max"
} ]
} ],
"customerId" : "550e8400-e29b-41d4-a716-446655440000",
"identifierType" : "partInstanceId",
"billOfProcessId" : "box-with-lid-12345678-bill-of-process",
"version" : "1.0.0",
"processReferenceType" : "processStep"
},
"header" : {
"senderBpn" : "BPNL7588787849VQ",
"relatedMessageId" : "d9452f24-3bf3-4134-b3eb-68858f1b2362",
"expectedResponseBy" : "2023-06-19T21:24:00+07:00",
"context" : "urn:samm:io.catenax.shopfloor_information.get_production_tracking:1.0.0",
"messageId" : "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9",
"receiverBpn" : "BPNL6666787765VQ",
"sentDateTime" : "2023-06-19T21:24:00+07:00",
"version" : "2.0.0"
}
}

Available Data Types:

  • The APIAPI An API is a way for two or more computer programs to communicate with each other. MUST use JSON as the payload transported via HTTPSHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes.. More information on the data objects supported by the endpoints is provided in the corresponding sections of Section 3.4.
  • The APIAPI An API is a way for two or more computer programs to communicate with each other. GetProductionTrackingData call MUST use the ProvideProductionForecast data model defined in 3.4.
  • IdentifierType MUST be one of the following items: partInstanceId, batchId, billOfMaterialId.
  • processReferenceType Mode MUST be one of the following items: processStep, capability.
  • partInstanceLevel MUST be one of the following items: partInstanceId, billOfMaterialId.

4.4.2.2 DATA ASSETAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. STRUCTURE

The HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. GET endpoint introduced in chapter 4.4.1 MUST NOT be called from a partner directly. Rather, it MUST be called via a connector as defined in [CX-0018]. Therefore, the endpoint MUST be offered as an Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..

  • The latter MUST have a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop:id”. This property MUST be used to identify the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. when searching the assetsAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. catalog of a supplierSupplier In the context of OSim, the producer of goods. as well as initiating a transfer process. Because the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. reflects the contractual relationship between Shop-Floor-Information-Service partners, only one assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. with the aforementioned property MUST be visible to the customerCustomer In the context of OSim, the receiver of produced goods from a supplier. at any time to avoid ambiguity. The value for this property can be chosen freely but must be unique.
  • The assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition SHOULD contain a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop.description” for a human readable description of the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. when providing the contract offer catalog for the consumer and make it easier and readable for a human what kind of data this assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. contains.
  • The assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition MUST contain a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop:version” containing a version number to identify if there have been updates on an assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition.
  • The latter MUST have a property “dataAddress.properties.baseUrl” with a value containing the URL of the endpoint where the function “unsubscribe” is implemented.
  • Additionally, the dataAddress property MUST contain the parameter proxyPath with a value set to TRUE to enable the possibility to use the connector compliant with [CX-0018] as a reverse proxy by adding parameters to the URL.

An example Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition with a corresponding access / usage policy and contract definition are shown below. Note: Expressions in double curly braces {{}} must be substituted with a corresponding value.

AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition:

{
"@context": {
"edc": "<https://w3id.org/edc/v0.0.1/ns/>",
"cx-common": "[https://w3id.org/catenax/ontology/common#](https://w3id.org/catenax/ontology/common)",
"cx-taxo": "[https://w3id.org/catenax/taxonomy#](https://w3id.org/catenax/taxonomy)",
"dct": "<https://purl.org/dc/terms/>"
},
"@id": "sis-get-production-tracking-01",
"properties": {
"description": "Get Production Tracking Asset",
"privateProperties": {
},
"cx-common:version": "2.0"
},
"dataAddress": {
"@type": "DataAddress",
"type": "HttpData",
"baseUrl": "{SIS\_GET\_PRODUCTION\_FORECAST\_TRACKING}}",
"method": "GET",
"proxyPath": "true",
"contentType": "application/json"
}
}

Access and Usage Policy definition:

{
"@context": {
"@vocab": "<https://w3id.org/edc/v0.0.1/ns/>"
},
"@id": "sis-get-production-tracking-01-policy",
"policy": {
"@context": [
"<https://www.w3.org/ns/odrl.jsonld>",
{
"cx-policy": "<https://w3id.org/catenax/policy/v1.0.0/>"
}
],
"@type": "Policy",
"profile": "cx-policy:profile2405",
"permission": [
{
"action": "use",
"constraint": {
"or": [
{
"leftOperand": "BusinessPartnerNumber",
"operator": "eq",
"rightOperand": "{{POLICY_BPN}}"
}
]
}
}
]
}
}

Contract definition:

{
"@context": {},
"@id": "sis-get-production-tracking-01-contract",
"@type": "ContractDefinition",
"accessPolicyId": "sis-get-production-tracking-01-policy",
"contractPolicyId": "sis-get-production-tracking-01-policy",
"assetsSelector" : {
"@type" : "CriterionDto",
"operandLeft": "https://w3id.org/edc/v0.0.1/ns/id",
"operator": "=",
"operandRight": "sis-get-production-tracking-01"
}
}

4.4.2.3 ERROR HANDLING

Every APIAPI An API is a way for two or more computer programs to communicate with each other. endpoint defined in Chapter 4.4.1 MUST respond to incoming requests with HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. status codes as described in [RFC9110]. The status codes for each endpoint are defined in the following sections.

Status CodeDescriptionUsage
200OKThe request has succeeded.
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).
401UnauthorizedAlthough the HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.
402Unknown BPNSBPNS The unique identifier of a partner site within Catena-X (e.g., a specific factory).The BPNSBPNS The unique identifier of a partner site within Catena-X (e.g., a specific factory). which is given as parameter is not registered in the data provider database as a direct partner.
403CustomerId unknownThe customerID unknown
405ForbiddenThe client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource.
421uncomplete Request
422identifierNumber unknownThe identifierID unknown
423billOfMaterialId unknownThe billOfMaterialId unknown
424billOfProcessId unknownThe billOfProcessId unknown
425bomElementId unknownThe bomElementId unknown
426capabilityId unknownThe capabilityId unknown
427processStepId unknownThe processStepId unknown
428other parameters unknownOther parameters unknown

4.5 "ProvideProductionTrackingData" APIAPI An API is a way for two or more computer programs to communicate with each other.

The ProvideProductionTrackingDataAPI sends the forecasting data from a Modular Production to the customerCustomer In the context of OSim, the receiver of produced goods from a supplier. or a third party on the next lower level. All participants using the Shop-Floor-Information-Service in the role of a a Modular Production MUST be able to send the ProvideProductionForecastData. All participants using the Shop-Floor-Information-Service in the role of a customerCustomer In the context of OSim, the receiver of produced goods from a supplier. or additional third party MUST be able to receive and process the ProvideProductionForecastData.

4.5.1 PRECONDITIONS AND DEPENDENCIES

The ProvideProductionTrackingDataAPI MUST be published towards the network using a Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer./Contract Offer in terms of the Dataspace Protocol as defined by IDSAIDSA The IDSA is an organization working to create the future of the global digital economy with International Data Spaces (IDS): a secure, sovereign system of data sharing where participants can realize the full value of their data., following the CX-0018 Eclipse Data Space Connector (EDC).

4.5.2 APIAPI An API is a way for two or more computer programs to communicate with each other. SPECIFICATION

4.5.2.1 APIAPI An API is a way for two or more computer programs to communicate with each other. Endpoints & resources

When sending a request to the ProvideProductionForecastData Endpoint, the body MUST be composed out of two information objects: a header and a content. Together they form the HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. body that MUST be formatted as JSON Request Header.

Note: This is not the HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. Header but rather part of the HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. Body.

FieldLevelRequiredPurposeDatatypeExample Value
header
senderBpnCX-Headermandatoryof Meta Model used for compatibilityBpnlCharacteristicBPNL1234567890SE
versionCX-headermandatoryof Meta model used for compatibilityVersionCharacteristic2.0.0
messageIdCX-headermandatoryunique ID for message will be used as requestID for the following communicationUUID00000000-0000-0000-C000-000000000046
contextCX-headermandatoryInformation about the context the message should be considered in, e.g. "MP-Request"stringMUST BEurn:samm:io.catenax.shopfloor_information.provide_production_tracking:1.0.0
sentDateTimeCX-headermandatorytime of requeststring2023-06-19T21:24:00+07:00
recipientBpnCX-headermandatoryidentification of the recipientBpnlCharacteristicBPNL0987654321RE
expectedResponseByCX-headermandatoryDeadline for the first responsedate2023-07-02T13:00:00.000+02:00
relatedMessageIdCX-headeroptionalnot used for request; will be used in the following parts to refer to the requestUUID00000000-0000-0000-C000-000000000042
response
versionSIS-Payloadmandatoryof Meta model used for compatibilityVersionCharacteristic1.0.0
catenaXIdSIS-Payloadoptionalidentifier of a product that is registered in a catena-x digital twin registryuuidurn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379
identifierTypeSIS-Payloadmandatoryspecifies the kind of the identifierNumberenumpartInstanceId
identifierNumberSIS-Payloadmandatoryidentifier of a productstringbox-12345678
processStepIdentifierListSIS-PayloadmandatoryLists all process steps for which parameters are providedlist
processStepIdSIS-Payloadoptionalidentifier of a process step referenced in the billOfProcessIdstringFuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben_01
processParameterValueListSIS-PayloadmandatoryLists all process Parameter provided for a process steplist
processParameterNameSIS-Payloadmandatoryname of a requested process parameterstringDrehmoment_Max
processParameterSemanticIdSIS-Payloadmandatorylink to a semantic that characterizes the type of the process parameterstring0173-1#02-ABK233#001
processParameterValueSIS-Payloadmandatorythe concrete value of a process parameterstring10
processParameterQualitySIS-Payloadmandatoryindicates the quality of the parameters value measurementenumnoValue

The following JSON object gives an example of a valid header and payload.

{
"header" : {
"senderBpn" : "BPNL7588787849VQ",
"relatedMessageId" : "d9452f24-3bf3-4134-b3eb-68858f1b2362",
"expectedResponseBy" : "2023-06-19T21:24:00+07:00",
"context" : "urn:samm:io.catenax.shopfloor_information.provide_production_tracking:1.0.0",
"messageId" : "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9",
"receiverBpn" : "BPNL6666787765VQ",
"sentDateTime" : "2023-06-19T21:24:00+07:00",
"version" : "2.0.0"
},
"response" : {
"identifierNumber" : "box-12345678",
"catenaXId" : "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379",
"identifierType" : "partInstanceId",
"version" : "1.0.0",
"processStepIdentifierList" : [ {
"processStepId" : "Fuegen.Anpressen_Einpressen.Schrauben.Deckelverschrauben_01",
"processParameterValueList" : [ {
"processParameterName" : "Drehmoment_Max",
"semanticId" : "0173-1#02-ABK233#001",
"processParameterQuality" : "ok",
"processParameterValue" : "10"
} ]
} ]
}
}

Available Data Types:

  • The APIAPI An API is a way for two or more computer programs to communicate with each other. MUST use JSON as the payload transported via HTTPSHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes.. More information on the data objects supported by the endpoints is provided in the corresponding sections of Section 4.4.1.
  • The APIAPI An API is a way for two or more computer programs to communicate with each other. ProvideProductionTrackingDatacall MUST use the ProvideProductionTrackingData data model as described in 4.4.1.
  • processParameterQuality MUST be one of the following items: ok, inexact, noValue.

4.5.2.2 DATA ASSETAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. STRUCTURE

The HTTPHTTP HTTP is an application-layer protocol for transmitting hypermedia documents (such as HTML). It was designed for communication between web browsers and web servers, but can also be used for other purposes. POST endpoint introduced in chapter 4.5.1 MUST NOT be called from a partner directly. Rather, it MUST be called via a connector compliant with [CX-0018] communication. Therefore, the endpoint MUST be offered as an Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..

  • The latter MUST have a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop:id”. This property MUST be used to identify the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. when searching the assetsAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. catalog of a supplierSupplier In the context of OSim, the producer of goods. as well as initiating a transfer process. Because the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. reflects the contractual relationship between Shop-Floor-Information-Service partners, only one assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. with the aforementioned property MUST be visible to the customerCustomer In the context of OSim, the receiver of produced goods from a supplier. at any time to avoid ambiguity. The value for this property can be chosen freely but must be unique.
  • The assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition SHOULD contain a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop.description” for a human readable description of the assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. when providing the contract offer catalog for the consumer and make it easier and readable for a human what kind of data this assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. contains.
  • The assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition MUST contain a property “assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer..properties.assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer.:prop:version” containing a version number to identify if there have been updates on an assetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition.
  • The latter MUST have a property “dataAddress.properties.baseUrl” with a value containing the URL of the endpoint where the function “ProvideProductionForecast” is implemented.
  • Additionally, the dataAddress property MUST contain the parameter proxyPath with a value set to TRUE to enable the possibility to use a connector compliant with [CX-0018] as a reverse proxy by adding parameters to the URL.

An example Data AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition with a corresponding access / usage policy and contract definition are shown below. Note: Expressions in double curly braces {{}} must be substituted with a corresponding value.

AssetAsset On the Data Provider side, an Asset describes the data set which will be shared or can be consumed by a Data Consumer. definition:

{
"@context": {
"edc": "<https://w3id.org/edc/v0.0.1/ns/>",
"cx-common": "[https://w3id.org/catenax/ontology/common#](https://w3id.org/catenax/ontology/common)",
"cx-taxo": "[https://w3id.org/catenax/taxonomy#](https://w3id.org/catenax/taxonomy)",
"dct": "<https://purl.org/dc/terms/>"
},
"@id": "sis-provide-production-tracking-01",
"properties": {
"description": "Provide Production Tracking Asset",
"privateProperties": {},
"cx-common:version": "2.0"
},
"dataAddress": {
"@type": "DataAddress",
"type": "HttpData",
"baseUrl": "{SIS_PROVIDE_PRODUCTION_FORECAST_TRACKING}}",
"method": "POST",
"proxyPath": "true",
"contentType": "application/json"
}
}

Access and Usage Policy definition:

{
"@context": {
"@vocab": "<https://w3id.org/edc/v0.0.1/ns/>"
},
"@id": "sis-provide-production-tracking-01-policy",
"policy": {
"@context": [
"<https://www.w3.org/ns/odrl.jsonld>",
{
"cx-policy": "<https://w3id.org/catenax/policy/v1.0.0/>"
}
],
"@type": "Policy",
"profile": "cx-policy:profile2405",
"permission": [
{
"action": "use",
"constraint": {
"or": [
{
"leftOperand": "BusinessPartnerNumber",
"operator": "eq",
"rightOperand": "{{POLICY_BPN}}"
}
]
}
}
]
}
}

Contract definition:

{
"@context": {},
"@id": "sis-provide-production-tracking-01-contract",
"@type": "ContractDefinition",
"accessPolicyId": "sis-provide-production-tracking-01-policy",
"contractPolicyId": "sis-provide-production-tracking-01-policy",
"assetsSelector" : {
"@type" : "CriterionDto",
"operandLeft": "https://w3id.org/edc/v0.0.1/ns/id",
"operator": "=",
"operandRight": "sis-provide-production-tracking-01"
}
}

5 PROCESSES

This section is normative

5.1 "Production Forecast" PROCESS

5.1.1 ACTORS AND ROLES

Any application provider that develops the Production Forecast Aspect of the Shop-Floor-Information-Service has to grant fulfilllment of these requirements.

  • The solution MUST be designed to consider requirements for a trusted usage environment (e.g., identity verification and /or verification process).
  • The solution MUST be designed to require a contractual agreement in compliance with antitrust requirements in the usage environment (e.g., data contracts as a prerequisite for carrying out a data exchange). For reference see CX-0001 guidelines.
  • The solution MUST be designed to limit visibility and/or access to concrete data content as much as possible (e.g., data offer does not yet allow data access).
  • The solution MUST be designed to require the implementation of notice and/or acknowledgement concepts to raise awareness of antitrust issues during use (e.g., helpdesk or pop-up info).
  • The solution MUST be designed to ensure traceability/reconstructability of processes through appropriate documentation and at the same time data sovereignty over concrete data content (e.g., through access, deletion or destination rights).

Any Modular Production, their customerCustomer In the context of OSim, the receiver of produced goods from a supplier. involved logisticianLogistician In the context of OSim, the organization that transports produced goods from supplier to customer. and subcontractors (in following called with “all parties”) in the Shop-Floor-Information Production Forecast Service process (i.e., data provider and/or data consumer) MUST fulfill following requirements:

  • All parties are in a contractual relationship with each other and MUST agree to share data related using the Production Forecasts Aspects of the Shop-Floor-Information-Service.
  • All parties MUST manage the access authorization to the Production Forecast Shop-Floor-Information-Service and to its related data.
  • All parties MUST be technically able to participate within the Production Forecast Aspect of Shop-Floor-Information-Service Process.
  • All parties in the role of data provider MUST be able to generate Shop-Floor-Information like forecasting information on the production as well as the current production state. Internal planning data of a Modular Production MUST be made accessible by authorized data consumers (e.g., logisticiansLogistician In the context of OSim, the organization that transports produced goods from supplier to customer. or customersCustomer In the context of OSim, the receiver of produced goods from a supplier.) of an upper level in the supply chain.
  • All data providers (factories) MUST ensure that the authorized data consumers will get data directly relevant to them only.
  • All parties in the role of data consumer MUST be able to request and receive data from the factory. Data MUST be exchanged either on request, cyclic and or on notification if a state is changing.
  • It is RECOMMENDED to share forecasting information of a time window of 1 week.

5.2 "Production Tracking" PROCESS

5.2.1 ACTORS AND ROLES

Any application provider that develops the Production Tracking Aspect of the Shop-Floor-Information-Service has to grant fulfillment of these requirements.

  • The solution MUST be designed to consider requirements for a trusted usage environment (e.g., identity verification and /or verification process).
  • The solution MUST be designed to require a contractual agreement in compliance with antitrust requirements in the usage environment (e.g., data contracts as a prerequisite for carrying out a data exchange). For reference see CX-0001 guidelines.
  • The solution MUST be designed to limit visibility and/or access to concrete data content as much as possible (e.g., data offer does not yet allow data access).
  • The solution MUST be designed to require the implementation of notice and/or acknowledgement concepts to raise awareness of antitrust issues during use (e.g., helpdesk or pop-up info).
  • The solution MUST be designed to ensure traceability/reconstructability of processes through appropriate documentation and at the same time data sovereignty over concrete data content (e.g., through access, deletion or destination rights).

Any Modular Production, their customerCustomer In the context of OSim, the receiver of produced goods from a supplier. in the Production Tracking Aspect of the Shop-Floor-Information Service process (i.e., data provider and/or data consumer) MUST fulfilll following requirements:

  • All parties are in a contractual relationship with each other and MUST agree to share data related using the Production Tracking related aspects of the Shop-Floor-Information-Service
  • All parties MUST manage the access authorization to the Production Tracking Shop-Floor-Information-Service and to its related data.
  • All parties MUST be technically able to participate within the Production Tracking Aspect of the Shop-Floor-Information-Service Process.
  • All parties in the role of data provider MUST be able to generate Shop-Floor-Information like tracking information during the production
  • All data providers (factories) MUST ensure that the authorized data consumers will get data directly relevant to them only.
  • All parties in the role of data consumer MUST be able to request and receive data from the factory.

6 REFERENCES

6.1 NORMATIVE REFERENCES

This section is normative

  • CX-0001 EDC Discovery APIAPI An API is a way for two or more computer programs to communicate with each other.* Version 1.0.2
  • CX-0003 SAMM Aspect Meta Model Version 1.1.0 or 1.0.2
  • CX-0010 Business Partner Number Version 2.0.0
  • CX-0018 Dataspace Connectivity Version 3.0.0

6.2 NON-NORMATIVE REFERENCES

This section is non-normative

    n.a.

6.3 REFERENCE IMPLEMENTATIONS

This section is non-normative

  n.a.

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