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.

Note: When an XML file is processed, some of the special characters are omitted. To prevent this issue, use the escape strings as specified in the following table.
Special CharacterEscape String
&&amp;
<&lt;
>&gt;
&quot;
&apos;

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>