Skip to Content
Technical Articles
Author's profile photo Amit Singh

Parallelization of Access Plan Calculation Job in SLT

Summary:

The Purpose of this document is to detail the set of activities which must be done to achieve parallelization of Access Plan Calculation Jobs. Access Plan Calculation is the major activity during initial load of tables from source system to target Central Finance S/4 system via SLT. If we consider central finance table i.e. AUFK and COBK; they have huge amount of source data and it takes time to bring those data from source system to SLT system during calculation phase. While starting the initial load of these tables, relevant data is extracted and temporarily stored in a compressed format in a queue in source system. By default, a single access plan calculation job copies the data from the original table to the queue in the source system. Single Access Plan Calculation job takes high amount of time depending upon the volume of records extracted from source table. Hence, we should execute access plan calculation jobs in parallel to bring records from source table to SLT. It will reduce the time for calculation step to get completed; which will reduce the execution time of initial load of table from source to target central finance S/ 4HANA system through SLT.

Assumptions:

a) Table to be loaded from Source System is Transparent or Pool Table.
b) Record count in source table to be loaded is more than 50,000 based on LTRS filter values. As Parallelization can only be configured for the table which has more than 50,000 records.
c) SLT Consultant has all the required role to perform the activities in SLT box.
d) RFC user in Source and Target Central Finance S4HANA system should have authorization to generate runtime modules.

Pre-requisite:

a) SLT Client needs to be opened as changes are required in template load object sender structure.

b) Check the number of Batch Jobs available in Source and SLT system. It should be adequate to execute the process.

c) Maximum Batch jobs required for this parallelization process is 8. We can’t have more than 8 parallel jobs running in SLT for each Mass Transfer Id as recommended by SAP.

d) Number of Initial load jobs and calculation jobs for each Mass Transfer ID in SLT system should not be more than number of parallel jobs maintained in LTRS for the table to be loaded under same Mass Transfer ID; which means it can’t be more than 8.

e) Total Number of Data Transfer Jobs should be more than number of Initial Load Jobs and Calculation Jobs in each MT ID .if you have some tables running in replication whereas you added one table to perform initial load. For example: if we give no of initial load jobs and calculation jobs to execute the both process in parallel and we can have maximum of 8 batch jobs. And, Number of data transfer jobs should be more than initial load jobs or calculation jobs to perform replication of tables present in the same Mass Transfer ID. And we should have one data transfer jobs for each table present in same Mass Transfer ID. Once, Calculation and Initial load of the table is finished then all data transfer jobs will be utilized for replication of tables in the same Mass Transfer ID.

3. Set of Activities to achieve Parallelization

3.1 Count of Source Table Records

Go to source system and take the source table records count based on the LTRS filter to be put for the table. This Step is required to decide the two parameter. First Parameter is NUMREC field value in IUUC_PRECALC_OBJ and second is no. of calculation jobs and Parallel Jobs (LTRS) in the configured Mass Transfer Id in SLT box. These two parameters will be explained in section 3.2, 3.3 and 3.4. For example: source table AUFK records count is 3,952,443.

3.2 Number of calculation jobs in Mass Transfer Id

As source table AUFK records count is 3,952,443 and we can have maximum of 8 parallel batch jobs configured in LTRS for AUFK table. And, after checking running MT ID in SLT system and available jobs in source and target system we decided to keep the number of calculation and initial load job 6.
Note: Number of Calculation and Initial Load Jobs can be maximum 8.
Number of Jobs can be changed after creation of Mass Transfer ID. It can be done by clicking on “Change No. of Jobs” button as shown in below screenshot..

No%20of%20Jobs%20in%20MT%20ID

No of Jobs in MT ID

3.3 Create entry in table IUUC_PRECALC_OBJ

As mentioned in summary section, During Calculation phase, source table data is copied from the original table to the queue in the source system. This process can be improved by defining additional settings in table IUUC_PRECALC_OBJ (there is currently no UI available for this setting).
In order for any additional settings to take effect, you must save your changes in the table before you start the initial load. As source table record count is 3,952,443 and we decided to keep number of calculation jobs 6 along with no of parallel jobs 6.

We can define number of records that can be processed by one access plan by using field NUMREC. Here, table record count is 3,952,443 and if we specify value 900,000 for the table in the field NUMREC. System will generate 5 access plans which can run in parallel. The first 4 access plan will handle 900,000 each, while the last access plan will handle remaining 452,443 records. To define the value for field NUMREC, you can divide the total number of records in the table by the number of access plan that you want to run in parallel.

