Sample Files for a Work Order
Message that Contains a Work Order
Inbound messages are added to the integration database using Microsoft SQL.
Message that Contains a Work Order
INSERT INTO erp_integration_inbound_messages (Message_Type, Media_Type, Message, Inserted_By)
VALUES ('workOrder', 'application/json', '{WOID}', '<user name>')
where {WOID} is a JSON document that specifies the work order.
Work Order Import Document
A JSON work order import document (WOID) contains all the details of a work order, including route and revision or segment definition. The WOID constitutes the body of the HTTP POST request of the ERP Import Service, which posts the work order to Plant Applications.
WOID with Route Definition
{
"schemaVersion": 3,
"workOrderName": "WO Route REG 001",
"producedMaterialName": "prod1",
"plannedLineName": "Test Line1",
"plannedQuantity": 3,
"priority": 0,
"plannedStartDate": "2018-09-18T13:28:39.039Z",
"plannedEndDate": "2018-12-19T13:00:00.000Z",
"lotIdentifiers": [
"SERNUM1",
"SERNUM2",
"SERNUM3"
],
"routeDefinitionName": "Test Route123",
"routeDefinitionRevision": 1
}
WOID without Route Definition
{
"schemaVersion": 3,
"workOrderName": "WO1Tue Jun 11 17:03:49 IST 2019",
"producedMaterialName": "weeles4",
"plannedLineName": "TestLine1",
"plannedQuantity": 2,
"priority": 0,
"plannedStartDate": "2018-08-18T13:28:39.395Z",
"plannedEndDate": "2018-08-19T13:00:00.395Z",
"lotIdentifiers": [
"lotA",
"lotB"
],
"operationsGroup": {
"route": {
"billOfMaterials": [],
"documents": [],
"propertyValues": [
{
"propertyName": "Integer-Property-Name",
"propertyValue": "90"
}
]
},
"operations": [
{
"sequenceNumber": 1,
"name": "SIT Op1",
"description": "Operation1 Description",
"plannedUnitNames": [
"Unit1_Line1"
],
"billOfMaterials": [
{
"materialName": "Pr2",
"unitOfMeasureName": "EA",
"quantity": 2,
"requiresConsumptionTracking": true,
"displayOrder": 1,
"propertyValues": [
{
"propertyName": "Integer-Property-Name",
"propertyValue": "80"
}
]
},
{
"materialName": "Pr3",
"unitOfMeasureName": "EA",
"quantity": 1,
"requiresConsumptionTracking": true,
"displayOrder": 1,
"propertyValues": []
},
{
"materialName": "Pr1",
"unitOfMeasureName": "EA",
"quantity": 3,
"requiresConsumptionTracking": true,
"displayOrder": 1,
"propertyValues": []
}
],
"documents": [
{
"displayName": "Document1",
"link": "http://google.com"
}
],
"propertyValues": [
{
"propertyName": "Integer-Property-Name",
"propertyValue": "901"
}
]
},
{
"sequenceNumber": 20,
"name": "op20",
"description": "Operation20",
"plannedUnitNames": [
"Unit1_Line1"
],
"billOfMaterials": [
{
"materialName": "pr_2",
"unitOfMeasureName": "EA",
"quantity": 6,
"requiresConsumptionTracking": true,
"displayOrder": 1,
"propertyValues": []
},
{
"materialName": "pr_1",
"unitOfMeasureName": "EA",
"quantity": 7,
"requiresConsumptionTracking": true,
"displayOrder": 1,
"propertyValues": []
}
],
"documents": [
{
"displayName": "Document1",
"link": "http://google.com"
}
],
"propertyValues": []
}
]
}
}
B2MML File that Contains a Work Order
Instead of a JSON work order import document (WOID), you can send all the details of a work order, process order, or material in a B2MML file.
If you want to send a B2MML document, you must also provide an XSL file with the mapping details. The ERP Transformation service uses this XSL file to convert the B2MML document to a JSON file.
Special Character | Escape String |
---|---|
& | & |
< | < |
> | > |
“ | " |
‘ | ' |
B2MML File that Contains a Work Order
<?xml version="1.0" encoding="UTF-8"?>
-<ProductionSchedule xmlns="http://www.wbf.org/xml/B2MML-V0401" xmlns:inp2="http://www.wbf.org/xml/B2MML-V0401">
<inp2:PublishedDate>2017-04-15T09:30:00</inp2:PublishedDate>
-<inp2:ProductionRequest>
<inp2:ID>32847248</inp2:ID>
<inp2:Description>32847248</inp2:Description>
<!-- 1st ProductProductionRuleID is for RouteDefinitionName and 2nd ProductProductionRuleId is for Revision. Commented to avoid conflict between route and operations -->
<!-- <inp2:ProductProductionRuleID>50488731</inp2:ProductProductionRuleID><inp2:ProductProductionRuleID>1</inp2:ProductProductionRuleID> -->
-<inp2:Location>
<inp2:EquipmentID>OU_D86085_US</inp2:EquipmentID>
<inp2:EquipmentElementLevel>Site</inp2:EquipmentElementLevel>
</inp2:Location>
-<inp2:SegmentRequirement>
<inp2:ID>000</inp2:ID>
<inp2:EarliestStartTime>2017-04-22T00:00:00</inp2:EarliestStartTime>
<inp2:LatestEndTime>2014-04-22T00:00:00</inp2:LatestEndTime>
-<inp2:ProductionParameter>
-<inp2:Parameter>
<inp2:ID>ProductCategory</inp2:ID>
-<inp2:Value>
<ValueString>CAPACITORSA</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</inp2:Value>
</inp2:Parameter>
</inp2:ProductionParameter>
-<inp2:ProductionParameter>
-<inp2:Parameter>
<inp2:ID>RouteTemplate</inp2:ID>
-<inp2:Value>
<ValueString>CapacitorRoute</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</inp2:Value>
</inp2:Parameter>
</inp2:ProductionParameter>
-<inp2:MaterialProducedRequirement>
<inp2:MaterialDefinitionID>GEEC3MA0025EMZI </inp2:MaterialDefinitionID>
<inp2:MaterialLotID>SERNUM1</inp2:MaterialLotID>
<inp2:MaterialLotID>SERNUM2</inp2:MaterialLotID>
<inp2:MaterialLotID>SERNUM3</inp2:MaterialLotID>
-<inp2:Quantity>
<inp2:QuantityString>3</inp2:QuantityString>
<inp2:DataType>float</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Quantity>
-<inp2:MaterialProducedRequirementProperty>
<inp2:ID>WOStatus</inp2:ID>
-<inp2:Value>
<inp2:ValueString>Released</inp2:ValueString>
<inp2:DataType>string</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialProducedRequirementProperty>
-<inp2:MaterialProducedRequirementProperty>
<inp2:ID>MaterialAvailabilityDate</inp2:ID>
-<inp2:Value>
<inp2:ValueString>2017-04-22T00:00:00</inp2:ValueString>
<inp2:DataType>DateTime</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialProducedRequirementProperty>
-<inp2:MaterialProducedRequirementProperty>
<inp2:ID>ParentOrder</inp2:ID>
-<inp2:Value>
<inp2:ValueString>SO2367523</inp2:ValueString>
<inp2:DataType>string</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialProducedRequirementProperty>
</inp2:MaterialProducedRequirement>
</inp2:SegmentRequirement>
-<inp2:SegmentRequirement>
<inp2:ID>10</inp2:ID>
<inp2:Description>Wind Pack</inp2:Description>
-<inp2:Location>
<inp2:EquipmentID>WIND</inp2:EquipmentID>
<inp2:EquipmentElementLevel>WorkCenter</inp2:EquipmentElementLevel>
</inp2:Location>
<inp2:EarliestStartTime>2017-04-15T12:00:00</inp2:EarliestStartTime>
<inp2:LatestEndTime>2017-04-15T12:15:00</inp2:LatestEndTime>
-<inp2:EquipmentRequirement>
-<inp2:Location>
<inp2:EquipmentID>FIX_LT_ADJ</inp2:EquipmentID>
<inp2:EquipmentElementLevel>WorkCell</inp2:EquipmentElementLevel>
</inp2:Location>
-<inp2:Quantity>
<inp2:QuantityString>1</inp2:QuantityString>
</inp2:Quantity>
</inp2:EquipmentRequirement>
-<inp2:ProductionParameter>
-<inp2:Parameter>
<inp2:ID>Priority</inp2:ID>
-<inp2:Value>
<ValueString>10</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure/>
</inp2:Value>
</inp2:Parameter>
</inp2:ProductionParameter>
-<inp2:ProductionParameter>
-<inp2:Parameter>
<inp2:ID>LaborTime</inp2:ID>
-<inp2:Value>
<ValueString>210</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure/>
</inp2:Value>
</inp2:Parameter>
</inp2:ProductionParameter>
-<inp2:ProductionParameter>
-<inp2:Parameter>
<inp2:ID>WorkInstruction</inp2:ID>
-<inp2:Value>
<ValueString>http:/grid.ge.com/485765/abc.pdf</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</inp2:Value>
<inp2:Description>Document 1</inp2:Description>
</inp2:Parameter>
</inp2:ProductionParameter>
-<inp2:ProductionParameter>
-<inp2:Parameter>
<inp2:ID>WorkInstruction</inp2:ID>
-<inp2:Value>
<ValueString>http:/grid.ge.com/485765/abc2.pdf</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</inp2:Value>
<inp2:Description>Document 2</inp2:Description>
</inp2:Parameter>
</inp2:ProductionParameter>
-<inp2:MaterialConsumedRequirement>
<inp2:MaterialDefinitionID>308A2463BD067</inp2:MaterialDefinitionID>
-<inp2:Quantity>
<inp2:QuantityString>1</inp2:QuantityString>
<inp2:DataType>float</inp2:DataType>
<inp2:UnitOfMeasure>EA</inp2:UnitOfMeasure>
</inp2:Quantity>
-<inp2:MaterialConsumedRequirementProperty>
<inp2:ID>GEDS_Drawing_Reference</inp2:ID>
-<inp2:Value>
<inp2:ValueString>1</inp2:ValueString>
<inp2:DataType>string</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialConsumedRequirementProperty>
-<inp2:MaterialConsumedRequirementProperty>
<inp2:ID>GEDS_BOM_Sequence</inp2:ID>
-<inp2:Value>
<inp2:ValueString>1</inp2:ValueString>
<inp2:DataType>integer</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialConsumedRequirementProperty>
-<inp2:MaterialConsumedRequirementProperty>
<inp2:ID>GEDS_Position</inp2:ID>
-<inp2:Value>
<inp2:ValueString>POS A</inp2:ValueString>
<inp2:DataType>string</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialConsumedRequirementProperty>
-<inp2:MaterialConsumedRequirementProperty>
<inp2:ID>GEDS_IsRequired</inp2:ID>
-<inp2:Value>
<inp2:ValueString>true</inp2:ValueString>
<inp2:DataType>boolean</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialConsumedRequirementProperty>
-<inp2:MaterialConsumedRequirementProperty>
<inp2:ID>GEDS_IsPickable</inp2:ID>
-<inp2:Value>
<inp2:ValueString>true</inp2:ValueString>
<inp2:DataType>boolean</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialConsumedRequirementProperty>
-<inp2:MaterialConsumedRequirementProperty>
<inp2:ID>GEDS_BOM_Location</inp2:ID>
-<inp2:Value>
<inp2:ValueString>A123</inp2:ValueString>
<inp2:DataType>string</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialConsumedRequirementProperty>
-<inp2:MaterialConsumedRequirementProperty>
<inp2:ID>GEDS_JumperSetting</inp2:ID>
-<inp2:Value>
<inp2:ValueString>PL01</inp2:ValueString>
<inp2:DataType>string</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialConsumedRequirementProperty>
</inp2:MaterialConsumedRequirement>
-<inp2:MaterialConsumedRequirement>
<inp2:MaterialDefinitionID>308A309800048</inp2:MaterialDefinitionID>
-<inp2:Quantity>
<inp2:QuantityString>1</inp2:QuantityString>
<inp2:DataType>float</inp2:DataType>
<inp2:UnitOfMeasure>EA</inp2:UnitOfMeasure>
</inp2:Quantity>
-<inp2:MaterialConsumedRequirementProperty>
<inp2:ID>GEDS_Drawing_Reference</inp2:ID>
-<inp2:Value>
<inp2:ValueString>3</inp2:ValueString>
<inp2:DataType>string</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialConsumedRequirementProperty>
-<inp2:MaterialConsumedRequirementProperty>
<inp2:ID>GEDS_BOM_Sequence</inp2:ID>
-<inp2:Value>
<inp2:ValueString>2</inp2:ValueString>
<inp2:DataType>integer</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialConsumedRequirementProperty>
-<inp2:MaterialConsumedRequirementProperty>
<inp2:ID>GEDS_IsRequired</inp2:ID>
-<inp2:Value>
<inp2:ValueString>false</inp2:ValueString>
<inp2:DataType>boolean</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialConsumedRequirementProperty>
</inp2:MaterialConsumedRequirement>
</inp2:SegmentRequirement>
-<inp2:SegmentRequirement>
<inp2:ID>20</inp2:ID>
<inp2:Description>Ultrasonic Weld</inp2:Description>
-<inp2:Location>
<inp2:EquipmentID>WIND_WELD</inp2:EquipmentID>
<inp2:EquipmentElementLevel>WorkCenter</inp2:EquipmentElementLevel>
</inp2:Location>
<inp2:EarliestStartTime>2017-04-15T12:00:00</inp2:EarliestStartTime>
<inp2:LatestEndTime>2017-04-15T12:15:00</inp2:LatestEndTime>
-<inp2:ProductionParameter>
-<inp2:Parameter>
<inp2:ID>Priority</inp2:ID>
-<inp2:Value>
<ValueString>20</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure/>
</inp2:Value>
</inp2:Parameter>
</inp2:ProductionParameter>
-<inp2:ProductionParameter>
-<inp2:Parameter>
<inp2:ID>LaborTime</inp2:ID>
-<inp2:Value>
<ValueString>100</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure/>
</inp2:Value>
</inp2:Parameter>
</inp2:ProductionParameter>
-<inp2:ProductionParameter>
-<inp2:Parameter>
<inp2:ID>WorkInstruction</inp2:ID>
-<inp2:Value>
<ValueString>http:/grid.ge.com/485765/abc.pdf</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</inp2:Value>
<inp2:Description>Document 1</inp2:Description>
</inp2:Parameter>
</inp2:ProductionParameter>
-<inp2:ProductionParameter>
-<inp2:Parameter>
<inp2:ID>WorkInstruction</inp2:ID>
-<inp2:Value>
<ValueString>http:/grid.ge.com/485765/abc2.pdf</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</inp2:Value>
<inp2:Description>Document 2</inp2:Description>
</inp2:Parameter>
</inp2:ProductionParameter>
-<inp2:MaterialConsumedRequirement>
<inp2:MaterialDefinitionID>ACCR</inp2:MaterialDefinitionID>
-<inp2:Quantity>
<inp2:QuantityString>33.78</inp2:QuantityString>
<inp2:DataType>float</inp2:DataType>
<inp2:UnitOfMeasure>LB</inp2:UnitOfMeasure>
</inp2:Quantity>
-<inp2:MaterialConsumedRequirementProperty>
<inp2:ID>GEDS_BOM_Sequence</inp2:ID>
-<inp2:Value>
<inp2:ValueString>1</inp2:ValueString>
<inp2:DataType>integer</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialConsumedRequirementProperty>
-<inp2:MaterialConsumedRequirementProperty>
<inp2:ID>GEDS_IsRequired</inp2:ID>
-<inp2:Value>
<inp2:ValueString>false</inp2:ValueString>
<inp2:DataType>boolean</inp2:DataType>
<inp2:UnitOfMeasure/>
</inp2:Value>
</inp2:MaterialConsumedRequirementProperty>
</inp2:MaterialConsumedRequirement>
</inp2:SegmentRequirement>
</inp2:ProductionRequest>
</ProductionSchedule>
XSL File to Map a Work Order
This topic provides a sample XSL file that is used to map a work order.
XSL File to Map a Work Order
<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet xmlns:erp="http://sample.data" xmlns:inp2="http://www.wbf.org/xml/B2MML-V0401" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent="yes" method="xml" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*"/>
<!-- For external lookup table -->
<!-- <xsl:variable name='unitOfMeasure' select='document("lookup.xml")/uoms/unit'/> -->
<xsl:variable select="document("")/xsl:stylesheet/erp:uoms/unit" name="unitOfMeasure"/>
-<xsl:template match="/inp2:ProductionSchedule">
-<ProductionSchedule>
<Description/>
-<Location>
<EquipmentID/>
<EquipmentElementLevel/>
</Location>
-<PublishedDate>
<xsl:value-of select="inp2:PublishedDate"/>
</PublishedDate>
-<ProductionRequest>
<xsl:variable select="inp2:ProductionRequest" name="ProductionRequest"/>
<xsl:variable select="$ProductionRequest/inp2:ID" name="ProductionRequestID"/>
<xsl:variable select="$ProductionRequest/inp2:Description" name="ProductionRequestDescription"/>
<xsl:variable select="$ProductionRequest/inp2:Location" name="ProductionRequestLocation"/>
<xsl:variable select="$ProductionRequest/inp2:SegmentRequirement" name="SegmentRequirement"/>
-<ID>
<xsl:value-of select="$ProductionRequestID"/>
</ID>
-<Description>
<xsl:value-of select="$ProductionRequestDescription"/>
</Description>
-<xsl:for-each select="$ProductionRequest/inp2:ProductProductionRuleID">
-<ProductProductionRuleID>
<xsl:value-of select="."/>
</ProductProductionRuleID>
</xsl:for-each>
-<Location>
-<EquipmentID>
<xsl:value-of select="$ProductionRequestLocation/inp2:EquipmentID"/>
</EquipmentID>
-<EquipmentElementLevel>
<xsl:value-of select="$ProductionRequestLocation/inp2:EquipmentElementLevel"/>
</EquipmentElementLevel>
</Location>
-<xsl:for-each select="$SegmentRequirement[inp2:ID = '000']">
-<StartTime>
<xsl:value-of select="inp2:EarliestStartTime"/>
</StartTime>
-<EndTime>
<xsl:value-of select="inp2:LatestEndTime"/>
</EndTime>
</xsl:for-each>
-<Priority>
-<xsl:choose>
-<xsl:when test="not($ProductionRequest/inp2:Priority)">
<xsl:text>0</xsl:text>
</xsl:when>
-<xsl:otherwise>
<xsl:value-of select="$ProductionRequest/inp2:Priority"/>
</xsl:otherwise>
</xsl:choose>
</Priority>
-<xsl:for-each select="$SegmentRequirement">
-<SegmentRequirement>
-<ID>
-<xsl:choose>
-<xsl:when test="inp2:ID = 000">
<xsl:text>ROUTE</xsl:text>
</xsl:when>
-<xsl:otherwise>
<xsl:value-of select="inp2:ID"/>
</xsl:otherwise>
</xsl:choose>
</ID>
<ProductSegmentID/>
<ProcessSegmentID/>
-<Description>
<xsl:value-of select="inp2:Description"/>
</Description>
-<Location>
-<EquipmentID>
<xsl:value-of select="inp2:Location/inp2:EquipmentID"/>
</EquipmentID>
-<EquipmentElementLevel>
<xsl:value-of select="inp2:Location/inp2:EquipmentElementLevel"/>
</EquipmentElementLevel>
</Location>
-<EarliestStartTime>
<xsl:value-of select="inp2:EarliestStartTime"/>
</EarliestStartTime>
-<LatestEndTime>
<xsl:value-of select="inp2:LatestEndTime"/>
</LatestEndTime>
-<xsl:for-each select="inp2:ProductionParameter">
-<ProductionParameter>
<xsl:variable select="inp2:Parameter" name="Parameter"/>
<xsl:variable select="$Parameter/inp2:Value" name="ParameterValue"/>
-<Parameter>
-<ID>
<xsl:apply-templates select="$Parameter/inp2:ID"/>
<!-- <xsl:value-of select="$Parameter/inp2:ID" /> -->
</ID>
-<Value>
-<ValueString>
<xsl:value-of select="$ParameterValue/inp2:ValueString"/>
</ValueString>
-<DataType>
-<xsl:choose>
-<xsl:when test="not($ParameterValue/inp2:DataType)">
<xsl:text>string</xsl:text>
</xsl:when>
-<xsl:otherwise>
<xsl:value-of select="$ParameterValue/inp2:DataType"/>
</xsl:otherwise>
</xsl:choose>
</DataType>
-<UnitOfMeasure>
<xsl:value-of select="$ParameterValue/inp2:UnitOfMeasure"/>
</UnitOfMeasure>
</Value>
-<Description>
<xsl:value-of select="$Parameter/inp2:Description"/>
</Description>
</Parameter>
</ProductionParameter>
</xsl:for-each>
-<xsl:for-each select="inp2:EquipmentRequirement">
-<EquipmentRequirement>
-<Location>
-<EquipmentID>
<xsl:value-of select="inp2:Location/inp2:EquipmentID"/>
</EquipmentID>
-<EquipmentElementLevel>
<xsl:value-of select="inp2:Location/inp2:EquipmentElementLevel"/>
</EquipmentElementLevel>
</Location>
</EquipmentRequirement>
</xsl:for-each>
-<MaterialProducedRequirement>
<xsl:variable select="inp2:MaterialProducedRequirement" name="MaterialProducedRequirement"/>
<xsl:variable select="$MaterialProducedRequirement/inp2:Quantity" name="Quantity"/>
<xsl:variable select="$MaterialProducedRequirement/inp2:MaterialProducedRequirementProperty" name="MaterialProducedRequirementProperty"/>
<MaterialClassID/>
-<MaterialDefinitionID>
<xsl:value-of select="$MaterialProducedRequirement/inp2:MaterialDefinitionID"/>
</MaterialDefinitionID>
-<xsl:for-each select="$MaterialProducedRequirement/inp2:MaterialLotID">
-<MaterialLotID>
<xsl:value-of select="."/>
</MaterialLotID>
</xsl:for-each>
<MaterialSubLotID/>
<Description/>
-<Quantity>
-<QuantityString>
<xsl:value-of select="$Quantity/inp2:QuantityString"/>
</QuantityString>
-<DataType>
-<xsl:choose>
-<xsl:when test="not($Quantity/inp2:DataType)">
<xsl:text>string</xsl:text>
</xsl:when>
-<xsl:otherwise>
<xsl:value-of select="$Quantity/inp2:DataType"/>
</xsl:otherwise>
</xsl:choose>
</DataType>
-<UnitOfMeasure>
<xsl:value-of select="$Quantity/inp2:UnitOfMeasure"/>
</UnitOfMeasure>
</Quantity>
-<xsl:for-each select="$MaterialProducedRequirementProperty">
-<MaterialProducedRequirementProperty>
-<ID>
<xsl:value-of select="inp2:ID"/>
</ID>
<Description> </Description>
-<xsl:for-each select="inp2:Value">
-<Value>
-<ValueString>
<xsl:value-of select="inp2:ValueString"/>
</ValueString>
-<DataType>
<xsl:value-of select="inp2:DataType"/>
</DataType>
-<UnitOfMeasure>
<xsl:value-of select="inp2:UnitOfMeasure"/>
</UnitOfMeasure>
</Value>
</xsl:for-each>
<!-- <Quantity></Quantity> -->
</MaterialProducedRequirementProperty>
</xsl:for-each>
</MaterialProducedRequirement>
-<xsl:for-each select="inp2:MaterialConsumedRequirement">
-<MaterialConsumedRequirement>
<MaterialClassID/>
-<MaterialDefinitionID>
<xsl:value-of select="inp2:MaterialDefinitionID"/>
</MaterialDefinitionID>
-<xsl:for-each select="inp2:MaterialLotID">
-<MaterialLotID>
<xsl:value-of select="."/>
</MaterialLotID>
</xsl:for-each>
<MaterialSubLotID/>
<Description/>
-<Quantity>
-<QuantityString>
<xsl:value-of select="inp2:Quantity/inp2:QuantityString"/>
</QuantityString>
-<DataType>
-<xsl:choose>
-<xsl:when test="not(inp2:Quantity/inp2:DataType)">
<xsl:text>string</xsl:text>
</xsl:when>
-<xsl:otherwise>
<xsl:value-of select="inp2:Quantity/inp2:DataType"/>
</xsl:otherwise>
</xsl:choose>
</DataType>
-<UnitOfMeasure>
<xsl:value-of select="inp2:Quantity/inp2:UnitOfMeasure"/>
</UnitOfMeasure>
</Quantity>
-<xsl:for-each select="inp2:MaterialConsumedRequirementProperty">
<xsl:variable select="inp2:Value" name="value"/>
<xsl:variable select="$value/inp2:UnitOfMeasure" name="uomname"/>
<xsl:variable select="$unitOfMeasure[@name=$uomname]/@abbr" name="mapped-uom"/>
-<MaterialConsumedRequirementProperty>
-<ID>
<!-- <xsl:value-of select="inp2:ID" /> -->
<xsl:apply-templates select="inp2:ID"/>
</ID>
<Description/>
-<Value>
-<ValueString>
<xsl:value-of select="$value/inp2:ValueString"/>
</ValueString>
-<DataType>
-<xsl:choose>
-<xsl:when test="not($value/inp2:DataType)">
<xsl:text>string</xsl:text>
</xsl:when>
-<xsl:otherwise>
<xsl:value-of select="$value/inp2:DataType"/>
</xsl:otherwise>
</xsl:choose>
</DataType>
-<UnitOfMeasure>
<xsl:value-of select="$mapped-uom"/>
-<xsl:if test="not($mapped-uom)">
<xsl:value-of select="$uomname"/>
</xsl:if>
</UnitOfMeasure>
</Value>
</MaterialConsumedRequirementProperty>
</xsl:for-each>
</MaterialConsumedRequirement>
</xsl:for-each>
</SegmentRequirement>
</xsl:for-each>
</ProductionRequest>
</ProductionSchedule>
</xsl:template>
-<erp:uoms>
<unit name="EACH" abbr="EA"/>
<unit name="CENTIMETERS" abbr="CM"/>
<unit name="KILOGRAMS" abbr="KG"/>
</erp:uoms>
<xsl:template match="inp2:ID/text()[.='GEDS_IsRequired']">IS_REQUIRES_CONSUMPTION </xsl:template>
<xsl:template match="inp2:ID/text()[.='GEDS_BOM_Sequence']">BOM_SEQUENCE </xsl:template>
<xsl:template match="inp2:Parameter/inp2:ID/text()[.='WorkInstruction']">DOCUMENTS </xsl:template>
</xsl:stylesheet>
Standard B2MML File for a Work Order
This topic provides an example of a standard B2MML file that contains the details of a work order.
Standard B2MML File for a Work Order
<?xml version="1.0"?>
-<ProductionSchedule xmlns:erp="http://sample.data" xmlns:inp2="http://www.wbf.org/xml/B2MML-V0401">
<Description/>
-<Location>
<EquipmentID/>
<EquipmentElementLevel/>
</Location>
<PublishedDate>2017-04-15T09:30:00</PublishedDate>
-<ProductionRequest>
<ID>32847248</ID>
<Description>32847248</Description>
-<Location>
<EquipmentID>OU_D86085_US</EquipmentID>
<EquipmentElementLevel>Site</EquipmentElementLevel>
</Location>
<StartTime>2017-04-22T00:00:00</StartTime>
<EndTime>2014-04-22T00:00:00</EndTime>
<Priority>0</Priority>
-<SegmentRequirement>
<ID>ROUTE</ID>
<ProductSegmentID/>
<ProcessSegmentID/>
<Description/>
-<Location>
<EquipmentID/>
<EquipmentElementLevel/>
</Location>
<EarliestStartTime>2017-04-22T00:00:00</EarliestStartTime>
<LatestEndTime>2014-04-22T00:00:00</LatestEndTime>
-<ProductionParameter>
-<Parameter>
<ID>ProductCategory</ID>
-<Value>
<ValueString>CAPACITORSA</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
<Description/>
</Parameter>
</ProductionParameter>
-<ProductionParameter>
-<Parameter>
<ID>RouteTemplate</ID>
-<Value>
<ValueString>CapacitorRoute</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
<Description/>
</Parameter>
</ProductionParameter>
-<MaterialProducedRequirement>
<MaterialClassID/>
<MaterialDefinitionID>GEEC3MA0025EMZI </MaterialDefinitionID>
<MaterialLotID>SERNUM1</MaterialLotID>
<MaterialLotID>SERNUM2</MaterialLotID>
<MaterialLotID>SERNUM3</MaterialLotID>
<MaterialSubLotID/>
<Description/>
-<Quantity>
<QuantityString>3</QuantityString>
<DataType>float</DataType>
<UnitOfMeasure/>
</Quantity>
-<MaterialProducedRequirementProperty>
<ID>WOStatus</ID>
<Description/>
-<Value>
<ValueString>Released</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
</MaterialProducedRequirementProperty>
-<MaterialProducedRequirementProperty>
<ID>MaterialAvailabilityDate</ID>
<Description/>
-<Value>
<ValueString>2017-04-22T00:00:00</ValueString>
<DataType>DateTime</DataType>
<UnitOfMeasure/>
</Value>
</MaterialProducedRequirementProperty>
-<MaterialProducedRequirementProperty>
<ID>ParentOrder</ID>
<Description/>
-<Value>
<ValueString>SO2367523</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
</MaterialProducedRequirementProperty>
</MaterialProducedRequirement>
</SegmentRequirement>
-<SegmentRequirement>
<ID>10</ID>
<ProductSegmentID/>
<ProcessSegmentID/>
<Description>Wind Pack</Description>
-<Location>
<EquipmentID>WIND</EquipmentID>
<EquipmentElementLevel>WorkCenter</EquipmentElementLevel>
</Location>
<EarliestStartTime>2017-04-15T12:00:00</EarliestStartTime>
<LatestEndTime>2017-04-15T12:15:00</LatestEndTime>
-<ProductionParameter>
-<Parameter>
<ID>Priority</ID>
-<Value>
<ValueString>10</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure/>
</Value>
<Description/>
</Parameter>
</ProductionParameter>
-<ProductionParameter>
-<Parameter>
<ID>LaborTime</ID>
-<Value>
<ValueString>210</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure/>
</Value>
<Description/>
</Parameter>
</ProductionParameter>
-<ProductionParameter>
-<Parameter>
<ID>DOCUMENTS</ID>
-<Value>
<ValueString>http:/grid.ge.com/485765/abc.pdf</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
<Description>Document 1</Description>
</Parameter>
</ProductionParameter>
-<ProductionParameter>
-<Parameter>
<ID>DOCUMENTS</ID>
-<Value>
<ValueString>http:/grid.ge.com/485765/abc2.pdf</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
<Description>Document 2</Description>
</Parameter>
</ProductionParameter>
-<EquipmentRequirement>
-<Location>
<EquipmentID>FIX_LT_ADJ</EquipmentID>
<EquipmentElementLevel>WorkCell</EquipmentElementLevel>
</Location>
</EquipmentRequirement>
-<MaterialProducedRequirement>
<MaterialClassID/>
<MaterialDefinitionID/>
<MaterialSubLotID/>
<Description/>
-<Quantity>
<QuantityString/>
<DataType>string</DataType>
<UnitOfMeasure/>
</Quantity>
</MaterialProducedRequirement>
-<MaterialConsumedRequirement>
<MaterialClassID/>
<MaterialDefinitionID>308A2463BD067</MaterialDefinitionID>
<MaterialSubLotID/>
<Description/>
-<Quantity>
<QuantityString>1</QuantityString>
<DataType>float</DataType>
<UnitOfMeasure>EA</UnitOfMeasure>
</Quantity>
-<MaterialConsumedRequirementProperty>
<ID>GEDS_Drawing_Reference</ID>
<Description/>
-<Value>
<ValueString>1</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
</MaterialConsumedRequirementProperty>
-<MaterialConsumedRequirementProperty>
<ID>BOM_SEQUENCE</ID>
<Description/>
-<Value>
<ValueString>1</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure/>
</Value>
</MaterialConsumedRequirementProperty>
-<MaterialConsumedRequirementProperty>
<ID>GEDS_Position</ID>
<Description/>
-<Value>
<ValueString>POS A</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
</MaterialConsumedRequirementProperty>
-<MaterialConsumedRequirementProperty>
<ID>IS_REQUIRES_CONSUMPTION</ID>
<Description/>
-<Value>
<ValueString>true</ValueString>
<DataType>boolean</DataType>
<UnitOfMeasure/>
</Value>
</MaterialConsumedRequirementProperty>
-<MaterialConsumedRequirementProperty>
<ID>GEDS_IsPickable</ID>
<Description/>
-<Value>
<ValueString>true</ValueString>
<DataType>boolean</DataType>
<UnitOfMeasure/>
</Value>
</MaterialConsumedRequirementProperty>
-<MaterialConsumedRequirementProperty>
<ID>GEDS_BOM_Location</ID>
<Description/>
-<Value>
<ValueString>A123</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
</MaterialConsumedRequirementProperty>
-<MaterialConsumedRequirementProperty>
<ID>GEDS_JumperSetting</ID>
<Description/>
-<Value>
<ValueString>PL01</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
</MaterialConsumedRequirementProperty>
</MaterialConsumedRequirement>
-<MaterialConsumedRequirement>
<MaterialClassID/>
<MaterialDefinitionID>308A309800048</MaterialDefinitionID>
<MaterialSubLotID/>
<Description/>
-<Quantity>
<QuantityString>1</QuantityString>
<DataType>float</DataType>
<UnitOfMeasure>EA</UnitOfMeasure>
</Quantity>
-<MaterialConsumedRequirementProperty>
<ID>GEDS_Drawing_Reference</ID>
<Description/>
-<Value>
<ValueString>3</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
</MaterialConsumedRequirementProperty>
-<MaterialConsumedRequirementProperty>
<ID>BOM_SEQUENCE</ID>
<Description/>
-<Value>
<ValueString>2</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure/>
</Value>
</MaterialConsumedRequirementProperty>
-<MaterialConsumedRequirementProperty>
<ID>IS_REQUIRES_CONSUMPTION</ID>
<Description/>
-<Value>
<ValueString>false</ValueString>
<DataType>boolean</DataType>
<UnitOfMeasure/>
</Value>
</MaterialConsumedRequirementProperty>
</MaterialConsumedRequirement>
</SegmentRequirement>
-<SegmentRequirement>
<ID>20</ID>
<ProductSegmentID/>
<ProcessSegmentID/>
<Description>Ultrasonic Weld</Description>
-<Location>
<EquipmentID>WIND_WELD</EquipmentID>
<EquipmentElementLevel>WorkCenter</EquipmentElementLevel>
</Location>
<EarliestStartTime>2017-04-15T12:00:00</EarliestStartTime>
<LatestEndTime>2017-04-15T12:15:00</LatestEndTime>
-<ProductionParameter>
-<Parameter>
<ID>Priority</ID>
-<Value>
<ValueString>20</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure/>
</Value>
<Description/>
</Parameter>
</ProductionParameter>
-<ProductionParameter>
-<Parameter>
<ID>LaborTime</ID>
-<Value>
<ValueString>100</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure/>
</Value>
<Description/>
</Parameter>
</ProductionParameter>
-<ProductionParameter>
-<Parameter>
<ID>DOCUMENTS</ID>
-<Value>
<ValueString>http:/grid.ge.com/485765/abc.pdf</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
<Description>Document 1</Description>
</Parameter>
</ProductionParameter>
-<ProductionParameter>
-<Parameter>
<ID>DOCUMENTS</ID>
-<Value>
<ValueString>http:/grid.ge.com/485765/abc2.pdf</ValueString>
<DataType>string</DataType>
<UnitOfMeasure/>
</Value>
<Description>Document 2</Description>
</Parameter>
</ProductionParameter>
-<MaterialProducedRequirement>
<MaterialClassID/>
<MaterialDefinitionID/>
<MaterialSubLotID/>
<Description/>
-<Quantity>
<QuantityString/>
<DataType>string</DataType>
<UnitOfMeasure/>
</Quantity>
</MaterialProducedRequirement>
-<MaterialConsumedRequirement>
<MaterialClassID/>
<MaterialDefinitionID>ACCR</MaterialDefinitionID>
<MaterialSubLotID/>
<Description/>
-<Quantity>
<QuantityString>33.78</QuantityString>
<DataType>float</DataType>
<UnitOfMeasure>LB</UnitOfMeasure>
</Quantity>
-<MaterialConsumedRequirementProperty>
<ID>BOM_SEQUENCE</ID>
<Description/>
-<Value>
<ValueString>1</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure/>
</Value>
</MaterialConsumedRequirementProperty>
-<MaterialConsumedRequirementProperty>
<ID>IS_REQUIRES_CONSUMPTION</ID>
<Description/>
-<Value>
<ValueString>false</ValueString>
<DataType>boolean</DataType>
<UnitOfMeasure/>
</Value>
</MaterialConsumedRequirementProperty>
</MaterialConsumedRequirement>
</SegmentRequirement>
</ProductionRequest>
</ProductionSchedule>