Monday, May 29, 2023

Stack-ability of Composite Providers

Composite Providers do have a settings that enables them to be reused in other the Composite Providers. In other words, the settings is describing reusability or stack-ability of the Composite Providers. The settings in available in SAP HANA Studio - BW Modelling tools in Composite Provider maintenance screen under General tab. Composite View is re-usable as PartProvider of other Composite Views.

Technically the settings is implemented in table RSOHCPR, and its field STACKABLE. In case the flag is set, the Composite Providers is type of stacked Composite Provider (STACKABLE = X). The setting is handled in methods like IS_STACKABLE, CHECK_STACKABLE and SET_STACKABLE of ABAP class CL_HCPR_COMPOSITE_PROVIDER.

More information:

Friday, May 12, 2023

SAP background jobs and processes behind transports (CTS)

Transport system of SAP objects is a component that enables the controlled movement of software configurations, developments, and customizations across different systems in a landscape. It ensures deployment of changes from development to testing, quality assurance, and ultimately to production systems.

There are several steps involved while particular objects is being moved. Proper sequence and list of the steps executed depends on what type of objects are present in the transport request (TR).

Some of the ABAP steps are performed in the SAP system. These are:

- ABAP Dictionary activation (A)

- Distribution of ABAP Dictionary objects (S)

- Table conversion (N)

- Matchcode activation (M)

- Import of application objects (D)

- Update of version management (U)

- Execution of XPRAs (R), XPRA = EXecution of PRograms After import  or Executable Program for Repair and Adjustment


When there is a transport request being imported into target systems following steps are executed:

Step                                                                     Program (ABAP prg/OS level cmd) executing step

SHADOW_IMPORT()                                              OS cmd: R3trans

DD IMPORT (H)                                                    OS cmd: R3trans

DD ACTIVATION (A)                                             ABAP prg: RDDMASGL

DISTRIBUTION OF DD OBJECTS (S)                       ABAP prg: RDDDIS0L


tpmvntabs                                                          OS cmd: tp

MAIN IMPORT (I)                                                 OS cmd: R3trans

tpmvkernel (C)                                                    OS cmd: tp



VERSION UPDATE (V)                                           ABAP prg: RDDVERSL



Transport related jobs (RDD*) jobs:

Job/ABAP program RDDIMPDP (or JOB_RDDNEWPP) - a dispatcher (transport deamon) program for transport activities running within NetWeaver/ABAP platform based systems. It receives information from the external transport program (OS level programs) tp and R3trans via table TRBAT. The job is normally scheduled by ABAP program RDDNEWPP.

Shadow import – SAP system upgrade relevant only. It importss the upgrade data into Customizing tables, as well as the transport requests of add-ons, support packages, and languages.

DD import – is a phase where the Data Dictionary (DDIC) objects are imported into the target system during the transport process. The DDIC objects include data elements, tables, views, domains, and other dictionary-related components.

DD activation - Job/ABAP program RDDMASGL - runs Data Dictionary Activation, if there is an object in the TR has Data Dictionary object and it was imported before, during Data Dictionary Import.

DISTRIBUTION OF DD OBJECTS - Job/ABAP program RDDDIS0L – phase where the Distribution tasks related to DDIC objects are performed during the transport process. This phase handles the distribution and activation of DDIC objects across the SAP system landscape. RDDDIS0L runs the report RDDGENBB, if the transport request object list has at least one DDIC object, its DDIC import and DDIC activation already happened and the object has to be adopted on database level. Table structures are changed if necessary.

TBATG CONVERSION OF DD OBJECTS - Job/ABAP program RDDGEN0L - this phase refers to the conversion of DDIC objects during the transport process. It is the conversion from the original system format to a format of the target system.

Tpmvntabs - phase is responsible for updating the database tables related to transport management in the target system. During this phase, the transport tool performs various tasks related to transport management tables to ensure their consistency and synchronization with the transported objects. These tables store information about TR, their status, logs, and other relevant data.