This table can be directly maintained through SE16 as there is no UI available for this setting. If SLT consultant is not able to create the entry then either get the access to create entry in the table or it can be done by Basis consultant. You can provide below value to be maintained in the table IUUC_PRECALC_OBJ.

MT_ID: XXX
CONVOBJECT: AUFK (table name which we want to load)
NUMREC: 900,000

IUUC_PRECALC_OBJ%20maintenance%20at%20SLT

IUUC_PRECALC_OBJ maintenance at SLT

 

3.4 Number of Parallel Jobs and Reading Type in LTRS

Here we set up the number of parallel jobs which we want to execute. Go to LTRS transaction code-> Click on The Mass Transfer ID under which we want to perform initial load-> (if table to be loaded is not present) Right Click on Performance Options-> Click on ‘Add Table’ else Click on table for which we want to configure parallel jobs.
Enter value in the No. of Parallel Jobs field as shown in below screenshot. As source table is transparent table hence Reading Type should be 5, Sender Queue.

Note: If Source table is cluster table then Reading Type should be 4, Sender Queue (Cluster Tables).

LTRS-%20No%20of%20Jobs%20and%20Reading%20Type

LTRS- No of Jobs and Reading Type

 

3.5 Create Predefined load and replication object

Execute the program IUUC_REPL_PREDEF_OBJECTS using SE38 or SA38 and select the Mass Transfer Id under table to be loaded. Select MT Id XXX for our scenario.

Create%20Predefined%20Load%20and%20Replication%20Objects-%20Selection%20Screen

Create Predefined Load and Replication Objects- Selection Screen

Go to next screen. Click on “Copy Predefined Object” as all Central Finance tables are delivered in standard SLT content. Now, Select Project REPL_CFIN and Sub Project REPL_CFIN since standard SLT content for SAP table present under REPL_CFIN Sub Project.

Note: There is another Sub Project REPL_CFIN_ST which is for JDE source system.

There is predefined object to create load and replication object for each table. For AUFK table, CFI_AUFK_L is predefined object to create predefined load object. Enter table AUFK (in block letter) as shown in below screenshot and select “Create Predefined Load Object” radio button. Then Click on Continue button. It will take time to create predefined load object which will copy from standard SLT content and template will get created in SLT system which has all technical objects to be created in source, SLT and Central Finance S4HANA Target System.

Predefined%20Load%20and%20Replication%20Object

Predefined Load Object

Now, we need to create Predefined Replication Object for AUFK. Click on “Copy Predefined Object” button and then select Project REPL_CFIN and Sub Project REPL_CFIN. And, Select Predefined Object CFI_AUFK_R to create predefined replication object. Also, Select “Create Predefined Replication Object” radio button and click on continue button. It will take time to create predefined replication object which will copy from standard SLT content and template will get created in SLT system which has all technical objects to be created in source, SLT and Central Finance S4HANA Target System.

Predefined%20Replication%20Object

Predefined Replication Object

Select “Active” from Load Object and Repl. Object state drop down. Then click on Refresh button. Status will be changed from Red to Green.

Predefined%20Load%20and%20Replication%20Object-%20Activate

Predefined Load and Replication Object- Activate

3.6 Reading Type of Template Load Object Sender Structure

It is mandatory Step if Reading Type is not changed to 5-Sender Queue then Calculation Job will not run in Parallel.
Go to MWB Transaction code. Select Project which is created after creation of predefined load and replication object. Here, Project is ZIUUC_XXX (XXX is the Mass Transfer Id) and the select Sub Project ZIUUC_XXX_TEMPLATE as both objects are copied under template sub project. Then Click on “Change” button.

Change%20Migration%20Object

Change Migration Object

Note: SLT client should also be open to make change in template sub-project. Hence, we should request Basis to open the SLT Client before performing this step.

It will navigate to below screen after clicking on “Change” button. Click on highlighted load object Z_AUFKL_XXX.

Conversion%20Migration%20Object

Conversion Migration Object

Now, Click on “Sender Range: Edit Structures and Fields” as shown in below screenshot.

Sender%20Range-%20Edit%20Structure%20and%20Fields

Sender Range- Edit Structure and Fields

Then navigate to below screen. Click on “Access Options” button as highlighted in below screenshot then select Reading Type 5 Sender Queue from drop down and save it.

Reading%20Type%20Change-%20Load%20Object

