2

How to use Digital Manufacturing MDOs within PPD E... - SAP Community

 1 week ago
source link: https://community.sap.com/t5/product-lifecycle-management-blogs-by-sap/how-to-use-digital-manufacturing-mdos-within-ppd-example-where-used-report/ba-p/13680276
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Hello everyone,
In this blog, I would like to share my learning experience and a sample result that I gained from solving a common customer requirement: creating a Where Used Report with the option to trigger follow-up activities. The challenge was solved using existing Digital Manufacturing features.

General learnings: How to use Digital Manufacturing Master Data Objects (MDOs) in combination with Production Process Design (PPD).

Kudos to my colleague Vivekananda Panigrahy who helped me with all my questions. Without him, this would not have been possible.

Note: The example is set up and tested using Production Orders and Workcenter POD, following the guidelines for using MDOs as described in Note:  3324908 - Additional information on Digital Manufacturing for insights APIs

Use case example

Imagine a customer manufacturing a multi-level product.
To illustrate this let's use a concrete example, the customer produces printed circuit boards (PCB) (a semi-finished product) that are made up of several batch-managed components. The PCB is then used as a component for a smart key in a subsequent production step.

KatjaHuschle_0-1713934271160.png

Figure 1: Bill of Material – Finished Product KEY_520

The customer is looking for the ability to easily identify the impact of supplier reported issues for specific components used in the PCB manufacturing process in order to mitigate quality and cost impacts in production.

To achieve this goal, the following capabilities are required:
1. Ensure comprehensive data collection during assembly to ensure traceability to the finished product.
2. Facilitate easy identification of where specific components are used across different product hierarchies.
3. Enable flexible responses based on the status of the product. For example, if a product containing the component is still in production, it can be put on hold; if it is already DONE and in stock for further consumption, stock could be put on hold.
Let's look at these requirements in more detail and discuss how they can be addressed using the configuration and extension capabilities of digital manufacturing.

Ensure traceability throughout the assembly process

In Digital Manufacturing we support predefined data types for the assembly category. Using INV_SFC as the data type to be collected during Assembly Consumption, workers are required to enter either an Inventory ID or an SFC number before proceeding with the assembly process.
The configuration of data collection at assembly consumption can be implemented at either material or BOM level. See the material level example below.

KatjaHuschle_1-1713934271170.png

Figure 2: Manage Material– Data to Collect at Assembly/Consumption

The information for INV_SFC Data type is captured during assembly and stored in the Digital Manufacturing Master Data Object SFC Assembly Event to ensure the traceability.

KatjaHuschle_2-1713934271177.png

Figure 3: Assembly Plugin

Easily identify where a particular component is used across different product hierarchies.

We offer several ways to achieve this using Manufacturing Master Data Objects as a data source:

  1. Via direct calls to MDO APIs - OData service
  2. Using the Digital Manufacturing Manage Dashboard capabilities to build a dashboard based on MDOs. For an example, visit the blog https://community.sap.com/t5/product-lifecycle-management-blogs-by-sap/component-backward-search-in-...
  3. Via PPD using Business Services. Focus of this blog.

By using the MDO SFCAssemblyEvents OData service, we can easily identify which SFC the component was used for.

KatjaHuschle_3-1713934271185.png

Figure 4: Details of SFC Assembly MDO – Latest Documentation always check https://help.sap.com/docs/sap-digital-manufacturing/insights/about-sap-digital-manufacturing-for-ins...

The information about the assembled component is stored in the ComponentInventory field. This could be the inventory ID for a batch-managed material, or an SFC number if we are assembling the semi-finished product produced in an earlier step.

In our example it would be:
Inventory ID for the material COMP_01 (Batch managed material) that is assembled into the semifinished product KEY_ELECTRONIC_BOARD_520.
The SFC number for the semifinished product KEY_ELECTRONIC_BOARD_520 that will be built into the product KEY_520.

Now all we need to do is query the OData service with the correct parameter.
If you are not yet familiar with how to query the OData service, I suggest you explore the resources available on the internet.

In general, it is important to define the OData service call as precisely as possible to limit the data we retrieve. This improves performance and reduces complexity.

In my example, I use the ComponentInventory as the filter and select only the Sfc data as the result.

To provide flexibility in querying the data and determining how to react to the retrieved result, let's implement a Production Process Design.

Implementing flexibility with Production Process Design (PPD)

In preparation, we need to register the MDO API in the Service Registry. Once this step is complete, we will be able to use it within PPD.