MAIN IMPORT - phase where the actual objects contained in the TR are imported into the target system. Tasks like object integration, object activation, dependency resolution, conflict resolution and post-import activities are executed.

TBATG CONVERSION OF MC OBJECTS - Job/ABAP program RDDGEN0L - this phase refers to the conversion of Modifiable Customizing (MC) objects during the transport process. This phase is responsible for converting the MC objects from the original system format to a format suitable for the target system. Modifiable Customizing objects are system-specific configurations and settings that can be customized by customers. These objects are typically maintained in client-dependent tables and are specific to individual systems. During the transport process, these objects need to be converted to make them compatible with the target system.

Tpmvkernel -

IMPORT OF SELFDEFINED OBJECTS - Job/ABAP program RDDDIC1L – it does import of ADO (Application Defined Objects) from table TRBAT.

VERSION UPDATE - Job/ABAP program RDDVERSL - refers to the process of updating the version information of the transported objects in the target system. This phase ensures that the system recognizes and tracks the correct versions of the imported objects.

EXECUTION OF REPORTS AFTER PUT - refers to the execution of specific reports or programs after the objects contained in the transport request have been successfully imported and applied to the target system. Job/ABAP program RDDEXECL - runs as Method Execution (XPRA), if an application has their own object in the transport object list and it was imported during Main Import, and their application specific method/function/program has to run.


Other ABAP programs related to transports:

RDDPROTT - displays the log for a specific transport request. Used by t-code SCTS_LOG -Transport Log Overview.

RDDFDBCK - import feedback process, Message After Exporting or Importing Requests

RDDDIC3L - deleting obsolete or no longer required entries from the transport request buffer in the SAP system.

RDDMNTAB - runs a move nametab, for a new ABAP objects that were imported, their runtime objects have to be put in the active runtime environment.

RDDDIC0L – Exports ADO (Application Defined Objects) objects

RDDDIC1L – Imports ADO objects

RDDDIC3L - Generates ABAP programs and screens

RDDVERSE –Version Management: Version at Export


Important tables:

TRBAT - it forms the interface between the transport control program tp and the SAP system. To trigger an ABAP step, tp writes control information to this table. The JOB_RDDNEWPP phase schedules the event-driven background job.

TRBATS - Communication Table for Deployment Control

TRJOB - Job ID (e.g. 07444600) that is running at some point of time in teh SAP systems is entered in this table.


More information:

Change and Transport system

2147060 - Import steps not specific to transport request

Tuesday, May 9, 2023

Semantic Grouping set in a DTP or in TRFN?

Semantic Grouping enables grouping of data based on its semantics into the same data pack that is process by the BW load. In BW classic based systems, this function is normally called the Semantic Grouping whereas in BW/4 based systems it is called Grouped Extraction.

If the function is used, data records are extracted from a source as per a logical key and they processed together. The function can be switched on by selecting particular fields on DTP or in TRFN (Transformation). The DTP part was there since BW 7.0 and availability on TRFN came with BW 7.2

Why there is an option to use the Semantic Grouping / Grouped Extraction in the TRFN level as it is available at the DTP level already? Is there any difference between the DTP and TRFN?

Instead of finding a difference, it is better to looked at it as what they can do if they are combined. There can be following cases:

1. Error handing on the DTP is activated (‘Cancel Request, Track First Incorrect Record, No Update’) only the sources fields of key fields can be selected in the DTP. Grouping uses the intersection of these selected key fields and the fields selected from the transformation for semantic grouping.

2. Error handing is deactivated (‘Cancel Request, Do Not Track Records, No Update’), all the sources fields that were also selected in the transformation can be selected in the DTP. The Grouping is formed from this intersection.

3. For compatibility reasons - similar case as no 2 but no source fields have been selected in the transformation for the semantic grouping, all the source fields can be selected in DTP.

SAP is recommending (see in online doc links below) a selecting fields for grouping at the transformation level.

More information:

Online docu BW 7.3

Online docu BW4/HANA

SAP BW DTIS - Data Transfer Intermediate Storage