WDF 2000016 - Optimizing Intercompany Solution Performance

WDF 2000016 - Optimizing Intercompany Solution Performance

This WDF Note provides essential insights and actionable recommendations for optimizing the performance of the Intercompany Integration Solution for SAP Business One. It outlines best practices, performance optimizations, and system configurations that can significantly enhance transaction processing speed, data synchronization, and overall system efficiency.

Furthermore, the note may address common performance bottlenecks, offering solutions to mitigate delays, reduce system load, and improve data consistency across intercompany transactions. By implementing the recommended configurations and optimizations, businesses can achieve a more stable, reliable, and efficient intercompany integration within their SAP Business One environment.

Setting up the SAP B1if Log level 

Set the SAP B1if log level to SEVERE in the xcellerator.cfg file to ensure that only critical errors are logged. This helps optimize system performance by reducing unnecessary log entries.

Steps to Update the Log Level:

1. Navigate to the following directory on your SAP Business One server:
   C:\Program Files\SAP\SAP Business One Integration\IntegrationServer\Tomcat\webapps\B1iXcellerator

2. Locate and open the xcellerator.cfg file using a text editor with administrative privileges (such as Notepad++ or VS Code).

3. Find the log level parameter and update its value to:
   log.level=SEVERE

4. Save the file and restart the SAP Business One Integration Service for the changes to take effect.

By setting the log level to SEVERE, the system will capture only critical errors, reducing log file size and improving system efficiency.

B1if DB size - for HANA and SQL environment:

To maintain optimal system performance and prevent excessive storage consumption, it is essential to optimize log configurations and manage database size efficiently within the SAP Business One Integration Framework (B1if). This involves configuring log retention policies and regularly purging obsolete data to prevent database bloat. Additionally, implementing efficient indexing strategies, archiving historical data, and monitoring database growth can further enhance system stability and responsiveness.

For detailed guidance on best practices and tools to optimize log management and database size, please refer to the following SAP Notes:

1873607 - Optimized Log Configuration and Database Size for Integration Framework
1873559 - B1iF_Using the DB Purge Tool for Database Size Reduction

Using DI Proxy Groups

To enhance the performance of intercompany transactions, deploy multiple DI Proxy instances for each company database. This approach ensures efficient processing by distributing the workload and reducing bottlenecks that can occur when a single DI Proxy instance handles all requests.

Additionally, configure separate DI Proxy instances for each level of the Consolidation Company to optimize performance during the financial consolidation process within the Intercompany Integration Solution. This setup allows for improved data synchronization, faster transaction processing, and greater system scalability, ensuring seamless consolidation across multiple entities.

To improve the intercompany transaction runtime performance, deploy multiple DI proxy instances for each company database.
To deploy multiple DI proxy instances, refer to SAP Note 1975033.
To assign multiple DI proxy instances as a group to each company, refer to chapter 4 of "HowToUseEnhancedDIAdapter.pdf" attached to SAP Note 1993784.

Verify the B1if Runtime User details

Ensure that the details in the B1i Server Details window are correctly configured across all SAP Business One companies within the landscape. To access this window, navigate to:
Administration → Setup → Intercompany → B1i Server Details.

For further information on setting up the B1i Server Details, please refer to the B1i Server Details Setup section of the Intercompany Solution. For comprehensive guidance, consult the following article: Troubleshooting B1if Runtime User details

Restart the SAP B1if services periodically

It is recommended to periodically restart SAP Business One services, including B1if (SAP Business One Integration Framework) and DI proxies, to maintain optimal system performance and prevent potential issues due to memory leaks or accumulated system load.

Restart the Following Services in Order:
  1. SAP Business One Integration Service (B1if)
  2. SAP DI Proxy Services
Benefits of Periodic Restarts:
  1. Prevents memory overload and improves system responsiveness.
  2. Clear temporary caches and ensure smooth intercompany transactions.
  3. Reducing the chances of system lag or unexpected errors.

Regular Verification of Key Mapping Data

Regular verification of key mapping data is essential to ensure accurate and seamless data synchronization between intercompany entities in SAP Business One. Key mapping serves a critical function in maintaining data consistency and integrity across multiple companies by correctly aligning master data objects such as business partners, items, accounts, and other key references.
By conducting routine checks, businesses can identify and resolve discrepancies, prevent synchronization errors, and minimize the risk of transactional mismatches. This proactive approach helps maintain data uniformity, enhances operational efficiency, and ensures smooth intercompany processes, ultimately reducing manual corrections and potential integration failures.

For more details about the key mapping process, please refer to the article Key Mapping.

SQL server password change - Changing the database credentials (SQL or HANA) 

If the database credentials have been changed, it is essential to ensure that the updated password is reflected across all System Landscape Directories (SLDs) related to the intercompany landscape in SAP Business One Integration Framework (B1if).

