Payload Structure for OperationCompleted Events
Operation Completed Event Schema Version 2
Schema version 2 added the following fields:
schemaVersion
: represents schema versionrouteInfo.properties
: Route level propertieslotIdentifier.properties
: Produced material lot propertiesbillOfMaterials.lotIdentifier.properties
: consumed material lot propertiesbillOfMaterials.properties
: BOM Item properties
JSON Operation Completed Schema Version 2
{
"schemaVersion": "2",
"workOrderName": "WO-Bike",
"lotIdentifier": {
"name": "Lot1",
"properties": [
{
"propertyName": "lotIdentifierProperty1",
"propertyValue": "10"
}
]
},
"routeInfo": {
"name": "Route Level",
"properties": [
{
"propertyName": "routeProperty1",
"propertyValue": "20"
},
{
"propertyName": "routeProperty2",
"propertyValue": "30"
}
]
},
"operationInfo": {
"name": "SIT Op1",
"startTime": "2021-02-03T12:29:28Z",
"endTime": "2021-02-03T12:31:52Z",
"unitName": "FrameMountingStation",
"productionLine": "Bikes_Assembly_Line",
"status": "Complete",
"completedBy": "mesadmin",
"producedMaterial": "PR1",
"unitOfMeasure": "EA",
"completedQuantity": 200,
"billOfMaterials": [
{
"name": "RawMaterial001",
"quantity": 4,
"unitOfMeasure": "EA",
"quantityPrecision": 1,
"lowerTolerance": 2.2,
"upperTolerance": 1,
"lowerTolerancePrecision": 1,
"upperTolerancePrecision": 1,
"scrapFactor": 1,
"defaultStorageUnit": "AlignmentJig",
"lotIdentifier": {
"name": "Lot1",
"properties": [
{
"propertyName": "consumedLotIdentifierProperty1",
"propertyValue": "10"
},
{
"propertyName": "consumedLotIdentifierProperty2",
"propertyValue": "30"
}
]
},
"properties": [
{
"propertyName": "bomItemProperty1",
"propertyValue": "10"
},
{
"propertyName": "bomItemProperty2",
"propertyValue": "20"
}
]
},
{
"name": "RawMaterial002",
"quantity": 444,
"unitOfMeasure": "EA",
"quantityPrecision": 1,
"lowerTolerance": 2.2,
"upperTolerance": 1,
"lowerTolerancePrecision": 1,
"upperTolerancePrecision": 1,
"scrapFactor": 1,
"defaultStorageUnit": "AlignmentJig",
"lotIdentifier": {
"name": "Lot2",
"properties": [
{
"propertyName": "consumedLotIdentifierProperty3",
"propertyValue": "10"
},
{
"propertyName": "consumedLotIdentifierProperty4",
"propertyValue": "30"
}
]
},
"properties": [
{
"propertyName": "bomItemProperty1",
"propertyValue": "Test1"
},
{
"propertyName": "bomItemProperty2",
"propertyValue": "Test2"
}
]
}
],
"properties": [
{
"propertyName": "operationProperty1",
"propertyValue": "1"
},
{
"propertyName": "operationProperty2",
"propertyValue": "2"
}
]
},
"kafkaConsumerId": "0000017767e0a822-02420a0002a40000",
"publishedDate": "2021-01-31T06:18:12Z",
"sddSchemaVersion": 8
}
B2MML Operation Completed Schema Version 2
<?xml version="1.0" encoding="UTF-8"?>
<ProductionPerformance xmlns="http://www.wbf.org/xml/B2MML-V0401" xmlns:Extended="http://www.wbf.org/xml/B2MML-V0401-AllExtensions" xmlns:erp="http://sample.data" xmlns:inp2="http://www.wbf.org/xml/B2MML-V0401" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ID>0000017767e0a822-02420a0002a40000</ID>
<Description>ERP Export Service</Description>
<PublishedDate>2021-01-31T06:18:12Z</PublishedDate>
<ProductionResponse>
<!-- workorder name -->
<ID>ERPWOID6-Wed Feb 03 16:54:51 IST 2021</ID>
<SegmentResponse>
<!-- route info-->
<ID>000</ID>
<!--this is same as processOrderComplete event message -->
<!-- Route Level Properties -->
<ProductionData>
<ID>routeProperty1</ID>
<Value>
<ValueString>20</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
</ProductionData>
<ProductionData>
<ID>routeProperty2</ID>
<Value>
<ValueString>30</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
</ProductionData>
</SegmentResponse>
<!-- operation Info-->
<SegmentResponse>
<!-- operation Name-->
<ID>SIT Op1</ID>
<!-- operationInfo/startTime-->
<ActualStartTime>2021-02-03T12:29:28Z</ActualStartTime>
<!-- operationInfo/endTime-->
<ActualEndTime>2021-02-03T12:31:52Z</ActualEndTime>
<!-- operationInfo/Properties-->
<ProductionData>
<ID>operationProperty1</ID>
<Value>
<ValueString>1</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
</ProductionData>
<ProductionData>
<ID>operationProperty2</ID>
<Value>
<ValueString>2</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
</ProductionData>
<!-- operationInfo/status-->
<ProductionData>
<ID>status</ID>
<Value>
<ValueString>Complete</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
</ProductionData>
<!-- operationInfo/completedBy-->
<ProductionData>
<ID>completedBy</ID>
<Value>
<ValueString>mesadmin</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
</ProductionData>
<!-- operationInfo/producedMaterial-->
<MaterialProducedActual>
<!--producedMaterial Name -->
<MaterialDefinitionID>PR1</MaterialDefinitionID>
<!--producedMaterial Lot Name -->
<MaterialLotID>Lot1</MaterialLotID>
<Location>
<!--production Line -->
<EquipmentID>Bikes_Assembly_Line</EquipmentID>
<EquipmentElementLevel>ProductionLine</EquipmentElementLevel>
<Location>
<!--production unitName -->
<EquipmentID>FrameMountingStation</EquipmentID>
<EquipmentElementLevel>Unit</EquipmentElementLevel>
</Location>
</Location>
<!--produced Quantity -->
<Quantity>
<QuantityString>200</QuantityString>
<DataType>double</DataType>
<UnitOfMeasure>EA</UnitOfMeasure>
</Quantity>
<!--Produced Material Lot Properties -->
<MaterialProducedActualProperty>
<ID>lotIdentifierProperty1</ID>
<Value>
<ValueString>10</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
</MaterialProducedActualProperty>
</MaterialProducedActual>
<!-- BillOfMaterial Info -->
<MaterialConsumedActual>
<!--BillOfMaterial Name-->
<MaterialDefinitionID>RawMaterial001</MaterialDefinitionID>
<!--consumedLotIdentifier Name -->
<MaterialLotID>Lot1</MaterialLotID>
<!--consumed Quantity -->
<Quantity>
<QuantityString>4.0</QuantityString>
<DataType>float</DataType>
<UnitOfMeasure>EA</UnitOfMeasure>
</Quantity>
<!--Consumed Lot Identifier & BOM Item Properties-->
<MaterialConsumedActualProperty>
<ID>consumedLotIdentifierProperty1</ID>
<Value>
<ValueString>10</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>consumedLotIdentifierProperty2</ID>
<Value>
<ValueString>30</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>quantityPrecision</ID>
<Value>
<ValueString>1</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>lowerTolerance</ID>
<Value>
<ValueString>2.2</ValueString>
<DataType>float</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>upperTolerance</ID>
<Value>
<ValueString>1.0</ValueString>
<DataType>float</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>lowerTolerancePrecision</ID>
<Value>
<ValueString>1</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>upperTolerancePrecision</ID>
<Value>
<ValueString>1</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>scrapFactor</ID>
<Value>
<ValueString>1</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>defaultStorageUnit</ID>
<Value>
<ValueString>AlignmentJig</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>bomItemProperty1</ID>
<Value>
<ValueString>10</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>bomItemProperty2</ID>
<Value>
<ValueString>20</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
</MaterialConsumedActual>
<MaterialConsumedActual>
<MaterialDefinitionID>RawMaterial002</MaterialDefinitionID>
<MaterialLotID>Lot2</MaterialLotID>
<Quantity>
<QuantityString>444.0</QuantityString>
<DataType>float</DataType>
<UnitOfMeasure>EA</UnitOfMeasure>
</Quantity>
<MaterialConsumedActualProperty>
<ID>quantityPrecision</ID>
<Value>
<ValueString>1</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>consumedLotIdentifierProperty3</ID>
<Value>
<ValueString>10</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>consumedLotIdentifierProperty4</ID>
<Value>
<ValueString>30</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>lowerTolerance</ID>
<Value>
<ValueString>2.2</ValueString>
<DataType>float</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>upperTolerance</ID>
<Value>
<ValueString>1.0</ValueString>
<DataType>float</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>lowerTolerancePrecision</ID>
<Value>
<ValueString>1</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>upperTolerancePrecision</ID>
<Value>
<ValueString>1</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>scrapFactor</ID>
<Value>
<ValueString>1</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>defaultStorageUnit</ID>
<Value>
<ValueString>AlignmentJig</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>bomItemProperty1</ID>
<Value>
<ValueString>Test1</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>bomItemProperty2</ID>
<Value>
<ValueString>Test2</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
</MaterialConsumedActual>
</SegmentResponse>
<!--added schemaVersion tag same as po complete event -->
<Extended:SchemaVersion>2</Extended:SchemaVersion>
<Extended:SDDSchemaVersion>8</Extended:SDDSchemaVersion>
</ProductionResponse>
</ProductionPerformance>
Operation Completed Event Schema Version 1
Added new fields for additional BOM information with respect to SDD Schema 8:
quantityPrecision
: cannot be empty, must be >= 0lowerTolerance
: can be null, or can be >= 0upperTolerance
: can be null, or can be >= 0lowerTolerancePrecision
: cannot be empty, must be >= 0upperTolerancePrecision
: cannot be empty, must be >= 0scrapFactor
: cannot be null, default is 0defaultStorageUnit
: cannot be nullsddSchemaVersion
: segment definition schema version
JSON Operation Completed Schema Version 1
{
"workOrderName": "WO_Bike",
"lotIdentifier": "Lot-Produced",
"operationInfo": {
"name":"op10",
"startTime":"2019-10-14T21:30:23Z",
"endTime": "2019-10-14T21:31:06Z",
"unitName" : "FrameMountingStation",
"productionLine":"Bikes_Assembly_Line",
"status" : "Complete",
"completedBy" :"mesadmin",
"producedMaterial":"Prod12",
"completedQuantity":1.0,
"unitOfMeasure" : "EA"
"billOfMaterials": [ {
"name":"Prod16",
"unitOfMeasure": "EA",
"quantity" : "11.0",
"consumedLotidentifier":"Lot-Consumed",
"quantityPrecision": 1,
"lowerTolerance": 2.2,
"upperTolerance": 1,
"lowerTolerancePrecision": 1,
"upperTolerancePrecision": 1,
"scrapFactor": 1,
"defaultStorageUnit": "AlignmentJig"
}
],
"properties" : [{
"propertyName" : "IntegerProperty" ,
"propertyValue" : "1"
}],
"kafkaConsumerId":"0000016dfa3958a7-02420a0003d40000",
"publishedDate":"2019-10-23T12:19:59Z",
"sddSchemaVersion": 8
}
}
B2MML Operation Completed Schema Version 1
<ProductionPerformance
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:Extended="http://www.wbf.org/xml/B2MML-V0401-AllExtensions"
xmlns:inp2="http://www.wbf.org/xml/B2MML-V0401"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:erp="http://sample.data"
xmlns="http://www.wbf.org/xml/B2MML-V0401">
<ID>0000016dfa3958a7-02420a0003d40000</ID>
<Description>ERP Export Service</Description>
<PublishedDate>2019-10-23T12:19:59Z</PublishedDate>
<ProductionResponse>
<ID>WO-Bike</ID>
<SegmentResponse>
<ID>Op10</ID>
<ActualStartTime>2019-10-14T21:30:23Z</ActualStartTime>
<ActualEndTime>2019-10-14T21:31:06Z</ActualEndTime>
<ProductionData>
<ID>IntegerProperty</ID>
<Value>
<ValueString>1</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
</ProductionData>
<ProductionData>
<ID>status</ID>
<Value>
<ValueString>Completed</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
</ProductionData>
<ProductionData>
<ID>completedBy</ID>
<Value>
<ValueString>mesadmin</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
</ProductionData>
<MaterialProducedActual>
<MaterialDefinitionID>Prod12</MaterialDefinitionID>
<MaterialLotID>Lot-Produced</MaterialLotID>
<Location>
<EquipmentID>Bikes_Assembly_Line</EquipmentID>
<EquipmentElementLevel>ProductionLine</EquipmentElementLevel>
<Location>
<EquipmentID>FrameMountingStation</EquipmentID>
<EquipmentElementLevel>Unit</EquipmentElementLevel>
</Location>
</Location>
<Quantity>
<QuantityString>1.0</QuantityString>
<DataType>double</DataType>
<UnitOfMeasure>EA</UnitOfMeasure>
</Quantity>
</MaterialProducedActual>
<MaterialConsumedActual>
<MaterialDefinitionID>Prod16</MaterialDefinitionID>
<MaterialLotID>Lot-Consumed</MaterialLotID>
<Quantity>
<QuantityString>11.0</QuantityString>
<DataType>float</DataType>
<UnitOfMeasure>EA</UnitOfMeasure>
</Quantity>
<MaterialConsumedActualProperty>
<ID>quantityPrecision</ID>
<Value>
<ValueString>1</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>lowerTolerance</ID>
<Value>
<ValueString>2.2</ValueString>
<DataType>float</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>upperTolerance</ID>
<Value>
<ValueString>1.0</ValueString>
<DataType>float</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>lowerTolerancePrecision</ID>
<Value>
<ValueString>1</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>upperTolerancePrecision</ID>
<Value>
<ValueString>1</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>scrapFactor</ID>
<Value>
<ValueString>1</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
<MaterialConsumedActualProperty>
<ID>defaultStorageUnit</ID>
<Value>
<ValueString>AlignmentJig</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
</MaterialConsumedActualProperty>
</MaterialConsumedActual>
</SegmentResponse>
<Extended:SDDSchemaVersion>8</Extended:SDDSchemaVersion>
</ProductionResponse>
</ProductionPerformance>
Operation Completed Event Schema Version 0
This is the original version.
JSON Operation Completed Schema Version 0
{
"workOrderName": "WO_Bike",
"lotIdentifier": "Lot-Produced",
"operationInfo": {
"name":"op10",
"startTime":"2019-10-14T21:30:23Z",
"endTime": "2019-10-14T21:31:06Z",
"unitName" : "FrameMountingStation",
"productionLine":"Bikes_Assembly_Line",
"status" : "Complete",
"completedBy" :"mesadmin",
"producedMaterial":"Prod12",
"completedQuantity":1.0,
"unitOfMeasure" : "EA"
"billOfMaterials": [ {
"name":"Prod16",
"unitOfMeasure": "EA",
"quantity" : "11.0",
"consumedLotidentifier":"Lot-Consumed"
}
],
"properties" : [{
"propertyName" : "IntegerProperty" ,
"propertyValue" : "1"
}],
"kafkaConsumerId":"0000016dfa3958a7-02420a0003d40000",
"publishedDate":"2019-10-23T12:19:59Z"
}
}
B2MML Operation Completed Schema Version 0
<ProductionPerformance
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:Extended="http://www.wbf.org/xml/B2MML-V0401-AllExtensions"
xmlns:inp2="http://www.wbf.org/xml/B2MML-V0401"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:erp="http://sample.data"
xmlns="http://www.wbf.org/xml/B2MML-V0401">
<ID>0000016dfa3958a7-02420a0003d40000</ID>
<Description>ERP Export Service</Description>
<PublishedDate>2019-10-23T12:19:59Z</PublishedDate>
<ProductionResponse>
<ID>WO-Bike</ID>
<SegmentResponse>
<ID>Op10</ID>
<ActualStartTime>2019-10-14T21:30:23Z</ActualStartTime>
<ActualEndTime>2019-10-14T21:31:06Z</ActualEndTime>
<ProductionData>
<ID>IntegerProperty</ID>
<Value>
<ValueString>1</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
</ProductionData>
<ProductionData>
<ID>status</ID>
<Value>
<ValueString>Completed</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
</ProductionData>
<ProductionData>
<ID>completedBy</ID>
<Value>
<ValueString>mesadmin</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
</ProductionData>
<MaterialProducedActual>
<MaterialDefinitionID>Prod12</MaterialDefinitionID>
<MaterialLotID>Lot-Produced</MaterialLotID>
<Location>
<EquipmentID>Bikes_Assembly_Line</EquipmentID>
<EquipmentElementLevel>ProductionLine</EquipmentElementLevel>
<Location>
<EquipmentID>FrameMountingStation</EquipmentID>
<EquipmentElementLevel>Unit</EquipmentElementLevel>
</Location>
</Location>
<Quantity>
<QuantityString>1.0</QuantityString>
<DataType>double</DataType>
<UnitOfMeasure>EA</UnitOfMeasure>
</Quantity>
</MaterialProducedActual>
<MaterialConsumedActual>
<MaterialDefinitionID>Prod16</MaterialDefinitionID>
<MaterialLotID>Lot-Consumed</MaterialLotID>
<Quantity>
<QuantityString>11.0</QuantityString>
<DataType>float</DataType>
<UnitOfMeasure>EA</UnitOfMeasure>
</Quantity>
</MaterialConsumedActual>
</SegmentResponse>
</ProductionResponse>
</ProductionPerformance>