SAP How-To Guide Master Data Governance for Material How To... Master Data Governance for Material: BADI USMD_SSW_PARA_RESULT_HANDLER to merge result of parallel workflow tasks Applicable Releases: EhP5, EhP6, MDG6.1, MDG7.0 Version 1.3 March 2014
Copyright 2014 SAP AG. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice. Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors. Microsoft, Windows, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation. IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iseries, pseries, xseries, zseries, z/os, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, Informix, i5/os, POWER, POWER5, OpenPower and PowerPC are trademarks or registered trademarks of IBM Corporation. Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered trademarks of Adobe Systems Incorporated in the United States and/or other countries. Oracle is a registered trademark of Oracle Corporation. UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc. HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C, World Wide Web Consortium, Massachusetts Institute of Technology. Java is a registered trademark of Sun Microsystems, Inc. JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape. MaxDB is a trademark of MySQL AB, Sweden. SAP, R/3, mysap, mysap.com, xapps, xapp, SAP NetWeaver, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary. These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty. These materials are provided as is without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. SAP shall not be liable for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials. SAP does not warrant the accuracy or completeness of the information, text, graphics, links or other items contained within these materials. SAP has no control over the information that you may access through the use of hot links contained in these materials and does not endorse your use of third party web pages nor provide any warranty whatsoever relating to third party web pages. SAP NetWeaver How-to Guides are intended to simplify the product implementation. While specific product features and procedures typically are explained in a practical business context, it is not implied that those features and procedures are the only approach in solving a specific business problem using SAP NetWeaver. Should you wish to receive additional information, clarification or support, please refer to SAP Consulting. Any software coding and/or code lines / strings ( Code ) included in this documentation are only examples and are not intended to be used in a productive system environment. The Code is only intended better explain and visualize the syntax and phrasing rules of certain coding. SAP does not warrant the correctness and completeness of the Code given herein, and SAP shall not be liable for errors or damages caused by the usage of the Code, except if such damages were caused by SAP intentionally or grossly negligent. Disclaimer Some components of this product are based on Java. Any code change in these components may cause unpredictable and severe malfunctions and is therefore expressively prohibited, as is any decompilation of these components. Any Java Source Code delivered with this product is only to be used by SAP s Support Services and may not be modified or altered in any way.
Document History Document Version Description 1.00 First official release of this guide 1.10 Additional SAP Notes 1.20 Additional Information on Chapter 4.2.2 1.30 Small corrections
Typographic Conventions Type Style Example Text Description Words or characters quoted from the screen. These include field names, screen titles, pushbuttons labels, menu names, menu paths, and menu options. Cross-references to other documentation Icons Icon Description Caution Note or Important Example Recommendation or Tip Example text Example text Example text <Example text> EXAMPLE TEXT Emphasized words or phrases in body text, graphic titles, and table titles File and directory names and their paths, messages, names of variables and parameters, source text, and names of installation, upgrade and database tools. User entry texts. These are words or characters that you enter in the system exactly as they appear in the documentation. Variable user entry. Angle brackets indicate that you replace these words and characters with appropriate entries to make entries in the system. Keys on the keyboard, for example, F2 or ENTER.
Table of Contents 1. Business Scenario... 1 2. Background Information... 3 3. Prerequisites... 3 4. Step-by-Step Procedure... 4 4.1 Customizing... 4 4.1.1 Create new CR-Type... 4 4.1.2 Define Service (Cross Client)... 5 4.1.3 BRF+ Tables... 6 4.1.3.1 Single Value Decision Table... 6 4.1.3.2 User Agent Table... 6 4.1.3.3 Non User Agent... 6 4.2 Enhancement Spot: USMD_SSW_SERVICE_PROCESSOR... 7 4.2.1 Create Enhancement Implementation for USMD_SSW_PARA_RESULT_HANDLER... 7 4.2.1.1 Create BAdI Implementation... 7 4.2.1.2 Method... 8 4.2.1.3 Create Filter... 8 4.2.2 Create Enhancement Implementation for USMD_SSW_SYSTEM_METHOD_CALLER... 8 4.2.2.1 Create BAdI Implementation... 8 4.2.2.2 Create Filter... 9 4.2.2.3 Method... 9 4.2.2.4 Create Filter... 10 4.3 Process... 11 4.3.1 User Menninger... 11 4.3.1.1 Create Material... 11 4.3.1.2 TX SWI6 - Workflows for Object... 12 4.3.2 User Menninger01... 13 4.3.2.1 Approve User Menninger01... 13 4.3.2.2 TX SWI6 - Workflows for Object... 14 4.3.3 User Menninger02... 15 4.3.3.1 Approve User Menninger02... 15 4.3.3.2 TX SWI6 - Workflows for Object... 16 4.3.4 User Menninger... 17 4.3.4.1 Approve User Menninger Step 03... 17 4.3.5 Activate User Menninger Step 90... 18 4.3.6 Background Step 91... 18 4.3.7 Last Step 99... 18
1. Business Scenario SAP Master Data Governance for Material (MDG-M) provides business processes to find, create, change, and mark material master data for deletion. It supports the governance of material master data in a central hub and the distribution to connected operational and business intelligence systems. The processes are workflow-driven and can include several approval and revision phases, and the collaboration of all users participating in the master data maintenance. This scenario addresses the customer requirement to have parallel workflow tasks. February 2014 1
February 2014 2
2. Background Information A BAdI is used to merge the result of the parallel workflow tasks. This Business Add-In (BAdI) is used in the Master Data Governance (CA-MDG) component. You can use this BAdI to implement the result of a parallel workflow merge in the rule-based workflow. The BAdI uses the method HANDLE_PARALLEL_RESULT to handle and merge the results of the parallel workflows into one result. The input for this BAdI is the change request number, current step number, parallel step action table, and the service name. By using the change request number, it is possible to access all data within this change request. The input parameter Service Name enables you to use the same BAdI implementation for multiple service names. For example when two service names are used in the configuration of the same change request workflow, and the user wants to create only one BAdI implementation, having the service name as the input parameter enables you to separate the processing logic based on the service name input. With this BAdI you can change the workflow generic-context table in the workflow. This BAdI also returns the next workflow step, the action taking place in the workflow step, and the message table. Requirements You have defined the filter value Service Name in view V_USMD201C_SSW. You need to create a separate implementation for the handling of a specific parallel result. Standard settings For more information about the standard settings (filters, single or multiple uses), see the Enhancement Spot Element Definitions tab in the BAdI Builder (transaction SE18). No default BAdI implementation is preactivated in the standard system. The BAdI is filter-dependent. The BAdI is not designed for multiple uses. Activities For information about implementing BAdIs in the context of the Enhancement Concept, see the SAP Library for SAP NetWeaver under BAdIs - Embedding in the Enhancement Framework. 3. Prerequisites Relevant SAP Notes: 1597746 1700197 1837696 February 2014 3
4. Step-by-Step Procedure 4.1 Customizing 4.1.1 Create new CR-Type February 2014 4
4.1.2 Define Service (Cross Client) Create Services: ZEM_MAT50_PRL_MRG and ZEM_MAT11_SET_ACTION February 2014 5
4.1.3 BRF+ Tables 4.1.3.1 Single Value Decision Table 4.1.3.2 User Agent Table February 2014 6
4.1.3.3 Non User Agent 4.2 Enhancement Spot: USMD_SSW_SERVICE_PROCESSOR 4.2.1 Create Enhancement Implementation for USMD_SSW_PARA_RESULT_HANDLER Transaction SE18 for Enhancement Spot Use Enhancement Spot: USMD_SSW_SERVICE_PROCESSOR Then Display Select BADI DEFINITION > USMD_SSW_PARA_RESULT_HANDLER Right click on Implementation, and click on Create BADI Implementation Create Enhancement Implementation: ZMDG_BS_MAT_PARALLEL_WF Short Text: ZMDG_BS_MAT_PARALLEL_WF 4.2.1.1 Create BAdI Implementation Badi Implementation: ZMDG_BS_MAT_PARALLEL_WF February 2014 7
Implementing Class: ZL_MDG_BS_MAT_PARALLEL_WF Save and activate. 4.2.1.2 Method Then double click on method IF_USMD_SSW_PARA_RSLT_HANDLER~HANDLE_PARALLEL_RESULT. For the interface method you can use the default coding from Example Enhancement Implementation MDG_BS_MAT_PARALLEL_WF (Parallel rule-based WF branches) and Implementing Class CL_MDG_BS_MAT_PARALLEL_WF. Save and activate. February 2014 8
4.2.1.3 Create Filter Save and activate. 4.2.2 Create Enhancement Implementation for USMD_SSW_SYSTEM_METHOD_CALLER Click on Implementation, right mouse click for creating Enhancement Implementation Create Enhancement Implementation: ZEM_MAT11_CALL_SYSTEM_METHOD 4.2.2.1 Create BAdI Implementation BAdI Implementation: ZEM_MAT11_CALL_SYSTEM_METHOD Implementing Class: ZEM_MAT11_CALL_SYSTEM_METHOD 4.2.2.2 Create Filter Create filter and set service name= ZEM_MAT11_SET_ACTION. February 2014 9
Save and activate. 4.2.2.3 Method Then double click on method and enter * DUMMY. Save and activate. 4.2.2.4 Create Filter Save and activate. February 2014 10
February 2014 11
4.3 Process 4.3.1 User Menninger 4.3.1.1 Create Material February 2014 12
4.3.1.2 TX SWI6 - Workflows for Object February 2014 13
Press Display WF log and then List with technical details: 4.3.2 User Menninger01 4.3.2.1 Approve User Menninger01 February 2014 14
February 2014 15
4.3.2.2 TX SWI6 - Workflows for Object Action 03 (Approve) and Step 11 Still Status 01 (to be considered and approved), next Step 15 (but will never used) February 2014 16
4.3.3 User Menninger02 4.3.3.1 Approve User Menninger02 February 2014 17
4.3.3.2 TX SWI6 - Workflows for Object Automatic Check if Workflow is completed -> After Menninger02 also approved yes, it merges BAdI Parallel Step Result Merge: Action 03 (Approve) and Step 02 Automatic Dummy Step 02 (Loop2): Step 02 and Action 03 Status 02 (Changes to be executed) and Next Step 03 February 2014 18
4.3.4 User Menninger 4.3.4.1 Approve User Menninger Step 03 User Menninger approved (Step 03 and Action 03): February 2014 19
4.3.5 Activate User Menninger Step 90 User Menninger activates (Step 90 and Action 09) 4.3.6 Background Step 91 Background Step 91 and Action 31: Activation -> next Step 99 (last step) and Status 05: Final Check Approved 4.3.7 Last Step 99 User Menninger; Status 05: Final Check Approved February 2014 20
www.sdn.sap.com/irj/sdn/howtoguides