Parallelization of Access Plan Calculation Job in SLT
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.
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.
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..
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.
CONVOBJECT: AUFK (table name which we want to load)
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).
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.
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.
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.
Select “Active” from Load Object and Repl. Object state drop down. Then click on Refresh button. Status will be changed from Red to Green.
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.
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.
Now, Click on “Sender Range: Edit Structures and Fields” as shown in below screenshot.
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.
Now Navigate to next screen to generate runtime module by clicking “Generate Runtime Object” as shown in below screenshot.
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.
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.
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.
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.
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.