Configuring the MDO API as a custom service in the Service Registry

Managing Web Servers

To register the MDO API as a custom service, you must first create or reuse a web server.

The web server should have the following settings

  • Host URL: public-api-endpoint
    In my case the public-api-endpoint was https://api.test.eu20.dmc.cloud.sap as my tenant runs on EU20.
  • It needs to be consumed by the DMC_Cloud web server. This step is critical for the service to be visible in the Production Process Designer.

Manage Web Servers -> Search for DMC_Cloud -> Create a connection to the web server you created/reused for the MDO API.

  • Destination: You can reuse the already configured SAP_DMC_DEFAULT_SERVICE_KEY for calling APIs.
    If this is not already configured, see SAP HELP for detailed instructions on how to set it up.
KatjaHuschle_4-1713934271191.png

Figure 5: Manage Web Servers

Manage Service Registry

Create a new service with the end point to the desired MDO.
In our case, we aim to use /dmci/v1/extractor/SFCAssemblyEvents.
For additional information on Digital Manufacturing for insights APIs, please refer to Note 3324908.

KatjaHuschle_5-1713934271196.png

Figure 6: Manage Service Registry

As we will generate the Parameters during Production Process Design, we will keep the Parameters generic.
$filter, $format, $select all of Data Type String

Configure Production Process Design

Input Parameters:

  • Name: inComponentInventoryIDs
  • Type: StringArray
  • Description: Array of Component Inventories IDs

Results:

  • Name: VOveralResultList
  • Type: String Array
  • Description: Array of SFCs found.

Within the production process, we run several script tasks to prepare the input for the call to the MDO and to enable iterative search across multiple product levels. To support the iterative search, we use process variables to store the found SFCs as input for the next run and to collect the total list of affected SFCs in a result list.

KatjaHuschle_6-1713934271200.png

Figure 7:Production Process Design KH_FloorStock_OnHold_WhereUsed

Example:
We will search for the inventory ID EP01IR1, which represents a batch for the component COMP_01, which is used in the semifinished product KEY_ELECTRONIC_BOARD_520.

KatjaHuschle_7-1713934271203.png

The following KEY_ELECTRONIC_BOARD_520 material SFCs were produced with this batch: EP011, PCB_001
We will now use this as an input to see if these semi-finished products have been used in subsequent steps.
PCB_001 has already been used in the finished product.

KatjaHuschle_8-1713934271208.png

Figure 8: Production Process Design

As you can see, the result is as expected. 3 SFCs are found: EP011, PCB_001, EP01295_1
All of them might be impacted on the quality issue found within the Batch of inventory ID EP01IR.

For Reference Production Process Control Details

Control: InitializeSearchParameter_ ComponentInventoryIDs (ScriptTask_2)

In the ScriptTask_2 we initialize the Process Variable

KatjaHuschle_9-1713934271213.png

Figure 9: ID:ScriptTask_2 Name:InitializeSearchParameter_ ComponentInventoryIDs

Control: PrepareMDOQuery (ScriptTask)
KatjaHuschle_10-1713934271217.png

Figure 7: ID:ScriptTask Name:PrepareMDOQuery

Control: Service_SFCAssemblyEvents (Custom Business Service)
KatjaHuschle_11-1713934271222.png

Figure 8: Service_SFCAssemblyEvents (Custom Business Service)

Control: Store Retrieved SFCs (ScriptTask_1)
KatjaHuschle_12-1713934271227.png

Figure 9: ID:ScriptTask_1 Name:Store Retrieved SFCs

Flexible way to react based on the status of the product

There are again several options to achieve this:

  • Create a PPD for specific actions
    This could be achieved by modifying the PPD example with specific filters when retrieving the SFC, such as only retrieving the SFC with Status=Done followed by a call to put the inventory on hold.
  • Create a custom plugin to call the PPD, display the result and allow the user to select the SFC for which further actions should be triggered.
    I have chosen this option and I am currently preparing a separate blog post on this topic which will be published within the next week.
KatjaHuschle_13-1713934271230.png

Figure 10: Sample Custom Plugin

Conclusion

With Digital Manufacturing Extensibility Options, we can easily build a Where Used Report and trigger follow-up action based on business needs. Additionally, in this blog post, you learned how to configure and use MDOs APIs in Production Process Designer.

Did you find this post useful? Please share your thoughts in the comments section below. Any feedback is highly appreciated.

If you have any questions, please visit SAP Community Q&A Area or leave a comment below.

Thank you very much,

Katja


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK