Friday, July 10, 2026

S416* suite of data browser related t-codes in BW system

In my last post I wrote about a suite of Data Browser related tcodes. Those SE16* tcodes exits in SAP systems that runs on S/4HANA Foundation such as SAP S4/HANA. This is because they are part of software layer SAP_APPL  or SAP_FIN. However, the tcodes mentioned were ported to other software layer - SAP_ABA. Thus, are available in BW (as well as SCM, CRM, Solution Manager, etc.)  systems as well.

What is different is actually the particular tcodes it self. In S/4 they follow SE16* but in other systems they follow S416* or S4H16* names.

SAP_APPL name

corresponding SAP_ABAP name           

description

SE16N

S416N and S4H16N

GTB

SE16H

S416H and S4H16H

Enhanced GTB

SE16D

S416D and S4H16D

GTB Display Mode

SE16S

S416S

GSS

SE16S

S4H16S

GSS Multi Text

SE16SL

S416SL

GSS Column Based

SE16SL

S4H16SL

GSS Depend Read

SE16N_ROLE

S416N_ROLE

GTB Role Maintenance

SE16J

S416QL

GTB Query Launcher

SE16S_CUST

S416S_CUST

GSS: Maintenance of Search Patterns

n/a

S416S_DEP

GSS: Maintenance of Dependencies

n/a

S416CD

GTB: Display Change Documents

 

GTB stands for Generic Table Display

GSS stands for Generic Smart Search

 

More information:

2140828 - GTB: Documentation of generic table display functions

1636416 - CO-OM tools: Functions of transaction SE16H

2124497 - Downport of the SE16* transactions to the software layer SAP_ABA

 

S416CD               GTB: Display Change Documents

S416D                Generic Table Browser Display Mode

S416H                Enhanced Generic Table Browser

S416N                Generic Table Browser

S416N_ROLE           GTB: Role Maintenance

S416QL               GTB: Query Launcher

S416S                Generic Smart Search: Text Input

S416S_CUST           GSS: Maintenance of Search Patterns

S416S_DEP            GSS: Maintenance of Dependencies

S416SL               Generic Smart Search (column based)

S4H16D               Generic Table Browser Display Mode

S4H16H               Enhanced Generic Table Browser

S4H16N               Generic Table Browser

S4H16S               Generic Smart Search: Multi Text

S4H16SL              Generic Smart Search: dependent read


Monday, June 29, 2026

SE16* suite of data browser related t-codes

T-code SE11 and SE16 was here for ages within every SAP Basis/NetWeaver/ABAP Platform based SAP system. The very basics function of the SE16 was to browse for the data in the tables, views. With an SAP S4/HANA system there were a new t-codes delivered related to data browser.

SE16*

SE16T – Umbrella t-code from where the others can be ran.

SE16N – Comprehensive version of SE16, enables selection criteria to be specified immediately upon request, output is in the ALV Grid, etc. In a nutshell more convenient for the user.

SE16N_EMERGENCY – Allows editing data in the tables.

SE16H - HANA DB optimized table display and analysis. Has more less same features as the SE16N t-code. Enables analysis on how table entries are distributed across specific fields.

SE16J – Dedicated SE16* t-code for table joins. Allow making a database joins (query data with joins).

SE16S - Generic table and value search. E.g. in case a search in DB tables needs to be performed on multiple tables.

SE16S_CUST – Allows to setup predefined searches for t-code SE16S.

SE16SL - Searching content.

Side note: SE16S and SE16SL can be used to find any values in any tables. Difference between them is how the selection is done. A search term is sought in all tables in SE16S, the search in SE16SL is limited to the found tables that match the entered field description. That makes SE16SL is theoretically faster.

TAANA - Detailed table analysis for functional tables. Covers scenarios like: record count, record distribution per time period (e.g. year), company code, plant, document type, any other business related objects.

KOBJ - used to search for any objects in any tables.

KTABL - i used to search for tables and table names.

KTRAN - used to search for transactions.

 

More information:

1636416 - CO-OM tools: Functions of transaction SE16H

3529563 - Functions of transaction SE16J

2002588 - CO-OM Tools: Documentation for SE16S, SE16SL, and SE16S_CUST


Sunday, May 31, 2026

ABAP Program to report on DTPs - RSBK_DTP_PROPERTIES

