XSL File to Map a Process Order
This topic provides a sample XSL file that is used to map a process order.
XSL File to Map a Process Order
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="ProductionSchedule">
<ProductionSchedule>
<ProductionRequest>
<xsl:variable select="ProductionRequest" name="ProductionRequest"/>
<xsl:variable select="Location" name="ProductionRequestLocation"/>
<xsl:variable select="$ProductionRequest/SegmentRequirement" name="SegmentRequirement"/>
<ID>
<xsl:value-of select="$ProductionRequest/ID"/>
</ID>
<ProductProductionRuleID>
<xsl:value-of select="$ProductionRequest/ProductProductionRuleID"/>
</ProductProductionRuleID>
<Location>
<EquipmentID>
<xsl:value-of select="$SegmentRequirement[ID = 1]/EquipmentRequirement/EquipmentID"/>
</EquipmentID>
<EquipmentElementLevel>
<xsl:value-of select="$ProductionRequestLocation/EquipmentElementLevel"/>
</EquipmentElementLevel>
</Location>
<Priority>0</Priority>
<SegmentRequirement>
<ID>
<xsl:value-of select="ID"/>
</ID>
<xsl:if test="$SegmentRequirement/EarliestStartTime">
<EarliestStartTime>
<xsl:value-of select="$SegmentRequirement/EarliestStartTime"/>
</EarliestStartTime>
</xsl:if>
<xsl:if test="$SegmentRequirement/LatestEndTime">
<LatestEndTime>
<xsl:value-of select="$SegmentRequirement/LatestEndTime"/>
</LatestEndTime>
</xsl:if>
<EquipmentRequirement>
<EquipmentID>
<xsl:value-of select="$SegmentRequirement/EquipmentRequirement/EquipmentID"/>
</EquipmentID>
</EquipmentRequirement>
<MaterialProducedRequirement>
<xsl:variable select="$SegmentRequirement/MaterialProducedRequirement" name="MaterialProducedRequirement"/>
<xsl:variable select="$SegmentRequirement/MaterialProducedRequirement/Quantity" name="Quantity"/>
<xsl:variable select="$MaterialProducedRequirement/MaterialProducedRequirementProperty" name="MaterialProducedRequirementProperty"/>
<MaterialDefinitionID>
<xsl:value-of select="$MaterialProducedRequirement/MaterialDefinitionID"/>
</MaterialDefinitionID>
<Quantity>
<QuantityString>
<xsl:value-of select="$Quantity/QuantityString"/>
</QuantityString>
<DataType>
<xsl:value-of select="$Quantity/DataType"/>
</DataType>
<UnitOfMeasure>
<xsl:value-of select="$Quantity/UnitOfMeasure"/>
</UnitOfMeasure>
</Quantity>
</MaterialProducedRequirement>
<xsl:for-each select="$SegmentRequirement/MaterialConsumedRequirement">
<MaterialConsumedRequirement>
<xsl:variable select="$SegmentRequirement/MaterialConsumedRequirement" name="MaterialConsumedRequirement"/>
<xsl:variable select="$MaterialConsumedRequirement/Quantity" name="Quantity"/>
<xsl:variable select="$MaterialConsumedRequirement/MaterialConsumedRequirementProperty" name="MaterialConsumedRequirementProperty"/>
<MaterialDefinitionID>
<xsl:value-of select="$MaterialConsumedRequirement/MaterialDefinitionID"/>
</MaterialDefinitionID>
<Quantity>
<QuantityString>
<xsl:value-of select="$Quantity/QuantityString"/>
</QuantityString>
<DataType>
<xsl:value-of select="$Quantity/DataType"/>
</DataType>
<UnitOfMeasure>
<xsl:value-of select="$Quantity/UnitOfMeasure"/>
</UnitOfMeasure>
</Quantity>
</MaterialConsumedRequirement>
</xsl:for-each>
</SegmentRequirement>
</ProductionRequest>
</ProductionSchedule>
</xsl:template>
</xsl:stylesheet>