Reading Type Change- Load Object

Now Navigate to next screen to generate runtime module by clicking “Generate Runtime Object” as shown in below screenshot.

Generate%20Runtime%20Object

Generate Runtime Object

 

Navigate to below screen. First Click on “Perform DDIC Synchronization” button to complete the DDIC Synchronization. Thereafter click on “Generate Runtime Object” button as highlighted in below screenshot. It takes time to generate OLI, OLC, OLO runtime modules in Source, SLT and Target CFIN S4HANA system.

DDIC%20Synchronization%20and%20Generate%20Runtime%20Object

DDIC Synchronization and Generate Runtime Object

 

Once it is successfully generated without any error then only initial load of AUFK table can be started.
Note: There could be code errors if any MWB filter is present in the SKIP method then it should be fixed. Or, Runtime Object could not be generated because of authorization issue. Authorization issue could be related to RFC User in target CFIN and Source system. Hence, RFC User should have proper authorization.

3.7 Start Replication (with Initial Load) of the table

Once all steps are successfully completed then we can start replication with initial load for the table. Go to LTRC transaction code and click on the MT ID under which initial load of table will start. Click on MT ID XXX and navigate to below screen. Click on “Data Provisioning” button to start replication with load. Then, Select “Start Replication “radio button as shown in below screenshot and also enter table name. Click on Continue button.

Start%20Replication%20with%20Load-%20LTRC

Data Provisioning- LTRC

Start%20Replication%20with%20Load

Start Replication with Load

3.8 Access Plan Calculation Jobs in SLT System

After adding the table to start replication with load, logging table will be created and trigger will be activated in Source System. Thereafter first load and replication is defined then Generation of runtime modules start. Both phase takes time to complete. Once, both the phase is completed and flag ‘X’ is set for both Defined and Generated; Calculation starts. Calculated flag is set as ‘P’ as it runs in parallel mode. Running mode can be checked in “Processing Mode” under Data Transfer Monitor Tab. Running mode will be Parallel Processing.
Once Calculation starts, Calculation Jobs starts running in Parallel in SLT system. We can check the jobs running in SM37.
Note: There could be some jobs which gets finished 1 or 0 seconds. We don’t have to consider those jobs.
In sometime, 6 Calculation jobs will be triggered in SLT system; which will trigger access plan calculation in Source System. Parallel Jobs starts in source system when health job /1LT/IUC_HEALTH* runs properly in every 10 minutes as per standard configuration. Hence, it needs to be checked if health job is configured properly and running in every 10 minutes. Below is the Calculation Jobs running in SLT box.

Calculation%20Jobs%20in%20SLT

 

Calculation Jobs in SLT

3.9 Access Plan Calculation Jobs in Source System

Once Calculation jobs are triggered in SLT system; Access Plan Calculation Jobs triggers in Source System. In some time, we can find 6 Access Plan Calculation Jobs running in Parallel. There could be more than 6 Access Plan Calculation Job finished in Source System as shown in below screenshot since AUFK table has other dependent tables(AFIH, AFKO, AFPO and CKMLMV013) which also has records to read. But, at once only 6 Parallel Jobs will run in Source System. Parallel Jobs starts in source system when health job /1LT/IUC_HEALTH* runs properly in every 10 minutes as per standard configuration. Hence, it needs to be checked if health job is configured properly and running in every 10 minutes.

Access%20Plan%20Calculation%20Parallel%20Jobs%20in%20Source%20System

Access Plan Calculation Parallel Jobs in Source System

These parallel Access Plan Calculation Jobs runs in parallel based on filter criteria if there is at LTRS along with IUUC_PRECALC_OBJ table parameter NUMREC value. These jobs completes calculation in lesser duration in comparison to running Single Access Plan Calculation Job running in source to move data from Source to SLT.

Above steps has given complete idea for setting up the configuration in SLT to execute the Access Plan Calculation Jobs in parallel. It is more beneficial while transferring data from Source to SLT during Central Finance Initial Load along with normal table load too.

 

