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 customers or their representatives, like logisticians. 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 customers. It is not dedicated to a specific purpose, as customers 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 customer 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 customer 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 API.
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 API 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 customers or logisticians: 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 asset 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 supplier 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 customers. 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 customers by the Production Tracking aspect for the overall documentation of the production process.
Both partners - a customer 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 customer can find it via a so-called Business Partner Number (BPN). With the help of SSI (Self Sovereign Identity) the correct identity is guaranteed.
1.2.1 Forecasting
The customer 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 Customer must unsubscribe from the service when the service is no longer required as described in Section 4.3.
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 EDC) 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 HTTP 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 customer 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.
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 EDC) 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 API – 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 API 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 API – 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 API 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 customers resp. their logistician 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 customer as well as for the logistic in-between.
1.4.1 Production Forecast
The following sections are providing examples for the API call as well as for the data models corresponding to the Production Forecast aspects.
1.4.1.1 API
Production Forecast provides three API 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 BPNS 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 asset definition is done via a connector as defined in [CX-0018] (e.g. Tractus-X EDC). 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 EDC, 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 HTTP GET request.
An example HTTP 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 asset definition, is executed via a connector as defined in [CX-0018] (e.g. Tractus-X EDC). 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 EDC , 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 HTTP POST request. An example HTTP 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 asset definition, is executed via a connector as defined in [CX-0018] (e.g.
Tractus-X EDC). 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 EDC, 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 HTTP
DELETE request.
http://\{internal-server\}/relatedMessageId/00000000-0000-0000-C000-000000000042
The final id value should be copied from the GetProductionForecast. An example HTTP 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 API calls and the data models for production tracking are given.
1.4.2.1 API
Production Tracking provides two API 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 BPNS 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 asset definition is done via a connector as defined in [CX-0018] (e.g. Tractus-X EDC). 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 EDC, 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 HTTP GET request.
An example of the HTTP 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 asset definition is done via a connector as defined in [CX-0018] (e.g. Tractus-X EDC). 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 EDC , 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 HTTP POST request. An example HTTP 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 customer 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
Name | Abbreviation | Description |
---|---|---|
AAS | Asset Administration Shell | Specification to manage and administrate digital representations of assets (concepts, physical device, process, etc.). Used synonymously with the term "Digital Twin". |
AM | Aspect Model | a formal, machine-readable semantic description (expressed with RDF/turtle) of data accessible from an Aspect.Note 1 to entry: An Aspect Model 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 model 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 model can/should refer to terms of a standardized Business Glossary (if existing). |
BPN | Business Partner Number | Business Partner Number |
CX | Catena-X | Data ecosystem / data space for the automotive industry. |
DCM | Demand and Capacity Management | Product within Catena-X for shortage identification. |
DT | Digital Twin | Digital representation of an asset (concept, physical device, process, etc.). Realized using the Asset Administration Shell. Used synonymously with the term "Asset Administration Shell". |
EDC | Eclipse Dataspace Connector | Open-Source Dataspace Connector Framework to participate in International Data Spaces. |
JSON | JavaScript Object Notation | Json is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects. |
MP | Modular Production | Product within Catena-X for shop floor activities |
OSim | Online Control and Simulation | Product within Catena-X for Online Simulation along the supply chain |
PURIS | Predictive Unit Real-Time Information System | Product within Catena-X for shortage identification. |
SAMM | Semantic aspect meta model | Modelling 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. |
SIS | Shop-Floor-Information-Service | Service provided by MP in order to give information from the shop floor to customers and third parties |
SSI | Self Sovereign Identity | Self 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 API 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.