Custom B2MML Process Order Import Document (POID)
Instead of a JSON format, you can send a POID in one of the following XML formats:
- Standard B2MML
- Custom B2MML
When you use a custom B2MML, you must first provide an XSL file that contains the mapping information. This topic provides custom B2MML samples of a POID for each schema version. Refer to XSL File to Map a Process Order for a sample XSL file to map the B2MML samples. If, however, you want to use a standard B2MML format for the POID, refer to Standard B2MML Process Order Import Document (POID).
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 Character | Escape String |
---|---|
& | & |
< | < |
> | > |
“ | " |
‘ | ' |
Custom B2MML POID Schema Version 4
Schema version 4 supports a process order inbound message that also includes the
following properties:
- plannedStartDate
- plannedEndDate
- plannedQuantity
- status
Custom B2MML POID Schema Version 4 - create
<?xml version="1.0" encoding="UTF-8"?>
<ProductionSchedule xmlns:Extended="http://www.wbf.org/xml/B2MML-V0401-AllExtensions">
<ProductionRequest>
<ID>ProcessOrder_XML_v4</ID>
<ProductProductionRuleID>REG_JUICE_FORMULA</ProductProductionRuleID>
<Priority>1</Priority>
<SegmentRequirement>
<ID>1</ID>
<EarliestStartTime>2021-11-25T21:50:58</EarliestStartTime>
<LatestEndTime>2021-11-26T00:00:00</LatestEndTime>
<EquipmentRequirement>
<EquipmentID>JuiceLine</EquipmentID>
</EquipmentRequirement>
<ProductionParameter>
<Parameter>
<ID>path</ID>
<Value>
<ValueString>Path1</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>path is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>productionRate</ID>
<Value>
<ValueString>33.89</ValueString>
<DataType>double</DataType>
<UnitOfMeasure />
</Value>
<Description>productionRate is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>blockNumber</ID>
<Value>
<ValueString>BN-123</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>blockNumber is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>userGeneral1</ID>
<Value>
<ValueString>UG-1</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>blockNumber is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>userGeneral2</ID>
<Value>
<ValueString>UG-2</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>userGeneral2 is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>userGeneral3</ID>
<Value>
<ValueString>U3G-</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>userGeneral3 is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>extendedInfo</ID>
<Value>
<ValueString>Extended Info</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>extendedInfo is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>status</ID>
<Value>
<ValueString>pending</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>status is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>Process_Prop_Int</ID>
<Value>
<ValueString>123</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
<Description>Process_Prop_Int is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>Process_Prop_String</ID>
<Value>
<ValueString>test</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>Process_Prop_String is string param</Description>
</Parameter>
</ProductionParameter>
<MaterialProducedRequirement>
<MaterialDefinitionID>PulpyJuice</MaterialDefinitionID>
<Quantity>
<QuantityString>300</QuantityString>
<DataType>float</DataType>
<UnitOfMeasure>cm</UnitOfMeasure>
</Quantity>
</MaterialProducedRequirement>
</SegmentRequirement>
</ProductionRequest>
<Extended:SchemaVersion>4</Extended:SchemaVersion>
</ProductionSchedule>
Custom B2MML POID Schema Version 4 - update
<?xml version="1.0" encoding="UTF-8"?>
<ProductionSchedule xmlns:Extended="http://www.wbf.org/xml/B2MML-V0401-AllExtensions">
<ProductionRequest>
<ID>ProcessOrder_XML_v4</ID>
<ProductProductionRuleID>REG_JUICE_FORMULA</ProductProductionRuleID>
<Priority>0</Priority>
<SegmentRequirement>
<ID>1</ID>
<EarliestStartTime>2021-11-25T21:50:58.058Z</EarliestStartTime>
<LatestEndTime>2021-11-26T00:00:00.000Z</LatestEndTime>
<EquipmentRequirement>
<EquipmentID>JuiceLine</EquipmentID>
</EquipmentRequirement>
<ProductionParameter>
<Parameter>
<ID>path</ID>
<Value>
<ValueString>path1</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>Path1 is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>status</ID>
<Value>
<ValueString>Complete</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>status is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>productionRate</ID>
<Value>
<ValueString>null</ValueString>
<DataType>double</DataType>
<UnitOfMeasure />
</Value>
<Description>productionRate is double param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>blockNumber</ID>
<Value>
<ValueString>null</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>blockNumber is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>userGeneral1</ID>
<Value>
<ValueString>null</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>userGeneral1 is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>userGeneral2</ID>
<Value>
<ValueString>null</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>userGeneral2 is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>userGeneral3</ID>
<Value>
<ValueString>null</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>userGeneral3 is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>extendedInfo</ID>
<Value>
<ValueString>null</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>extendedInfo is string param</Description>
</Parameter>
</ProductionParameter>
<MaterialProducedRequirement>
<MaterialDefinitionID>null</MaterialDefinitionID>
<Quantity>
<QuantityString>null</QuantityString>
<DataType>float</DataType>
<UnitOfMeasure>cm</UnitOfMeasure>
</Quantity>
</MaterialProducedRequirement>
</SegmentRequirement>
</ProductionRequest>
<Extended:SchemaVersion>4</Extended:SchemaVersion>
</ProductionSchedule>
Custom B2MML POID Schema Version 3
Schema version 3 supports a process order inbound message that also includes the
following properties:
- userGeneral1, userGeneral2 and userGeneral3
- extendedInfo
- blockNumber
- productionRate
- path (optional)
- Supports binding a process order to a line that is configured with multiple paths; if supplied, and the path is on the specified line, the process order is bound to the path.
<?xml version="1.0" encoding="UTF-8"?>
<ProductionSchedule xmlns:Extended="http://www.wbf.org/xml/B2MML-V0401-AllExtensions">
<ProductionRequest>
<ID>ProcessOrder_XML_v3</ID>
<ProductProductionRuleID>REG_JUICE_FORMULA</ProductProductionRuleID>
<Location>
<EquipmentID>JuiceLine</EquipmentID>
<EquipmentElementLevel>Site</EquipmentElementLevel>
</Location>
<Priority>0</Priority>
<SegmentRequirement>
<ID>0000000112841171</ID>
<EarliestStartTime>2020-12-08T09:22:17.017Z</EarliestStartTime>
<LatestEndTime>2020-12-09T09:22:17.017Z</LatestEndTime>
<ProductionParameter>
<Parameter>
<ID>path</ID>
<Value>
<ValueString>Path1</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>Path1 is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>productionRate</ID>
<Value>
<ValueString>33.89</ValueString>
<DataType>double</DataType>
<UnitOfMeasure />
</Value>
<Description>productionRate is double param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>blockNumber</ID>
<Value>
<ValueString>BN-123</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>blockNumber is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>userGeneral1</ID>
<Value>
<ValueString>UG-1</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>userGeneral1 is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>userGeneral2</ID>
<Value>
<ValueString>UG-2</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>userGeneral2 is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>userGeneral3</ID>
<Value>
<ValueString>UG-3</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>userGeneral3 is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>extendedInfo</ID>
<Value>
<ValueString>Extended Info</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>extendedInfo is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>Process_Prop_Int</ID>
<Value>
<ValueString>123</ValueString>
<DataType>integer</DataType>
<UnitOfMeasure />
</Value>
<Description>Process_Prop_Int is string param</Description>
</Parameter>
</ProductionParameter>
<ProductionParameter>
<Parameter>
<ID>Process_Prop_String</ID>
<Value>
<ValueString>someliteral</ValueString>
<DataType>string</DataType>
<UnitOfMeasure />
</Value>
<Description>Process_Prop_String is string param</Description>
</Parameter>
</ProductionParameter>
<MaterialProducedRequirement>
<MaterialDefinitionID>PulpyJuice</MaterialDefinitionID>
<Quantity>
<QuantityString>300</QuantityString>
<DataType>float</DataType>
<UnitOfMeasure>cm</UnitOfMeasure>
</Quantity>
</MaterialProducedRequirement>
</SegmentRequirement>
</ProductionRequest>
<Extended:SchemaVersion>3</Extended:SchemaVersion>
</ProductionSchedule>
Custom B2MML POID Schema Version 2
Using schema version 2, you can override values of the process order properties. In addition, providing the production line is not mandatory, and you can include production lines with multiple execution paths. When a production line has multiple execution paths, the process order becomes an unbound process order. You can associate a production line with an execution path using Plant Applications Administrator or Plant Applications Web Client; or you can leave it as is.<?xml version="1.0" encoding="UTF-8"?>
-<ProductionSchedule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns3="http://www.wbf.org/xml/B2MML-V0401" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:Extended="http://www.wbf.org/xml/B2MML-V0401-AllExtensions">
<ID>0000000112841171</ID>
-<ProductionRequest>
<ProductProductionRuleID>REG_JUICE_FORMULA</ProductProductionRuleID>
<ID>POIDXML-100-2020</ID>
-<SegmentRequirement>
<LatestEndTime>2020-12-09T09:22:17.825Z</LatestEndTime>
<EarliestStartTime>2020-12-08T09:22:17.825Z</EarliestStartTime>
-<MaterialProducedRequirement>
-<Quantity>
<UnitOfMeasure></UnitOfMeasure>
<DataType>float</DataType>
<QuantityString>234.89</QuantityString>
</Quantity>
<MaterialDefinitionID>PulpyJuice</MaterialDefinitionID>
</MaterialProducedRequirement>
-<ProductionParameter>
-<Parameter>
<ID>Process_Prop_Int</ID>
-<Value>
<ValueString>123</ValueString>
<DataType>integer</DataType>
</Value>
<Description>Process_Prop2_Int is int param</Description>
</Parameter>
</ProductionParameter>
-<ProductionParameter>
-<Parameter>
<ID>Process_Prop_String</ID>
-<Value>
<ValueString>someliteral</ValueString>
<DataType>string</DataType>
</Value>
<Description>Process_Prop1 is string param</Description>
</Parameter>
</ProductionParameter>
</SegmentRequirement>
</ProductionRequest>
<Extended:SchemaVersion>2</Extended:SchemaVersion>
</ProductionSchedule>
Custom B2MML POID Schema Version 1
Using schema version 1, you can import process orders containing information about the planned quantity, material, production line, and planned start and end dates.<?xml version="1.0" encoding="UTF-8"?>
-<ProductionSchedule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns3="http://www.wbf.org/xml/B2MML-V0401" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:Extended="http://www.wbf.org/xml/B2MML-V0401-AllExtensions">
<ID>0000000112841171</ID>
-<ProductionRequest>
<ProductProductionRuleID>REG_JUICE_FORMULA</ProductProductionRuleID>
<ID>POIDXML-100-2020</ID>
-<SegmentRequirement>
<LatestEndTime>2020-12-09T09:22:17.825Z</LatestEndTime>
<EarliestStartTime>2020-12-08T09:22:17.825Z</EarliestStartTime>
-<EquipmentRequirement>
<EquipmentID>JiuceLine</EquipmentID>
</EquipmentRequirement>
-<MaterialProducedRequirement>
-<Quantity>
<UnitOfMeasure></UnitOfMeasure>
<DataType>float</DataType>
<QuantityString>10.5</QuantityString>
</Quantity>
<MaterialDefinitionID>PulpyJuice</MaterialDefinitionID>
</MaterialProducedRequirement>
<ID>1</ID>
-<EquipmentRequirement>
<EquipmentID>Test Line1</EquipmentID>
</EquipmentRequirement>
-<EquipmentRequirement>
<EquipmentID>Test Line1</EquipmentID>
</EquipmentRequirement>
</SegmentRequirement>
</ProductionRequest>
-<Location>
<EquipmentElementLevel>Site</EquipmentElementLevel>
<EquipmentID>0288</EquipmentID>
-<Location>
<EquipmentElementLevel>Area</EquipmentElementLevel>
<EquipmentID>193</EquipmentID>
</Location>
</Location>
<Extended:SchemaVersion>1</Extended:SchemaVersion>
</ProductionSchedule>