Product Lifecycle Management Blogs by Members
Get insider knowledge about product lifecycle management software from SAP. Tap into insights and real-world experiences with community member blog posts.
cancel
Showing results for 
Search instead for 
Did you mean: 
pooja_yadav
Explorer
In this blog, I would like to show how to handle repair production orders in SAP Digital Manufacturing Cloud(DMC).

                                                                  Repair production orders are created to correct the defects. Such orders will be without the reference to material so that labor cost will capture only. Currently DMC, supports the order with valid material number but to capture labor hours on repair Order, material may not be needed. So, such order without the material will get failed in DMC. In this blog, you will see a way to handle repair orders in DMC.


Prerequisites-

  1. Create a dummy material in DMC.

  2. Modify the Production Orders (LIOPRO05 V2) custom XSLT to accept the order without material in Manage Integration Workflows app in DMC.


Creating a dummy Material in DMC

  1. Go to Manage material app.

  2. Click “+” to create new material.

  3. Under Main section, filled all the mandatory fields.

  4. Under Alternate UOM section, add UOM

  5. Under Build section, make sure Order Processing Mode field have “Use ERP and Routing (Default value)” value.

  6. Click save.

  7. Dummy material is created.


 

Modifying Production Order Custom XSLT to accept the production order without material

We must modify in the below nodes in XSLT, so that DMC accept the order without material-

  1. Node : ManufacturingOrder => Material
    <Material>
    <!---Added for rework order|Header Material-->
    <xsl:choose>
    <xsl:when test="MATNR">
    <xsl:value-of select="MATNR"/>
    </xsl:when>
    <xsl:otherwise>
    <xsl:variable name="material" select="'NULL_ECC'"/>
    <xsl:value-of select="$material"/>
    </xsl:otherwise>
    </xsl:choose>
    </Material>


  2. Node : ManufacturingOrder ==> BillOfMaterial
    <BillOfMaterial>
    <!-- Added for Rework Order | Bill of material Number-->
    <xsl:choose>
    <xsl:when test="MATNR">
    <xsl:value-of select="STLNR"/>
    </xsl:when>
    <xsl:otherwise>
    <xsl:variable name="BillofMaterial" select="'02110817'"/>
    <xsl:value-of select="$BillofMaterial"/>
    </xsl:otherwise>
    </xsl:choose>
    </BillOfMaterial>


  3. Node : ManufacturingOrder ==> BillOfMaterialVariant
    <BillOfMaterialVariant>
    <!-- Added for Rework Order | Bill of material Variant-->
    <xsl:choose>
    <xsl:when test="MATNR">
    <xsl:value-of select="STLAL"/>
    </xsl:when>
    <xsl:otherwise>
    <xsl:variable name="BillofMaterial" select="'1'"/>
    <xsl:value-of select="$BillofMaterial"/>
    </xsl:otherwise>
    </xsl:choose>
    </BillOfMaterialVariant>


  4. Node : ManufacturingOrder ==> BillOfMaterialVariantUsage
    <BillOfMaterialVariantUsage>
    <!-- Added for Rework Order | Bill of material Variant usage-->
    <xsl:choose>
    <xsl:when test="MATNR">
    <xsl:value-of select="STLAN"/>
    </xsl:when>
    <xsl:otherwise>
    <xsl:variable name="BillofMaterial" select="'1'"/>
    <xsl:value-of select="$BillofMaterial"/>
    </xsl:otherwise>
    </xsl:choose>
    </BillOfMaterialVariantUsage>


  5. Node : ManufacturingOrder ==> MfgOrdPlndTotQtyInBaseUnit (if missed this, you will not able to release the order).
    <MfgOrdPlndTotQtyInBaseUnit pp:unitCode="{BMEINS}">
    <!-- Added for Rework Order | Planned Quantity-->
    <xsl:choose>
    <xsl:when test="MATNR">
    <xsl:value-of select="BMENGE"/>
    </xsl:when>
    <xsl:otherwise>
    <xsl:value-of select="GAMNG"/>
    </xsl:otherwise>
    </xsl:choose>
    </MfgOrdPlndTotQtyInBaseUnit>


  6. Create new </pp:ManufacturingOrderComponent> node for when order doesn’t have material.
    <!--Added for Rework Order | Generating Bill of material payload with hardcoded values -->
    <xsl:if test="not(E1RESBL) and not(string(/LOIPRO05/IDOC/E1AFKOL/MATNR))">
    <pp:ManufacturingOrderComponent>
    <RequirementType>AR</RequirementType>
    <Material>NULL_ECC</Material>
    <Reservation>0102637848</Reservation>
    <ReservationItem>10</ReservationItem>
    <GoodsMovementType>261</GoodsMovementType>
    <BillOfMaterialItemNumber>10</BillOfMaterialItemNumber>
    <BillOfMaterialItemCategory>L</BillOfMaterialItemCategory>
    <ManufacturingOrderItem>0000</ManufacturingOrderItem>
    <BillOfMaterial>02038353</BillOfMaterial>
    <SupplyArea>
    <xsl:value-of select="PRVBE"/>
    </SupplyArea>
    <StorageLocation>0001</StorageLocation>
    <RequiredQuantityInBaseUnit pp:unitCode="GLL">1</RequiredQuantityInBaseUnit>
    <Warehouse>
    <xsl:value-of select="LGNUM"/>
    </Warehouse>
    <MatlCompIsMarkedForBackflush>
    <xsl:call-template name="convertToBool">
    <xsl:with-param name="bool" select="BACKFLUSH"/>
    </xsl:call-template>
    </MatlCompIsMarkedForBackflush>
    <MaterialIsCoProduct>
    <xsl:call-template name="convertToBool">
    <xsl:with-param name="bool" select="KZKUP"/>
    </xsl:call-template>
    </MaterialIsCoProduct>
    <DebitCreditCode>H</DebitCreditCode>
    <InventorySpecialStockType>
    <xsl:value-of select="SOBKZ"/>
    </InventorySpecialStockType>
    <MaterialCompIsAlternativeItem>
    <xsl:call-template name="convertToBool">
    <xsl:with-param name="bool" select="ALPOS"/>
    </xsl:call-template>
    </MaterialCompIsAlternativeItem>
    <AlternativeItemGroup>
    <xsl:value-of select="ALPGR"/>
    </AlternativeItemGroup>
    <AlternativeItemPriority>00</AlternativeItemPriority>
    <AlternativeItemStrategy>
    <xsl:value-of select="ALPST"/>
    </AlternativeItemStrategy>
    <UsageProbabilityPercent>0</UsageProbabilityPercent>
    </pp:ManufacturingOrderComponent>
    <!--</xsl:otherwise></xsl:choose>-->
    </xsl:if>




 

