How-to Guide SAP NetWeaver 7.0 How To… Implement a High Volume Process Integration Scenario Version 1.00 – August 2007 Applicable Releases: SAP NetWeaver 7.0 SP10 End-to-End Process Integration Enabling Application-to-Application Processes SAP ECC 5.0 © Copyright 2007 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, and Informix are trademarks or registered trademarks of IBM Corporation 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, 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. 1 Contents 1 2 3 4 5 6 7 Contents .................................................................................................................... 1 Business Scenario..................................................................................................... 2 Introduction................................................................................................................ 2 3.1 Design ............................................................................................................... 2 The Step By Step Solution ........................................................................................ 6 4.1 Database Polling ............................................................................................... 6 4.1.1 Design the Database Interfaces Objects ................................................... 7 4.1.2 Design the Replication Rules Objects ....................................................... 8 4.1.3 Design the Database Mapping Objects ..................................................... 9 4.1.4 Configure the Database Polling Scenario................................................ 10 4.2 Integration Process Replicates the Documents............................................... 12 4.2.1 Design the IDoc interfaces ...................................................................... 12 4.2.2 Design the Replication Rules Interface ................................................... 13 4.2.3 Design of Receiver JDBC Interface to Retrieve and Update the Documents .............................................................................................................. 14 4.2.4 Design of Mapping Program for the Receiver JDBC Interface ................ 16 4.2.5 Design of Mapping Program for the Receiver IDoc Interface .................. 18 4.2.6 Design Interface Mapping........................................................................ 18 4.2.7 Design the Integration Process ............................................................... 19 4.2.8 Configure the Integration Process and SAP ECC System ...................... 21 4.2.9 Configure the Integration Process Execution .......................................... 21 4.2.10 Configure the JDBC Receiver Interface .................................................. 23 4.2.11 Configure the IDoc Receiver Interface .................................................... 24 4.2.12 Configure the Basic tRFC/qRFC and Integration Engine Resources ...... 26 4.2.13 Configure IDoc Packaging....................................................................... 31 SAP ECC posts the documents .............................................................................. 34 5.1.1 Configure ECC Parameters for IDoc Postings ........................................ 35 Checking Results .................................................................................................... 39 References .............................................................................................................. 42 -1- 2 Business Scenario Your customer creates sales orders in a legacy system. These orders are to be sent to SAP ECC for sales execution. The systems have to be synchronized constantly, the volume of information during certain periods of time is very high and delays can have an impact on business. 3 Introduction The most relevant steps required to implement the example scenario are described in this guide. Note that steps have to be performed in the involved Process Integration components (these are the SAP system of the Integration Server, the Integration Repository and the Integration Directory) as well as in the SAP ECC application system. Although the connectivity with JDBC and IDocs is applied in the example scenario that is described, the basic ideas can be reused for use cases including other technologies. This guide considers only the most basic steps required to explain the concepts. Note that in a real life scenario many additional considerations are required. Note that the configuration steps described in this guide constitute only a sample configuration. In order to obtain the most appropriate tuning, you should take into account all processes that run on each server, analyzing the design of the integration and the real productive systems resources. It is assumed that the reader is familiar with the technologies and applications involved. Since configuring the example scenario implies some configuration steps on a very detailed level, SAP recommends that you read the referenced documentation to obtain a better understanding of each step. 3.1 Design In order to obtain the best performance and to minimize resource consumption, the different items and techniques that will help us reach these objectives will be analyzed first. The following table lists and evaluates the possible options. Item Replication mode Objectives - Enable loose system coupling Decision Asynchronous Solution - If SAP application systems are involved, use ALE, TRFC or -2- Message size Posting method Parallelization - Avoid busy-waiting - Make sure that the server is the responsible of the business level error administration - Optimize performance - Improve performance - Avoid memory overflow - Increase stability - Reduce impact on garbage collection (J2EE) - Minimize application system resource usage - Minimize impact on interactive users. - Maximize monitoring and administration capabilities. - Provide capabilities to work in parallel with high volumes asynchronous proxies instead of direct sRFC, BAPI or synchronous proxies. - If available in the Process Integration installation of the partner, exploit existing replication layers. Configurable message size Use IDOC packaging on sender and receiver side Use XSD IDoc mapping manipulation as explained in SAP Note 709400 ALE BPM - Bear in mind this consideration at design time - Work with IDoc packages - Also: Do not post immediately at receiver site. Always prefer to post in groups to minimize ABAP processing and reduce the number of database commit operations - Apply this recommendation - Plan to work with IDocs views (WE32) - Implement an ALE scenario - Avoid immediate posting - Use three-tier system architecture to improve resource balancing. - ccBPM overhead is very low working with big block of documents - Better parallelization Resulting from the analysis above, the general integration approach was designed as depicted in the graphics: -3- DBMS 1 SAP NetWeaver Process Integration SAP ECC New Documents Inserted 2 New Documents Detected 3 Create Collection Process 4 Read and Update Block 5 Convert Documents to IDocs 6 Transfers IDocs Block 7 New IDocs Detected 8 Start Posting Process In a first step it is checked if new documents appear in the database. A sender interface is implemented to enable inbound processing of the data.. When a new document is found, a basic integration process is triggered. The integration process contains just one adapter call to retrieve a number of documents from the different tables, update the replication indicator and send the documents to SAP ECC. Mapping converts the message full of documents into a message full of IDocs (1:1 mapping, but several business documents involved). Then the resulting message is routed to the destination. Once in the destination, the different IDocs are rearranged into new groups and posted as functional documents. The sales orders in this example are arranged in two tables, one for the headers and one for the details. Even though the original source system design lacks some of the useful features of the replication interface design (since the source database has no replication administration and application link layers), the business application layer (the sales order table) is -4- updated in order to know what documents are waiting for replication. The ReplicationStatus field at header level indicates if the document has already been transmitted or not (N: Pending, F: Replicated). In order to understand the different layers and features involved in the replication, read the Process Integration Architecture documents on SDN: https://www.sdn.sap.com (search for Process Integration Architecture). -5- 4 The Step By Step Solution The solution will be implemented in three different groups: 1. SAP NetWeaver Process Integration: polls the database for new documents and triggers the replication process if required. 2. SAP NetWeaver Process Integration: replicates the documents (by an integration process). 3. SAP ECC: posts the documents. 4.1 Database Polling First, a sender interface is implemented that regularly checks if new documents are created in the source system. If some documents are found, the integration process is called. The database will be represented by the business service Sys_PWebSaler and SAP ECC by the business service Sys_T90CLNT090 (System ID: EC5, Client: 800, ALE Logical system name: T90CLNT090). DBMS SAP NetWeaver Process Integration Select count * as count from SalesOrderHeader where ReplicationStatus = ‘N’ count > ‘0’ ? Read pending replications on regular basis Determine receiver based on pending documents yes Integration Process Start replication -6- 4.1.1 Design the Database Interfaces Objects Perform the following steps in the Integration Repository. 1. To receive the number of pending records, start by creating a generic data type to receive the sender interface. 2. Create a message type using the data type previously created. This message type will be later used in the channel configuration. 3. Create the database outbound asynchronous interface. -7- 4.1.2 Design the Replication Rules Objects Perform the following steps in the Integration Repository. 4. To start the next replication process based on configuration and information retrieved from the sender interface results, create a data type to start the integration process. Note that in this particular example, the replication rules will not be based on the information retrieved from the database (sender interface). 5. Create a message type based on the previous data type. 6. Create an asynchronous abstract interface to store the information in the integration process container. -8- 4.1.3 Design the Database Mapping Objects Perform the following steps in the Integration Repository. 7. To get information to start the integration process with runtime and configuration time information, create a mapping from the sender interface to the replication rules. The number of documents to retrieve each time the receiver interface is executed is the value to transfer to the replication rules. In this example, for simplicity, this information is hard coded (500 documents), but it is a better idea to retrieve it at runtime using lookup APIs, value mappings, or an additional interface. Using this technique it will be possible to reconfigure the value at runtime in order to find the best message size for your productive environment and the requirements of all the involved components (source database, Process Integration runtime component and SAP ECC). Especially in the Process Integration runtime component, the message size is very important regarding performance and the impact in the JVM garbage collection behavior. 8. Create the interface mapping for the previous message mapping. -9- 4.1.4 Configure the Database Polling Scenario Perform the following steps in the Integration Directory. 9. To organize the different objects, create a new configuration scenario. 10. Assign the required services. • Sys_PWebSaler for the source database. • Bpr_Replicate_WebSalesOrder_to _ECC_High_Volume for the integration process (created later, but introduced here for teaching purposes). 11. To periodically poll the database for pending documents, create a sender JDBC channel with the following relevant information: • Query SQL Statement: select count * as count from SalesOrderHeader where ReplicationStatus = 'N' (How many pending documents are in the database?). • Document name: Select_Count_SalesOrders (message type previously created). • Update SQL Statement: <TEST> (no update). 12. Create the sender agreement using the communication channel. - 10 - 13. Create the receiver determination configuring the integration process as receiver and add the following condition: Select_Count_SalesOrders/rows/co unt ≠ 0. Under If No Receiver Is Found, Procees As Follows, select End Message Processing Without Error With this condition, the integration process is triggered only if required, if not, the message processing is stopped in the Integration Engine. 14. Create an interface determination to start the integration process using abstract asynchronous interface and the interface mapping previously created. - 11 - 4.2 Integration Process Replicates the Documents SAP NetWeaver Process Integration DBMS Select headers + Select items + Update headers SAP ECC Read and update a set of documents Mapping documents set Call the receiver interface Call mapping to transform the group of documents Call receiver IDoc channel 4.2.1 Design the IDoc interfaces Perform the following steps in the Integration Repository. 15. To design the receiver IDoc interface, import the IDoc definition from the target system. - 12 - 16. Execute Tools Æ Export Reduced XSD and save the file. 17. Change the minimum and maximum number of allowed IDoc element and import the XSD as an external definition. 18. Create an abstract asynchronous interface to store the IDoc inside the integration process container. 4.2.2 Design the Replication Rules Interface Perform the following steps in the Integration Directory. - 13 - 19. To initiate the integration process, create the outbound asynchronous interface using the replication rules message. 4.2.3 Design of Receiver JDBC Interface to Retrieve and Update the Documents Perform the following steps in the Integration Repository. 20. To implement the receiver JDBC that will retrieve and update the documents, create a canonic JDBC receiver with three instructions: • select_salesorderheader_by_gro up • select_salesorderitem_by_group • update_salesorderheader_by_gr oup For more information, see the following document in the SAP library: Document Formats for the Receiver JDBC Adapter - 14 - 21. Create a message type from the data type. 22. To receive the response from the database query, create a data type following the format requirements: • Same root node name than with query, with the _response suffix (case sensitive) • Repeat the second level (query names) • Add the row element as third level for each query • Add the requested fields as sub elements under each row element - 15 - 23. Create a message type for the data type previously created. 24. Create the synchronous interface to call the database. 4.2.4 Design of Mapping Program for the Receiver JDBC Interface Perform the following steps in the Integration Repository. 25. To call the database using the replication rules, create a mapping, copying the number of documents to be retrieved from the target message. To select the header records map as follows: action: SQL_QUERY access: select top $numberofdocuments$ * from salesorderheader where replication status = ‘N' order by number To select the item records map as follows: action: - 16 - SQL_QUERY access: select salesorderitem.* from salesorderheader inner join salesorderitem on salesorderheader.number = salesorderitem.ordernumber where salesorderheader.number in ( select top $numberofdocuments$ salesorderheader.number from salesorderheader where replicationstatus = ‘N' order by salesorderheader.number ) To update the header records map as follows: action: SQL_DML access: update salesorderheader set replicationstatus = 'f' where number in ( select top $numberofdocuments$ number from salesorderheader where replicationstatus = ‘N' order by number ) This example is based on a Microsoft SQL Server query syntax to specify the maximum number of records to retrieve in each call. When you implement these queries using another DBMS, the syntax must be revised. For example, in an IBM DB2 environment, the header table query would be: select * from salesorderheader fetch first $numberofdocuments$ rows only where replication status = ‘N' order by number. - 17 - 4.2.5 Design of Mapping Program for the Receiver IDoc Interface Perform the following steps in the Integration Repository. 26. Map the sales order IDocs from the response message, splitting the IDoc each time a new sales order number is read from the source message. To improve mapping performance, instead of using the imported IDoc as target message type, choose Import Reduced XSD and reference the previously modified XSD version of the IDoc definition. 4.2.6 Design Interface Mapping Perform the following steps in the Integration Repository. 27. Create the interface mapping for the request (rules) and response (IDoc) messages previously created. - 18 - 28. To receive the call from the integration process, create an abstract synchronous interface for the request and response. 4.2.7 Design the Integration Process The following graphics shows the interplay of the designed interfaces and the integration process. IDOC package IDoc Package Send Business Process Engine Send IDoc Package IDoc Package Replication Rules Container SAP ECC tRFC Map Receive Replication Rules Response Map Integration Engine Select & Update Interface Mapping Adapter Engine DBMS JDBC Replication Rules - 19 - Perform the following steps in the Integration Repository. 29. To be able to call both the receiver JDBC and IDoc interfaces, create an integration process. 30. The starting point will receive the replication rules. 31. Then to call receiver JDBC adapter, invoke the associated abstract synchronous interface. 32. Finally, to send the IDocs to ECC, configure the call to the asynchronous inbound interface. - 20 - 4.2.8 Configure the Integration Process and SAP ECC System Perform the following steps in the Integration Directory. 33. Add the required services. • Sys_T90CLNT090_IDoc_Client for the target SAP ECC System. • Bpr_Replicate_WebSalesOrder_t o_ECC_High_Volume for the integration process (already done). 34. To assign a logical system name to the integration process, edit the adapter specific identifiers. 4.2.9 Configure the Integration Process Execution Perform the following steps in the SAP system of the Integration Server. 35. To find the task name for your integration process, check the integration processes in transaction SXI_CACHE. 36. To configure integration processes queues to run in parallel (that is, the same integration process is allowed to run in parallel) run transaction SWF_INB_CONF. In our example, we are able to run - 21 - integration processes in parallel, the receiver JDBC adapter will serialize the request to avoid duplicates (applies to installations with one adapter and no additional server nodes). This configuration introduces additional synchronization issues (the quality of service changes from EOIO to EO), but on the other hand, performance is boosted. 37. To allow multiple queues select: • Delivery Mode: Without Buffering • Queue Handling: Multiple Queues per Process Type (Always Start) • Number of Queues: considering our resources, we will be using 4 queues 38. Save and select the option Process Receives EO Messages Only. 39. To configure the parallel inbound queues for BPE in the scheduler, access transaction SMQR and execute Registration to adjust the entry for queue name XBPE*. - 22 - 4.2.10 Configure the JDBC Receiver Interface Perform the following steps in the Integration Directory. 40. To determine the database service, create a receiver determination to be called from the integration process. 41. Create the interface determination using the interface mapping to convert from replication rules to IDoc format. 42. To access the database, create a receiver JDBC channel. - 23 - 43. Create the receiver agreement using the receiver JDBC channel. 4.2.11 Configure the IDoc Receiver Interface Perform the following steps in the SAP system of the Integration Server. 44. Create an RFC destination from the Integration Server to SAP ECC (type 3). You can either use load balancing or send the IDocs directly to a specific application server. Using load balancing allows you to change the server in case of server problems. If you plan to send the replication directly to the central instance, load balancing makes no sense. Bear in mind that, since IDocs are not configured to be posted immediately, there is no application level processing, just the technical tables are updated. 45. Specify the gateway you want to use in the SAP ECC installation. If you are using load balancing, it is preferable to use the central instance gateway since it is the one with greater availability. 46. Check and adjust your asynchronous RFC settings as required. 47. Suppress the automatic retry for transactional RFC and create a job using the program RSARFCEX to retry failed tRFC calls on a regular basis. - 24 - 48. Update the port for the IDoc adapter and specify the RFC destination (previously created) in transaction IDX1. 49. Create a receiver IDoc communication channel to connect your SAP ECC system. Specify the port and RFC destination previously created. 50. To route the IDoc to SAP ECC, create a receiver determination and a receiver agreement using the communication channel previously created. If no records were found in the database, and no IDoc generated, just stop processing. - 25 - 4.2.12 Configure the Basic tRFC/qRFC and Integration Engine Resources Every queue or tRFC entry requires a dialog work process to run ABAP programs. We are going to briefly analyze how resources are used so as to provide a basic configuration example and show how to control distributed system resources for the different consumers. SAP ECC SAP NetWeaver Process Integration Integration Server ABAP Stack Inbound Queues Outbound Queues ABAP Stack tRFC Transactions (BPE + IDoc) PLSRV_... PLSRV_... PLSRV_... PLSRV_... EC5_800 EC5_800 inactive inactive inactive inactive Workflow_local_100 Workflow_local_100 DIA0 DIA1 DIA2 DIA3 tRFC … DIA4 Work Processes 51. To be aware of the dialog resources, check the operation modes you are using and instances available in transaction RZ04. Also, check time dependent configurations as the operation modes can be changed dynamically. 52. Configure the RFC server group you are going to use to process the queues and transfer the IDocs. (RZ12). If you have several application servers, you can define more than one combination. Several application servers will also allow you to manage these resources better as you will, for example, be able to execute normal pipeline steps on one server and business process steps on another application server, configuring different quotas for each - 26 - one. 53. Adjust the tRFC quotas in the XI dispatcher. There are the following important parameters: • Activated = 1 • • • • Minimum Number of Free WPs ≥ 1 Max. No. of Logons = 90% Maximum No. Separarte Logons =90% Max. Number of WPs Used = 90% For more information, see SAP Note 74141. These parameters are general and should be revised for every particular installation. You can either maintain these values dynamically using transaction RZ12 (but these lost after server restart) or maintain the corresponding entries in the profile parameters. 54. Adjust your QOUT scheduler for destination EC5_800 Configure the AS Group, choosing one of the RFC server groups previously defined, or leave it as DEFAULT to allow to run on every application server available. Specify also the maximum number of connections (Max. Conn.) The number of maximum connections is associated with the number of available dialog work processes in the server group and also in the target system. Remember to subtract the Minimum Number of Free WPs configured in the RFC server group. - 27 - Consider this example: If your source system has nine dialog work processes, your target system has five and one is configured to be free in both systems, the maximum number of connections should be set to four (if they are not going to be shared with another connections). If the resources in your target system are infinite then we could not configure more than eight, since we have just nine, and one is reserved. In our real Process Integration installation we have five dialog work processes. We will allow just two to be used to send information to SAP ECC (EC5 has six available). Note that it is always possible to configure more than one destination to the same system with different number of resources to help you set business priorities when transmitting information using tRFC. 55. Suppress the automatic retry for transactional RFC and create a job using the program RSARFCEX to retry failed tRFC calls on a regular basis. - 28 - 56. Configure the QOUT scheduler for destination WORKFLOW_LOCAL_100 used for integration process execution (automatically configured by the workflow infrastructure, but you can change it if you want). The number of maximum connections should be calculated as in the previous step, but now there is no connection to a remote system. We will configure a maximum of three integration processes to run in parallel. If you can redirect a business process execution to another application server, then the administration would be simplified. It is also possible to redirect specific integration processes to another destination using the task name and by changing the configuration in transaction SWE2). For more details on this step, see SAP Note 888279. 57. Configure the number of inbound queues in parallel execution considering the number of dialog work processes and quotas restriction (as previously checked in the outbound scheduler) in transaction SXMB_ADM. If you have five dialog work processes and plan to use a maximum of two for inbound processing, configure the parameter TUNING/EO_INBOUND_PARALLEL = 2. Follow the following recommendations: • You can obtain detailed documentation by clicking the documentation icon on the grid. • You can also use transaction SARFC to check these resources at runtime. - 29 - 58. In general, to allow the receiver interface call to run in parallel and in separate queues, configure the parameter TUNING/EO_INBOUND_TO_OUTB OUND = 1. 59. To determine the number of concurrent outbound queues for SAP ECC, create a receiver ID for the service Sys_T90CLNT090 using transaction SXMSIF. Specify the service name and “*” for the interface name and namespace. 60. Then create the configuration parameter TUNING/EO_OUTBOUND_PARALL EL. Specify as sub parameter, the receiver ID previously created (T90CLNT090) and allow two queues to run in parallel. The number of queues running in parallel will require a corresponding number of resources for mapping processing. 61. Finally the tRFC/qRFC dialog resources distribution for execution in our example is as follows: Total dialog work processes: 5 Maximum usable for tRFC/qRFC: 4 Maximum connections in parallel to ECC: 2 Max. integration processes running in parallel (tRFC): 2 Maximum inbound queues running in parallel: 2 Maximum outbound queues running in parallel for ECC: 2 - 30 - 4.2.13 Configure IDoc Packaging Perform the following steps in the SAP system of the Integration Server. 62. To activate the functionality for our message, we get a template message. Run the scenario first, after that, run transaction SXI_MONITOR (or IDX5) and copy a message ID of a sample IDoc message. 63. Even though you can do this automatically using the wizard (transaction IDXPW, shown in the screenshot), in the following steps we are going to configure the steps manually. 64. To configure manually, start transaction SXMSIFILTER and select Sender/Receiver ID. 65. Create a specific sender ID for your request and service. To make sure you are using the appropriate info, check the information contained in your template message. - 31 - 66. Repeat the steps for the receiver. 67. Go back to the initial screen. To specify the background job, select Jobs. 68. Add a new job with the desired frequency, accept the screen, save the information, and activate the job. 69. To specify the filtering condition, select Message Filter. - 32 - 70. Create a new filter for outbound IDoc packaging and specify, for example, the maximum desired package size. Then save the information and activate the filter. 71. Make sure the scheduler is running, if not, select Schedule Scheduler to plan the jobs. - 33 - 5 SAP ECC Posts the Documents The overall process steps are illustrated in the following graphics. SAP ECC Save the IDocs Execute Posting Daemon Save IDocs to database without posting Posting Daemon: - Select Pending IDocs - Group Transactions - Analyze servers load - Call Inbound process 72. Maintain the distribution model view (transaction BD64) to accept sales orders from the logical system represented by the integration process. - 34 - 73. Maintain the partner profiles and add an inbound message for the sales orders. 74. Configure the sales orders IDocs to be processed by a background program. Immediate triggering would have the following disadvantages in this scenario: • It consumes more resources. • It is harder to balance priorities with online users. • It is much slower. If the inbound ALE process code for a determined message allows packages, performance will be improved. 5.1.1 Configure ECC Parameters for IDoc Postings 75. Check the operation modes configured in your installation and bear in mind the number of dialog work processes for the following configuration steps. - 35 - 76. According to your previous Process Integration configuration steps, configure your RFC server groups for the IDoc postings. 77. Configure the tRFC quotas for every application server. 78. Access the internal RFC destination NONE. This destination is used internally and should also be configured. - 36 - 79. Configure the asynchronous RFC parameters for the destination NONE. 80. Also configure the transactional RFC parameters, suppress the retries and run report RSARFCEX on a regular basis to retry failed transactions. 81. Configure the QOUT scheduler in transaction SMQS for destination NONE as previously configured in SAP NetWeaver Process Integration, considering the local resources. - 37 - 82. Create a periodic batch job to post the IDocs in the background. The package size is a very important parameter and should be maximized taking the following into consideration:: • Memory consumption • Database rollback area configured • Parallelism The bigger the package size, the lower the number of database commits and roll-in/roll-out operations – which will improve posting performance enormously. Consider that there is a number of other programs to run as periodic batch jobs to retry failed postings, retry failed tRFCs, archive old IDocs, send acknowledgements, etc. There are also another IDoc posting programs for specific industry solutions. 83. Configure the parallel processing and select one of the RFC server groups previously defined. If you want to measure runtime, you can set the Wait for End of Processing flag and the job will end once the last IDoc is posted. - 38 - 6 Checking Results With the following steps, we are going to measure time consumption on a sample set of 3000 sales orders awaiting replication. The polling JDBC channel is supposed to be stopped. 84. To start the channel, access the communication channel monitoring tool. Select and start the sender JDBC channel. 85. Checking Integration Engine processing times. In the SAP system of the Integration Server, start transaction SXI_MONITOR and select all the messages involved. Check the time difference between the start of the first and the finish of the last messages: 26 seconds. - 39 - 86. Check IDoc replication times. In SAP ECC, access transaction WE05 and select all the documents involved. Check the time difference: 92 seconds (32 IDocs per second). 87. Check IDoc posting times. In SAP ECC, run report RBDAPP01 in background using parallel resources and waiting for end of processing Check runtime in jobs overview (SM37): 950 seconds (3 sales orders per second). - 40 - 88. To check that the sales orders have been successfully posted, run transaction BD87. - 41 - 7 References How To Configure the IDoc Adapter: https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/d19fe210-0d010010-4094-a6fba344e098 How To Sample IDoc-XI Scenarios: https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/c09b775e-e56e-29101187-d8eba09c7a4a RFC in general: http://help.sap.com/saphelp_nw04s/helpdata/en/6f/1bd5b6a85b11d6b28500508b5d5211 /frameset.htm IDoc mapping performance: https://service.sap.com/sap/support/notes/709400 SAP NetWeaver Process Integration Performance check: https://service.sap.com/sap/support/notes/894509 SAP NetWeaver Process Integration Performance (Message sizes): https://www.sdn.sap.com/irj/sdn/webinar?rid=/library/uuid/defd5544-0c01-0010-ba88fd38caee02f7 SAP NetWeaver Process Integration Tuning Guide: https://service.sap.com/~sapidb/011000358700000592892005E/XI30-Tuning-10.pdf - 42 - www.sdn.sap.com/irj/sdn/howtoguides
© Copyright 2024