Skip to content

Commit

Permalink
Merge pull request #427 from eclipse-tractusx/hotfix/dpp-tutorial
Browse files Browse the repository at this point in the history
Hotfix: Update dpp tutorial guide
  • Loading branch information
saudkhan116 authored Oct 2, 2024
2 parents 177334f + f0c17d8 commit 812e9e8
Show file tree
Hide file tree
Showing 9 changed files with 437 additions and 400 deletions.
20 changes: 9 additions & 11 deletions dpp-tutorial/aspect-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ This guide provides a simple explanation on how to create a digital product pass

You must fullfill the following pre-requisites:

- A Catena-X Standarized Aspect Model (in this case we use the [Digital Product Pass v2.0.0 Model](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.generic.digital_product_passport/2.0.0))
- A Catena-X Standarized Aspect Model (in this case we use the [Digital Product Pass v5.0.0 Model](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.generic.digital_product_passport/5.0.0))
- JSON Editor like [VS Code](https://code.visualstudio.com/) or [Notepad++](https://notepad-plus-plus.org/downloads/)
- Car Parts JSON Test Data [found here](./resources/test-data/carParts.json)

Expand Down Expand Up @@ -83,7 +83,7 @@ Example:

### 2º - Copy the digital product pass aspect model template into a new file or window

Paste this [Digital Product Passport v2.0.0 Payload](./resources/payloads/example.json) in the VS Code/Notepad++:
Paste this [Digital Product Passport v5.0.0 Payload](./resources/payloads/example.json) in the VS Code/Notepad++:

![DPP Example](./resources/screenshots/dpp-example.png)

Expand All @@ -94,7 +94,7 @@ It is a test data template that can be personalized to your part with the test d
For example for adding the PCF value follow the following path:

```text
sustainability.PEF.carbon.value
sustainability.productFootprint.carbon[0].value
```

Example:
Expand All @@ -107,19 +107,17 @@ Follow this paths to find where the information is located.

| Property | Path |
| -------- | ----- |
| Name (Really short) | typology.shortName |
| Complete Name (More fancy name) | typology.longName |
| Class/Type of Part | typology.class.definition |
| PCF | sustainability.PEF.carbon.value |
| Name (Really short) | identification.type.nameAtManufacturer |
| Class/Type of Part | identification.classification.classificationDescription |
| PCF | sustainability.productFootprint.carbon[0].value |
|Height| characteristics.physicalDimension.height.value |
|Width| characteristics.physicalDimension.width.value|
|Length| characteristics.physicalDimension.length.value|
|Weight| characteristics.physicalDimension.grossWeight.value|
|Part Instance Id | identification.localIdentifier.value |
|Part Instance Id | identification.serial[0].value |
|Manufacturing Date |operation.manufacturer.manufacturingDate |
|List of Materials | sustainability.material.left.name.name (Add In Array)|
|Hazard Materials | critical.left (add elements to list) |
| Guarantee | lifespan (Add value and unit for garantee) |
| Guarantee | lifespan[0].value (Add value) |
| Guarantee | lifespan[0].unit (Add unit:months) |

Congratulations! You have successfully created your own digital product pass!

Expand Down
4 changes: 3 additions & 1 deletion dpp-tutorial/digital-twin-provision.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,11 @@ Replace the following placeholders:
```bash
<PART_INSTANCE_ID> -> the value of part instance written on datasheet
<PART_NAME> -> the part number is written on the datasheet from a part
<UUID> -> the UUID written on datasheet
<UUID-1> -> the UUID written on datasheet
```

> Note: Generate UUID and substitute it into <<{UUID-2}>>
## 3º Add Digital Twin into Digital Twin Registry (DTR)

After creation of the digital twin in previous step, add the twin into Digital Twin Registry (DTR).
Expand Down
2 changes: 1 addition & 1 deletion dpp-tutorial/qr-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Follow the steps below to generate and download a QR code in .svg format:
- Enter the desired text in the empty field/box. In this case we need the following information: **CX:\<manufacturerPartId>:\<partInstanceId>**
- This is the \<manufacturerPartId>:
```
MPI0012
MPI7654
```
- You can find the \<partInstanceId> value on the car part information sheet
- Click **"Download"** on the right side below the QR code
Expand Down
128 changes: 30 additions & 98 deletions dpp-tutorial/resources/digital-twins/car-dt-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,47 +8,47 @@
"displayName": [],
"globalAssetId": "urn:uuid:e5ab3398-bde1-4ef2-bb70-fd6dd1138e59",
"idShort": "Car",
"id": "UUID",
"id": "<UUID-1>",
"specificAssetIds": [
{
"name": "partInstanceId",
"value": "<YOUR PART INSTANCE ID>",
"name": "manufacturerId",
"value": "BPNL000000000FV1",
"externalSubjectId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
"value": "BPNL000000000FV1"
}
]
}
},
{
"name": "manufacturerPartId",
"value": "MPI0012",
"name": "partInstanceId",
"value": "<YOUR PART INSTANCE ID>",
"externalSubjectId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
},
{
"type": "GlobalReference",
"value": "PUBLIC_READABLE"
"value": "BPNL000000000FV1"
}
]
}
},
{
"name": "manufacturerId",
"value": "BPNL0073928UJ879",
"name": "manufacturerPartId",
"value": "MPI7654",
"externalSubjectId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
"value": "PUBLIC_READABLE"
},
{
"type": "GlobalReference",
"value": "BPNL000000000FV1"
}
]
}
Expand All @@ -61,7 +61,7 @@
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
"value": "BPNL000000000FV1"
}
]
}
Expand All @@ -73,11 +73,11 @@
{
"interface": "SUBMODEL-3.0",
"protocolInformation": {
"href": "https://dpp.int.demo.catena-x.net/BPNL000000000000/api/public/data/<UUID>",
"href": "https://dpp.int.catena-x.net/provider/api/public/<UUID-2>",
"endpointProtocol": "HTTP",
"endpointProtocolVersion": ["1.1"],
"subprotocol": "DSP",
"subprotocolBody": "id=urn:uuid:0c3d2db0-e5c6-27f9-5875-15a9a00e7a27;dspEndpoint=https://dpp.int.demo.catena-x.net/BPNL000000000000",
"subprotocolBody": "id=urn:uuid:0c3d2db0-e5c6-27f9-5875-15a9a00e7a27;dspEndpoint=https://dpp.int.catena-x.net/provider",
"subprotocolBodyEncoding": "plain",
"securityAttributes": [
{
Expand All @@ -90,100 +90,32 @@
}
],
"idShort": "digitalProductPass",
"id": "<UUID>",
"id": "<UUID-2>",
"semanticId": {
"type": "ExternalReference",
"keys": [
{
"type": "Submodel",
"value": "urn:samm:io.catenax.generic.digital_product_passport:2.0.0#DigitalProductPassport"
}
]
},
"description": [
{
"language": "en",
"text": "Digital Product Pass Submodel"
}
],
"displayName": []
},
{
"endpoints": [
{
"interface": "SUBMODEL-3.0",
"protocolInformation": {
"href": "https://dpp.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:dea9dfe8-77a2-e7f9-ba78-e96ecc54528b",
"endpointProtocol": "HTTP",
"endpointProtocolVersion": ["1.1"],
"subprotocol": "DSP",
"subprotocolBody": "id=urn:uuid:0c3d2db0-e5c6-27f9-5875-15a9a00e7a27;dspEndpoint=https://dpp.int.demo.catena-x.net/BPNL000000000000",
"subprotocolBodyEncoding": "plain",
"securityAttributes": [
{
"type": "NONE",
"key": "NONE",
"value": "NONE"
}
]
}
}
],
"idShort": "singleLevelBomAsBuilt",
"id": "urn:uuid:dea9dfe8-77a2-e7f9-ba78-e96ecc54528b",
"semanticId": {
"type": "ExternalReference",
"keys": [
"type": "Operation",
"value": "https://w3c.github.io/vc-jws-2020/contexts/v1/"
},
{
"type": "Submodel",
"value": "urn:bamm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt"
}
]
},
"description": [
{
"language": "en",
"text": "Single level Bom As Built Submodel"
}
],
"displayName": []
},
{
"endpoints": [
{
"interface": "SUBMODEL-3.0",
"protocolInformation": {
"href": "https://dpp.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:58f2acd1-4c64-6fb1-7390-a340ef712334",
"endpointProtocol": "HTTP",
"endpointProtocolVersion": ["1.1"],
"subprotocol": "DSP",
"subprotocolBody": "id=urn:uuid:0c3d2db0-e5c6-27f9-5875-15a9a00e7a27;dspEndpoint=https://dpp.int.demo.catena-x.net/BPNL000000000000",
"subprotocolBodyEncoding": "plain",
"securityAttributes": [
{
"type": "NONE",
"key": "NONE",
"value": "NONE"
}
]
}
}
],
"idShort": "SerialPart",
"id": "urn:uuid:58f2acd1-4c64-6fb1-7390-a340ef712334",
"semanticId": {
"type": "ExternalReference",
"keys": [
"value": "urn:samm:io.catenax.generic.digital_product_passport:5.0.0#DigitalProductPassport"
},
{
"type": "Submodel",
"value": "urn:bamm:io.catenax.serial_part:1.0.1#SerialPart"
"type": "Entity",
"value": "https://www.w3.org/ns/credentials/v2"
},
{
"type": "DataElement",
"value": "urn:samm:io.catenax.dpp_verification.cdc:1.0.0#CertifiedDataCredential"
}
]
},
"description": [
{
"language": "en",
"text": "DPP SerialPart Submodel"
"text": "Digital Product Pass Submodel"
}
],
"displayName": []
Expand Down
52 changes: 32 additions & 20 deletions dpp-tutorial/resources/digital-twins/example-dt.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,49 +6,49 @@
}
],
"displayName": [],
"globalAssetId": "urn:uuid:e5ab3398-bde1-4ef2-bb70-fd6dd1138e59",
"globalAssetId": "urn:uuid:e5ab3398-bde1-4ef2-bb70-fd6dd1138e60",
"idShort": "<PART_NAME>",
"id": "<UUID>",
"id": "<UUID-1>",
"specificAssetIds": [
{
"name": "partInstanceId",
"value": "<PART_INSTANCE_ID>",
"name": "manufacturerId",
"value": "BPNL000000000FV1",
"externalSubjectId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
"value": "BPNL000000000FV1"
}
]
}
},
{
"name": "manufacturerPartId",
"value": "MPI0012",
"name": "partInstanceId",
"value": "<YOUR PART INSTANCE ID>",
"externalSubjectId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
},
{
"type": "GlobalReference",
"value": "PUBLIC_READABLE"
"value": "BPNL000000000FV1"
}
]
}
},
{
"name": "manufacturerId",
"value": "BPNL0073928UJ879",
"name": "manufacturerPartId",
"value": "MPI7654",
"externalSubjectId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
"value": "PUBLIC_READABLE"
},
{
"type": "GlobalReference",
"value": "BPNL000000000FV1"
}
]
}
Expand All @@ -61,7 +61,7 @@
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
"value": "BPNL000000000FV1"
}
]
}
Expand All @@ -73,11 +73,11 @@
{
"interface": "SUBMODEL-3.0",
"protocolInformation": {
"href": "https://dpp.int.demo.catena-x.net/BPNL000000000000/api/public/data/<UUID>",
"href": "https://dpp.int.catena-x.net/provider/api/public/<UUID-2>",
"endpointProtocol": "HTTP",
"endpointProtocolVersion": ["1.1"],
"subprotocol": "DSP",
"subprotocolBody": "id=urn:uuid:0c3d2db0-e5c6-27f9-5875-15a9a00e7a27;dspEndpoint=https://dpp.int.demo.catena-x.net/BPNL000000000000",
"subprotocolBody": "id=urn:uuid:0c3d2db0-e5c6-27f9-5875-15a9a00e7a27;dspEndpoint=https://dpp.int.catena-x.net/provider",
"subprotocolBodyEncoding": "plain",
"securityAttributes": [
{
Expand All @@ -90,13 +90,25 @@
}
],
"idShort": "digitalProductPass",
"id": "<UUID>",
"id": "<UUID-2>",
"semanticId": {
"type": "ExternalReference",
"keys": [
{
"type": "Operation",
"value": "https://w3c.github.io/vc-jws-2020/contexts/v1/"
},
{
"type": "Submodel",
"value": "urn:samm:io.catenax.generic.digital_product_passport:2.0.0#DigitalProductPassport"
"value": "urn:samm:io.catenax.generic.digital_product_passport:5.0.0#DigitalProductPassport"
},
{
"type": "Entity",
"value": "https://www.w3.org/ns/credentials/v2"
},
{
"type": "DataElement",
"value": "urn:samm:io.catenax.dpp_verification.cdc:1.0.0#CertifiedDataCredential"
}
]
},
Expand Down
Loading

0 comments on commit 812e9e8

Please sign in to comment.