Assigned tags

      11 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Solution Manager
      Solution Manager

      Great blog. But how do we monitor the progress of calculating access plans?  I have applied some settings as above, for a table with 5 billion (nine zeros!) records with high parallelism (20 jobs) and it is running for three days. There are no errors but how do I check what it's in the queue and what is pending?

       

      Note that I'm using embedded SLT of a latest S/4HANA 2020 which acts as both Source and LT system. Target is a HANA DB

      Author's profile photo Amit Singh
      Amit Singh
      Blog Post Author

      There are access plan calculation jobs with /1LT/MWB_CALS_MTID* ( MT ID is the mass transfer id). These jobs run in the source system. If these jobs are running then Access Plan calculation is in progress. And, please check if calculation status is P or X in the the data transfer monitor in LTRC for the Mass Transfer ID. did you put reading type 5 in LTRS and also in MWB for load object? And, progress of access plan also shows in the application log under the MT ID. I hope this information. Let me know if there is anything required.

      Author's profile photo Solution Manager
      Solution Manager

      Thanks Amit. The problem is that in S/4HANA 2020 embedded SLT MWB jobs and transaction are gone! I don't even see entries in DMC_INDXCL. I will open a ticket to SAP

      Author's profile photo Amit Singh
      Amit Singh
      Blog Post Author

      DMC_INDXCL holds entries when access plan is in progress. As you said that still calculation is in progress; there should be entries in this table.

      Author's profile photo Aytac Karacalioglu
      Aytac Karacalioglu

      Hi Amit, this is a very nice and helpful blog. Thank you. I have a question: We're replicating  ACDOCA (quite huge table).  From step "3.5 Create Predefined load and replication object", since ACDOCA is not delivered with standard SLT content, how should we proceed?

      Author's profile photo Amit Kumar Singh
      Amit Kumar Singh

      Hi Aytac,

      ACDOCA is the table in CFIN system which hold universal journal entries. This table is getting populated using SLT table CFIN_ACCHD which requires standard steps to follow to set up SLT. But, before this, could you please confirm if you are using this for central finance functionalities means apart from ACDOCA, records will be saved in BKPF, BSEG other underlying S4 tables?

      Thanks,

      Amit Singh

      Author's profile photo Aytac Karacalioglu
      Aytac Karacalioglu

      Hi Amit,

      Thank you so much for your fast response. We will not use it for central finance functionalities. We will just replicate the data from Prod S/4 system to one Hana database.

       

       

       

      Author's profile photo Amit Kumar Singh
      Amit Kumar Singh

      Hi Aytac,

      I understood your requirement. you want to load source table ACDOCA and populate entries into target table ACDOCA. As this is not part of central finance hence SLT content is not used to create load and replication template. In step 3.5 Create Predefined load and replication object ; you can execute the report  IUUC_REPL_PREDEF_OBJECTS for the mass transfer id. and, in next step you need to click on "create new entry" ( Don't click on "copy predefined object" as it is for central finance related object which is delivered through SLT content). Enter table name "ACDOCA" and select "create load template" checkbox, then click on continue. It will create load template. Now, click on "create new entry" again and enter table ACDOCA along with "create replication template" checkbox. With this step both load and replication object will be created. This is the one step which you need to follow if you want to do table to table load and planning to do some modification like filter or set up of parallelization similar to above mentioned scenario.

      Hope this information helps.

      Thanks,

      Amit Singh

      Author's profile photo Leo Frederiksen
      Leo Frederiksen

      Thanks for the blog. Reading type 5 with IUUC_PRECALC_OBJ is the recommended approach for parallel initial load. I have some comments from my own experience with large retailers around the world.

      3.3 Create entry in table IUUC_PRECALC_OBJ

      I used to do the same as you but was recommended by SAP to make sure the number was between 500 000 and 2 000 000. The system will create parallel packages in source where i.e. 500 000 records per job is inserted into the indx table, and once finished new jobs will automatically restart.
      That really works great and had a massive impact once you have very large (+500 mio) and wide tables.

      3.5 Create Predefined load and replication object

      I have never done this part, I always just started the Replication and then all required objects are automatically created. And everything is working fine for me when doing so.
      Can you explain why you cannot just start the replication without doing all this?

      Note, I have not tried to replicate to SFIN scenarios.

       

       

      Author's profile photo Amit Singh
      Amit Singh
      Blog Post Author

      Hi Leo,

      Yeah. Reading Type 5 is mandatory for parallel initial load for pool and transparent table whereas reading type should be 4 for cluster table. As per SAP, NUMREC value must be greater than 50,000.

      Create Predefined Load and replication object step is required for Central Finance scenario as SAP provides standard SLT content for each central finance object. We need to copy the predefined load and replication object for the table under the mass transfer id.

       

      Author's profile photo Leo Frederiksen
      Leo Frederiksen

      Hi Amit

      Thanks for your reply that you need to perform this approach for Central Finance.