ABAP program RSBK_DTP_PROPERTIES is a standard program in BW  used to analyze and retrieve various properties related to Data Transfer Processes (DTPs).

 

Here are some details about the DTP properties the program deals with:

1. Retrieving DTP Properties in Bulk:

   - The report fetches and displays various technical properties of one or more DTPs.

   - It allows administrators to interactively check DTP-specific settings across a system.

2. Supporting Operational and Debugging Tasks:

   - You can use this program to troubleshoot data transfer issues by verifying the settings of related DTPs.

   - It helps in scenarios where a specific DTP is not performing as expected, such as issues in extraction, transformation, or loading (ETL).

3. Custom Analysis and Automation:

   - Developers can use ABAP enhancements or custom versions of the report for bulk analysis, monitoring, or automation of property adjustments.

4. Useful in Migration or Upgrade Projects:

   - During upgrades, migration, or system consolidation, this report can help identify and document all DTP properties to ensure consistent configurations.

 

The DTP properties retrieved vary depending on the system setup and DTP configuration. However, here are some important properties included:

1. General DTP Attributes:

   - DTP Technical Name and Description

   - Source and Target InfoProviders

   - Extraction Mode (`FULL`, `DELTA`, etc.)

   - Activation and Deletion Flags

2. Execution Settings:

   - Data Extraction Mode (e.g., `Serialized`, `Parallel Processing`)

   - Maximum Parallel Processing Options (Number of Processes/Packages)

   - Error Handling Settings (e.g., `Terminate After n Errors`)

3. Filter and Transformation Details:

   - Active Filters and Filters Fields

   - Associated Transformations (e.g., Start Routine, End Routine)

   - Semantic Key Settings

4. Error Handling:

   - Settings related to error handling, such as error handling mode (`No Reporting for Errors`, `Request Green After Errors`, etc.).

   - Error Stack Activation and Management Parameters

5. Monitor and Logging Details:

   - Log Retention Settings

   - Update Mode (`Insert`, `Overwrite`, etc.)

6. Special Runtime Properties:

   - Runtime Modes

   - Data Package Sizes

   - Threshold Limits for Data Records

 

Program selection screen:


Program output:


Thursday, April 30, 2026

Script Logic / BAdI Prompt Strings Limits - A Hidden Pitfall

Recently, I ran into a strange issue related to BPC package execution. The package had several prompts defined and called Script Logic (an LGF file), which in turn invoked a custom BAdI. I observed that not all the data entered into the prompts was being processed. Strangely, when I entered only the data that wasn't calculated on the first run, it was processed correctly.

For some time, I couldn't figure out what was happening and why not all the data was being processed.

Root Cause

The way I entered data into the prompt was by choosing a node in a dimension hierarchy and selecting Base Member as the relationship type. The system then resolved all base members for that node and included them in the prompt. However, some of the dimensions populated this way had a large number of base members. As a consequence, not all of them made it to the Script Logic and subsequently to the BAdI. Those that didn't fit were simply not processed — silently.

It seems there is a certain threshold that limits the size of a prompt value. Most likely, there is an internal buffer of approximately 1,333 characters per variable, possibly tied to the ABAP data type used internally (often STRING or CHAR1333). I wasn't able to find any SAP documentation or SAP Note confirming this exact limit, but the limit is definitely there.

Solution

Instead of selecting Base Member as the relationship type, select Member. This way, only the node value — represented as BAS(<node_name>) — is passed to the Script Logic. The Script Logic then resolves all the base members for the node itself and successfully passes all of them to the BAdI. No truncation occurs.

Sunday, March 22, 2026

Troubleshooting AMDP procedures

T-code AMDP_UTILS (program RS_AMDP_UTIL) is a collection of ABAP programs related to AMDP related development. It serves a launchpad from where it is possible to run all the specific AMDP programs.



Description                                                  ABAP program

1. Debug the syntax check of an AMDP class                                    RSDBCHK_AMDP

Used to check, verify, or analyze the consistency of AMDP object.

 

2. Create, display, and delete database objects in an AMDP class           RSDBGEN_AMDP

Used for manipulating of database object belonging to AMDP object. E.g. deleting the AMDP procedures and recreate them with the most recent definition.

 

3. Find and delete obsolete AMDP database objects                               RS_AMDP_CLEANUP_TEST

Can be used for manual deletion of database artifacts belonging to AMDP object in case of an error.

 

