Introduction
Replicating large amount of master data from SAP S/4HANA to SAP Field Service and Asset Management (FSA) can take a very long time. If the system sends the data one by one, it creates a traffic jam that slows down your business.
The Data Replication Framework (DRF) Parallel Processing feature fixes this problem. Instead of sending everything in a single line, it chops the data into smaller chunks and sends them all at the exact same time. In this blog, I will explain how this process works using Equipment Replication as our example, and show you how to turn it on in your system.
DRF configuration
1.Business system and replication model: In transaction DRFIMG, maintain the business system under Define Technical Settings for Business Systems. Then create the replication model under Define Replication Model.
2. Outbound implementation: Assign the equipment outbound implementation (<your outbound implementation>) and the target business system to the replication model
3.Parameter values: On the outbound implementation assignment, maintain below parameter with Values.
Parameter | Purpose |
TASK_SIZE_PROCMSG | Number of messages handled by one parallel task |
PACK_SIZE_BULK | Number of objects packed into one bulk message call |
PARALLEL_PROCESS_NEW | Enable Parallel processing |
4.Run with parallel processing: In DRFOUT, select the replication model and the parallel processing checkbox, then execute or schedule it as a background job.
How DRF Parallel processes work with 100K equipment:
The settings used in this example are:
Item | Value | Result |
Total messages | 1,00,000 | Equipment to process |
TASK_SIZE_PROCMSG | 1000 | ⌈100,000 / 1000⌉ = 100 parallel tasks |
PACK_SIZE_BULK | 100 | 10 Send_message calls per task, 1,000 in total |
Free work processes | 10 | Only 10 tasks run at the same time |
Rounds | ⌈100 / 10⌉ | 10 rounds |
Only the execution changes. The 100 tasks are pipelined across the 10 work processes:
Round 1: Tasks 1– 10 run in parallel (Equipment 1 – 10,000)
Round 2: Tasks 11– 20 run in parallel (Equipment 10,001 – 20,000)
……
…….
…….
Round 10: Tasks 91–100 run in parallel (Equipment 90,001 – 100,000)
Each work processes about 10 tasks one after another:
WP-1: [Task 1] → [Task 11] → [Task 21] → … → [Task 91]
WP-2: [Task 2] → [Task 12] → [Task 22] → … → [Task 92]
…
WP-10: [Task 10] → [Task 20] → [Task 30] → … → [Task 100]
Conclusion:
With 100,000 equipment, a task size of 1000, and a bulk size of 100, DRF creates 100 tasks that send 10 bulk calls each. With only 10 free work processes, the tasks run in 10 rounds instead of a single parallel round. The work processes limit the elapsed time, not the task and bulk settings. If you can’t get more work processes, a larger task size reduces the task count but doesn’t speed up the run once all 10 work processes are busy. Fewer, larger tasks can even leave work processes idle at the end of the run. Size the task so that the number of tasks is a multiple of the free work processes and tune the bulk size against the target system’s limits.
Please share your experiences in the comments.
Source link
