Wednesday, 3 May 2017

Change log for Z-Table Maintenance (via SCDO)

Generally we don’t need table logging for custom table maintenance (SM30), but it is important and needed for some cases. All customizing tables are automatically recorded by default but if you use regular Application tables (master and transaction data), you’re about to get your hands dirty .)

SAP ABAP Tutorial, SAP ABAP Materials, ABAP Guide, ABAP Certifications
Sample Z-Table

Automatic table change logging


Actually this is not suitable for our case because we want to log particular tables but it’s good to know..

You can use Automatic table change logging by setting the “Log Data Changes” flag under the table “Technical Settings” in SE11 (p.s. You must activate the table again after saving it, otherwise it will not be effective).

Next, to be able to log the table changes you must activate the system profile parameter Rec/Client. The default setting is OFF (no changes are logged). BASIS Team can assist you in this.

Setting Rec/Client Parameter for Logging


To set the profile parameter rec/client for table logging:
  1. Call transaction RZ11.
  2. Enter rec/client as the profile parameter to be changed.
  3. Set the profile parameter to the desired value.
  4. If the profile parameter is OFF, there is no logging in the system. ALL activates logging in all clients in the system. A value 051, 100 logs all client-specific tables in the specified clients (051 and 100). Cross-client tables are logged in all clients.
  5. Save your entries.
However, SAP recommends this option only in systems where this is worthwhile, because all tables with “Log data changes” option will be logged, so this has a major impact on performance (Even for one client)

You can now view the changes via SCU3 (Table: DBTABLOG)

SAP ABAP Tutorial, SAP ABAP Materials, ABAP Guide, ABAP Certifications
SCU3-Logs

Logging using Change Document Objects (SCDO)


To log changes for particular tables in SM30 Maintenance, we can use change document objects and its associated functions.

Let’s do it step by step;
  • Go to SCDO and create a Change Document Object (Choose Yes for opening Namespace Pop-ups)

SAP ABAP Tutorial, SAP ABAP Materials, ABAP Guide, ABAP Certifications
  • Insert the entries and choose Utilities → Generate update pgm.

SAP ABAP Tutorial, SAP ABAP Materials, ABAP Guide, ABAP Certifications
  • In the opening pop-up, give function group name (it will be created if it doesn’t exist) and generate the update program for the object by clicking Activate. 

SAP ABAP Tutorial, SAP ABAP Materials, ABAP Guide, ABAP Certifications
  • In the Data Element → Further Characteristics Tab, set the “Change Document” flag for the objects which you want to track changes. As you recognise, many SAP standard data elements come with the selected flag.
  • You can now insert appropriate calls in the corresponding programs, for our example we will use Table Maintenance Events.
  • Under the table maintenance (SE56) go to Environment → Modification → Events.
  • Give the events & subroutine names as shown in the figure and click the Editor icon to create suggested include (L<fg_name>F01).

SAP ABAP Tutorial, SAP ABAP Materials, ABAP Guide, ABAP Certifications

Now, you can just copy and paste the code snippet (link is below) into the created include. It will begin to create logs in CDHDR-CDPOS tables. You can now view the changes via reports CHANGEDOCU_READ & RSSCD100.

SAP ABAP Tutorial, SAP ABAP Materials, ABAP Guide, ABAP Certifications
SCDO-Logs

Source code on GitHub: https://goo.gl/VrwXaC

No comments:

Post a Comment