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
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.
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.
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.
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.
Figure 3: Assembly Plugin
We offer several ways to achieve this using Manufacturing Master Data Objects as a data source:
By using the MDO SFCAssemblyEvents OData service, we can easily identify which SFC the component was used for.
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.
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.
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
Manage Web Servers -> Search for DMC_Cloud -> Create a connection to the web server you created/reused for the MDO API.
Figure 5: Manage Web Servers
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.
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
Input Parameters:
Results:
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.
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.
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.
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.
In the ScriptTask_2 we initialize the Process Variable
Figure 9: ID:ScriptTask_2 Name:InitializeSearchParameter_ ComponentInventoryIDs
Figure 7: ID:ScriptTask Name:PrepareMDOQuery
Figure 8: Service_SFCAssemblyEvents (Custom Business Service)
Figure 9: ID:ScriptTask_1 Name:Store Retrieved SFCs
There are again several options to achieve this:
Figure 10: Sample Custom Plugin
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.