Now let’s create a repair production order in ECC and release it to DMC.

In ECC

  1. Creates a repair order.

    • Go to CO07 tcode  (create order without material).

    • On the Header screen, make following entries Order Text (Enter PO number and material Component Number for reference)-

      • Quantity (repair qty)

      • Base Unit of Measure

      • Finished Date of Order



    • Now on the Maintain Settlement Rule: Overview screen, Enter following fields-

      • Cat

      • Settlement Receiver



    • Then go to Operation Overview, Update Work Center as Repair work center in the operation details where the repair operation is carried out with standard values.

    • Now in the Component Overview check that no components are exists.

    • Release order by clicking release button and save.

    • Production Order for Repair is created.




In DMC

  1. Go to integration Message Dashboard, check order is successfully created.

  2. Go to Manage orders, click on “Release”, and release the order.

  3. Use Work center POD, to execute and complete the repair order on the assigned work center and resource.


 

Conclusion:

In this blog, you learned how to handle the repair production orders and to transfer the order without a header material to DMC. The order can be released in DMC to perform operations using work center POD.

*Thanks to my teammate - swanand_joshi_capgemini

 

 

Do you like this post? Please let me know in the comments section what you think. Any feedback is highly appreciated.

Or, if you have any questions, please check SAP Community Q&A Area, or comment down below.

To know more about the SAP DMC solution, see here.

 

Thanks,


yadavpooja

2 Comments