Failure to update the credentials in all relevant SLD entries may result in authentication errors, connectivity issues, or failed transactions between participating companies. To prevent such disruptions, carefully review and update the database credentials in each SLD configuration.

After making the necessary updates, it is recommended to validate the connections by testing the B1DI and JDBC connections in the SLD settings. Once the connection tests are successful, the next crucial step is to redeploy the intercompany solution. Redeployment ensures that all configurations are refreshed and synchronized across the participating companies, preventing potential disruptions in data replication and transaction processing.


Optimizing Replication Performance via the Service Layer

To enhance the performance of intercompany transaction replication via the Service Layer in SAP Business One Integration Framework (B1if), it is recommended to assign a separate destination port (destPort) for each System Landscape Directory (SLD) in the integration landscape.

By configuring unique destination ports under the B1SL section of SLD, you can ensure more efficient data processing and load distribution across multiple entities. This setup helps to minimize potential bottlenecks, reduces network congestion, and improves the overall responsiveness of intercompany transactions.


Deactivation and deletion of expired licenses for sandbox and production

It is strongly recommended to deactivate and remove any expired Walldorf Licenses for both the sandbox and production environments to ensure uninterrupted system functionality and compliance with licensing regulations. Keeping expired licenses active may lead to unexpected errors, licensing conflicts, or restrictions that could impact business operations.

Regularly reviewing and managing license statuses helps maintain a clean and optimized environment, ensuring that only valid and active licenses are in use. This proactive measure also prevents unnecessary system clutter and potential security vulnerabilities associated with outdated licenses.

To deactivate or delete the expired licenses, go to Intercompany Administration Console. In the top menu bar, choose the Setup option. In the left frame, choose the Manage License option. 

selectedImg

Changing Event Sender Settings

To change event sender settings, see the SAP Business One Administrator's Guide on the SAP Help Portal.

In the Include List B1 Object(s) field, enter the following comma-separated list of object identifiers of the SAP Business One objects to minimize the load on the integration server:

0,UDT,3,231,251,252,62,138,183,61,268,540000042,269,267,22,112,17,21,16,133,129,140000041,257,40,265,131,130,-3@CTX_SOURCETAX,255,53,186,196,65,223,147,28,30,44,36,150,254,6,-3@CTX_SYNC,239,15,20,540000066,540000065,540000067,540000068,165,163,166,164,278,10000199,10000197,-3@CTX_GLBDATADIS,201,1320000039,-3@CTX_ACCOUNTCLASS,56,50,51,274,140000007,159,256,52,125,10,8,49,43,37,46,13,18,19,14,2,190,176,170,66,4,63,1720000001,1320000032,205,234000004,177,1470000035,254000014,540000006,23,24,146,-3@OE_SH_SYNC,-3@OE_SYNCHIS,-3@OE_PARENTEMAILSMS,204,203,234000031,1470000113,234000032,-3@TEST,12,231000000,1,238

In the Exclude List B1 User field, enter the B1i SAP Business One user name (not the user code) for which the event sender does not send events to the integration framework to minimize the load on the integration server. 

In case you have enabled the replication of custom UDT(s) in the Preferences page of Administration Console, then you must include the name of UDT(s) in the above list. 

For example, if the UDT name is “Category”, then include the following in the above list separated by comma: -3@Category

Note:
To make the changes effective in the system, the SAP Business One Event Sender Service must be stopped and restarted again.

Deactivate sap.B1System package

sap.B1System package is used to create B1 company system entries in Integration Framework → SLD → B1iServer. When a company is added/deleted/updated, the package adds/deletes/updates the system ID for the company accordingly. However, in the context of Intercompany Solution, we suggest you deactivate the package to avoid system ID changing during solution runtime, which possibly results in a queue-blocking issue. Once you set up the Intercompany landscape, please deactivate the package (go to Integration Framework → Scenarios → Control → Deselect checkbox for package sap.B1System). 

Note
If you need to add a new company to Intercompany Landscape, you can manually create the system entry and re-deploy the solution. Refer to SAP Note 2032666 for detailed instructions.

Managing Intercompany Logs

To improve the performance and to have the best performance results, ensure that the intercompany solution logs are managed. The configuration of log deletion avoids unlimited database growth and slows down process executions. The number of Auto Retry Failed Messages is important as every retry is consuming hardware resources.

To display the Manage Logs screen in the Intercompany Administration Console, navigate to Preferences and choose Manage Logs.



Auto Retry Errors

If an error occurs in case of missing data and the customer can solve it by himself, define the Auto Retry Errors, then the failed message will be re-sent in the predefined time and no manual action is required.

To display the Auto Retry Errors screen in the Intercompany Administration Console, navigate to Preferences and choose Auto Retry Errors.