4. Clean up inconsistent AMDP database obj (Note 2797905)                RS_AMDP_CLEANUP_INCONS_DBOBJS

Used for a cleanup for inconsistent AMDP entries on the database for a given class name.

 

5. Check the system configuration for AMDP                                        RS_AMDP_SICK

Checks several preconditions for syntax, generation and runtime for ABAP managed stored procedures are satisfied. As they are native database operations the checks depend on the database in the system.

 

6. Show the SQL environment                                                            RS_DB_ENVIRONMENT

Displays either own or other SQL properties stored in system view: sys.m_session_context

 

7. Touch for AMDP runtime                                                                 TOUCHSRC_AMDP

It is performing a so called “touch” means it is forcing the regeneration of a specific ABAP program. In this case the AMDP artefact.

 

8. Display the logical schema definitions                                              RS_DB_SCHEMA_DEF

 

9. AMDP table and scalar functions (consistency check)                        RS_AMDP_CONSISTENCY

AMDP Table Function Consistency Check

 

10. AMDP repair table functions (D010CDSTFUNCDEP)                         RS_AMDP_TFUNC_REPAIR

Repair tool for inconsistent CDS table functions (table D010CDSTFUNCDEP). Program searches for CDS table 

functions without entries in table D010CDSTFUNCDEP. If any inconsistencies are found use 'REPAIR' to repair them (by generating the corresponding AMDP classes).

 

11. AMDP debugger trace                                                                   RS_AMDP_DBG_TRACE

Control tracing of AMDP Debugger's SYS.DEBUG Calls

 

12. AMDP debugger prototype                                                           RS_AMDP_START_DEBUGGER

Control AMDP Debugger Prototype

 

13. AMDP PlanViz trace prototype                                                      RS_AMDP_PLANVIZ_TRACE

Control tracing of AMDP Calls via PlanViz

 

14. AMDP statement trace prototype                                                   RS_AMDP_STMT_TRACE

Control tracing of AMDP calls via SYS.M_ACTIVE_PROCEDURES means it controls SQL statement trace for AMDP calls, e.g. calls to HANA procedures.

 

15. AMDP plan profiler trace prototype                                                RS_AMDP_PLAN_PROFILER_TRACE

To be used as a control of SQLSCRIPT PLAN PROFILER trace for AMDP calls, e.g. calls to HANA procedures.

 

16. AMDP coverage trace prototype                                                     RS_AMDP_COVERAGE_TRACE

To be used as a control for a coverage trace for AMDP calls, e.g. calls to HANA procedures managed by the AMDP framework.

 

17. AMDP monitoring trace prototype                                                   RS_AMDP_MONITORING_TRACE

To be used as a controls for monitoring trace for AMDP calls, i.e. calls to HANA procedures managed by the AMDP framework.

 

18. AMDP/CDS call graph analysis                                                       RS_AMDP_VIEW_CALL_GRAPH

To be used to displays an AMDP/CDS call graph (condensed or uncondensed) or a unique call path.

 

19. Compare dependencies between ABAP and HANA                            RS_AMDP_DEP_CHECK

 

20. Manage system messages for consistency check                             RS_AMDP_SYSTEM_MESSAGES

To be used to display or delete messages specifically errors/warnings/informational messages related to ABAP-Managed Database Procedures (AMDP).

 

21. Consistency check for AMDP GRAPH WORKSPACES                        RS_AMDP_GRAPH_WORKSPACE_CHECK

Program checks consistency of GRAPH WORKSPACE definition with respect to uniqueness of key column values, occurrence of NULL values and occurrence of "dangling edges". Such inconsistencies will result in runtime errors when such a GRAPH WORKSPACE is used by an application.

 

22. Display AMDP metadata database tables                                        RS_AMDP_SHOW_DB_METADATA

To be used to display specific AMDP DB metadata tables like sys.procedures, sys.functions, sys.graph_workspaces, sys.synonyms, sys.views, sys.tables. See ABAP class CL_AMDP_SHOW_DB_METADATA for more info.

23. Display CDS synonyms (table and scalar functions)                         RSDBGEN_CDS

Create, display and delete an DB object of AMDP class.


More information:

BW Transformations: HANA runtime

2384315 - AMDP Debugger could not be started due to error message DEBUGGER_NO_MORE_DBG_WP

3247302 - How to collect a PlanViz trace for a HANA execution DTP