Wednesday 28 October 2020

Mass-activating multiple objects (in background)

1. Introduction

This blog post shows how to mass-activate multiple objects (in the background) and where to find the logs for the activation.

Since SAP decided to discontinue the IS-Media solution, we often have the requirement to add custom fields to MARA or similar tables in the S/4 HANA migration project I currently work on. Unfortunately, the current extension concept does not meet all our requirements and we get the change requests to add new fields or change existing fields only little by little, which means that we have to repeat this step every few weeks.

Although the S/4 machine in the project is quite big, the activation of the said objects often leads to performance problems. Therefore, I decided to explore the activation of these objects in a background task and now want to share my experiences with you.

2. How to active multiple objects in a background job

2.1 Report RADMASG0_C3

The report RADMASG0_C3 is the successor of the report RADMASG0 and introduced parallel processing, among other features. It has been created in 1999 and therefore should be present at almost all active SAP Systems.

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

There are three options to use that report to activate objects via a background job:

◉ Specify transport(s) which contain(s) the objects to be activated
◉ Specify objects directly
◉ List objects in external table

The first approach only makes sense if the objects to be activated do not share the same transport as other objects.

The second approach mostly makes sense when you have to activate the same objects multiple times.

The third approach comprises adding objects to an external table. I use the table TACOB which allows to add the object names easily and can be maintained in SM30.

All three approaches require to create a variant in the report which then can be called in a background job. The third approach only requires a one-time configuration of this variant which is why it is my favorite one.

2.2 Preparing the variants for background jobs

Run the report RADMASG0_C3 in transaction SE38.

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

For all the following variants I would recommend activating the radio button “Output to Database” and the flag “Save log information” as can be seen in the screenshot above.

2.2.1 Variant for activating objects in a transport

Simply enter one or multiple transports…

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

… and click on save to enter the variant configuration screen.

Enter a suitable name & description and save the variant.

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

Note: Since this variant is probably used only one time, I would recommend naming it accordingly like in the screenshot above.

2.2.2 Variant for activating objects directly

Click on “direct objects” …

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

… and enter the objects to be activated.

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

Once all objects are entered, save the variant similarly as for the transport variant above.

Same as for the transport variant you should give it a proper name to be able to distinguish the different variants later.

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

2.2.3 Variant for activating objects listed in external table

Enter TACOB as an external table…

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

…and create a variant named ACTIVATE_TACOB.

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

This variant can be reused everytime, because it simply references the table TACOB in which the objects can be listed.

2.3 Scheduling a background job to activate the objects

Once you prepared the desired variant you can schedule a background job for it.

In case of using the external table, you need to list the objects in the table TACOB first via TCode SM30:

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

To create the background job, open TCode SM36 and enter a proper name.

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

In the “Step” just enter the report RADMASG0_C3 and state the variant you prepared previously.

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

You can now either start it immediately or schedule a time to start the job.

The runtime can be monitored in the job overview as usual.

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

2.4 Read log in case of errors

If you chose to write a database log you can find it using TCode RM_97.

Specify username and timeframe…

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

… and run the program. In the list you can now choose your log:

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

The log should give you detailed information about any errors (or success messages):

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

2.5 Comparing RADMASG0_C3 to RASMASG0

Although there is no documentation in the system, the main advantage of RADMASG0_C3 seems to be the faster activation time due to the RADMASG0_C3 faster than RADMASG0 due to the utilization of parallel processing.

Here a comparison – activating the same objects in RADMASG0 …

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

…and RADMASG0_C3

SAP ABAP Tutorial and Material, SAP ABAP Development, SAP ABAP Exam Prep, SAP ABAP Certification

No comments:

Post a Comment