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


Sunday, February 15, 2026

SAP Services Status Page(s)

Here’s a brief overview of a few status pages aka current availability and performance related to SAP cloud services:

CLOUD STATUS -> https://www.sap.com/about/trust-center/cloud-service-status.html

SAP for Me -> https://status.me.sap.com (powered by Atlassian Statuspage)

SAP Concur -> https://open.concur.com


Strange entry in BW load job log – ENDx:Get Long TS from / START:Get Long TS from

Recently I observed a strange entry in my BW4/HANA data load job log that appeared like below:

END9:Get Long TS                           RSAR          051

Looking at the particular message details and trying to find its long text number doesn’t help as it is just a placeholder for four strings - & & & &, means very generic message.

Then I tried to find a place in the ode which triggered the message. I found within Function Module RSSM_GET_TIME (that is a part of Function Group RS_GENERAL). There are a few calls of MESSAGE ABAP statement like those below:

message s051(rsar) with 'START:Get Long TS from ' s_destination.

message s051(rsar) with 'END1:Get Long TS from ' s_destination l_error.

message s051(rsar) with 'END2:Get Long TS from ' s_destination l_error.

message s051(rsar) with 'END3:Get Long TS from ' s_destination l_error c_trace.

message s051(rsar) with 'END4:Get Long TS from ' s_destination l_error.

message s051(rsar) with 'END5:Get Long TS from ' s_destination l_error i_from_enq_server.

message s051(rsar) with 'END6:Get Long TS from ' s_destination l_error.

message s051(rsar) with 'END7:Get Long TS'.

message s051(rsar) with 'END8:Get Long TS'.

message s051(rsar) with 'END9:Get Long TS'.

This identifies the place of the BW’s codebase that shows the message. From the code around those MESSAGE statements it was obvious that TS means timestamp. Later I found that the FM has a function (form) TIME_STAMP_ENQ_SERVER. In the form a RSADMIN table parameter LONG-TIMESTAMP-RFC-TRACE is evaluated. Following values of the parameter are being evaluated: X or ON or OFF. Trace level variable is set based on the values evaluated. Later on I found SAP Notes listed below discussing this issue. As per the notes the message are not a errors and there is no harm to the system. However, displaying the message may just slow done the system a little bit. Setting up the LONG-TIMESTAMP-RFC-TRACE parameter with OFF value in the RSADMIN table will make the messages in the job long disappear.

 

More information:

3437790 - Job log shows several entries with message text: Get Long TS from <destination>

3227606 - P29:RSSM_GET_TIME: Hanging situation

3382126 - P29:RSSM_GET_TIME:Switch OFF Traces and too many s-messages END9:Get Long TS


Saturday, January 31, 2026

SAP Cloud Terminology

SAP Cloud terminology refers to the specialized vocabulary, acronyms, and service names used to describe SAP’s cloud ecosystem. Since SAP transitioned from a traditional on-premise model to a so called "Cloud First" strategy, many older terms have been renamed or evolved. Below list below doesn’t meant to be complete or exhaustive. It just serves as a quick intro into cloud terminology that SAP has. Not need to mention that these terms and their definitions are subject to change. Thus, always consult with SAP official sources. Such as SAP Trust Center that is official repository where SAP hosts all legal, compliance, and service-level documentation.

The most critical thing to know is that SAP Business Technology Platform (SAP BTP) is the foundation for almost all SAP cloud services.

Core Platform Terminology

SAP BTP (Business Technology Platform) - The "operating system" for the SAP cloud. It’s a Platform-as-a-Service (PaaS) that hosts everything from databases to AI.

Hyperscalers - The underlying infrastructure providers (AWS, Microsoft Azure, Google Cloud) that host SAP’s cloud services.

Subaccount - A structural unit within BTP used to manage applications, services, and users.

Environments or Runtimes - Within BTP where developers deploy code. Basically, they are two: Cloud Foundry and Kyma. Cloud Foundry is for standard web apps. Kyma is for Kubernetes-based containerized apps.

Agreement - Is the legal and structural framework that governs how a customer uses and pays for SAP cloud services. There are three types of them:

·        BTPEA - BTP Enterprise Agreement - "consumption-based" agreement, customer commits to a certain amount of cloud credits and spends them on any service you want.

·        CPEA - Cloud Platform Enterprise Agreement - The predecessor to BTPEA. It works similarly with a "commit-to-consume" model using credits.

·        PayG - Pay-As-You-Go - Agreement with no upfront commitment. You are billed monthly based on exactly what you used.

Unit – Typically refers to the standardized measurements used to quantify how much of a service customer is using. However, as per multiple commercial models, the unit can refer to three distinct layers of the BTP platform: Capacity Units, Units of Measure, or Cloud Credits.

Credits (Cloud Credits) – It is a prepaid digital currency used to pay for cloud services. The credits are bought upfront. One credit usually equals a specific monetary value (e.g., $1 or €1) as per a list price.

Entitlements - Are rights to use specific resources. If Credits are the money in customer’s wallet, Entitlements are the items the customer is actually allowed to buy and the "limits" on how much of them can be used.

Quota - Numeric limit of BTP service (e.g., 64 GB of RAM, or 2 instances of a database).

Usage - Is the actual consumption of services.

Usage Metrics - Are the specific units of measure used to calculate how much of customer balance (Credits or Subscription) is consumed. Usage Metrics may differ in case of different BTP services.

Capacity Unit (CU) - Is a ratio of services consumed via the Cloud Service and is calculated as set forth in the respective Product Supplement, Service Description Guide or Service Use Description.

Service

Usage Metric

Meaning

SAP HANA Cloud

Capacity Units

Combines RAM, CPU, and Storage into one power unit.

Integration Suite

Messages

Volume of data being moved between systems.

SAP Build Apps

Active Users

Number of people building or using apps.

Object Store

Gigabytes (GB)

Physical space files occupy.

SAC

Capacity Units

Compute, memory, credits.

DataSphere

Capacity Units

Multiple factors such as Data Lake usage, storage, memory, compute and more

BDC

Capacity Units

Those of SAC, DataSphere and on top of that DataBricks related as well: serverless SQL compute, SAP Object Store requests, and more

 

Cloud Package - Means a defined set of Cloud Services that are subject to a single subscription fee and collectively deemed a Cloud Service.

Content - Means any business logic, code, data models, configurations, user data, applications or other electronic materials created by customer.

Cloud Service - means any distinct, hosted, supported and operated on-demand solution provided by SAP.

Service Description Guide (SDG) - Is a legally binding document that defines:

·        Usage Metrics: Exactly what constitutes a "unit" (e.g., what counts as a "Document" vs. a "Record").

·        Service-Specific Terms: Rules that only apply to one specific tool (e.g., data retention limits for AI services).

·        SLAs: The guaranteed uptime for each specific service (e.g., 99.7% vs 99.9%)

Test, Demonstration and Development Cloud Services (TDD Cloud Services) - Refers to a specific category of licenses and environments designed exclusively for non-productive use.

General Terms and Conditions for SAP Cloud Services (GTC) – Is the foundational legal document of an SAP cloud contract. While the Order Form tells what customer bought and the Service Description Guide tells how it works, the GTC defines the legal "rules of engagement" between the customer and SAP.


More Information:

SAP Agreements

General terms and conditions

Service-level agreements

Service Description Guide

SAP Business Technology Platform Supplemental Terms and Conditions

Friday, January 2, 2026

ABAP Function Group RS_GENERAL

Among ABAP class CL_RSAR_FUNCTION there are also other useful places of ABAP code important to BW development. This time I picked up Function Group RS_GENERAL. It bundles generic helper function modules that are reused across SAP. It contains following Function Modules:

RRSV_SYSTYPE_GET                                Determine System Type (SAP/Customer)

RSAR_DATE_CHECK_PLAUSIBILITY             Plausibility Check for Date

RSBB_URL_PREFIX_GET                           Return of Protocol, Server, and Port

RSDG_MSG_APPEND_TO_PROTOCOL          Add Message to Application Log

RSDG_WORD_WRAP                                Divides a String into Substrings of Defined Length (Word Wrap)

RSPC_SHOW_DOCUMENTATION                 Display Documentation for a Process Type

RSRA_GET_DEFAULT_LANGUAGE                Returns Default Language of System

RSR_SYSTEM_GET_UNIQUE_ID                  Temporary Wrapper of SYSTEM_unique_ID_GET

RSSM_ADD_TIMESTAMPS                          Adds Two Time Stamps (One of Which Is Earlier Than 1.1.0001)

RSSM_CHECK_ASSERT_BREAKLUXM_ON     break_luxm stuff

RSSM_CONVERT_DAYSEC2TIMESTAMP        Converts Days and Seconds into Date, Time, and Time Stamp

RSSM_CONVERT_TIMESTAMP2DAYSEC        Converts Date and Time or Time Stamp into Days and Seconds

RSSM_EVENT_RAISE                                Trigger BP_Event_Raise; Can Be Called Using RFC

RSSM_GET_TIME                                     Get Time

RSSM_GET_TIME_INT INTERNAL:               Get Time from Enqueue Server

RSSM_ICON_CREATE                               Create Icon with Quick Info Longer Than 30 Chars (132 Bytes in Total)

RSSM_SLEEP_DEBUG                               Sleep Debug User / Sap - System

RSSM_SUBSTRACT_TIMESTAMPS               Subtracts Two Time Stamps from One Another

RSSM_UNIQUE_ID                                   Temporary Wrapper for SYSTEM_UNIQUE_ID_GET

RS_POPUP_TO_CONFIRM_ONLY_ONCE        Confirmation Popup "Do Not Show This Question Again"

RS_RFC_IS_GUI_ON                                Determine Whether GUI Is Available for Popups and so On

 

The functions in there are focused to:

General BW operations: various supporting fields and functions (time etc).

Monitoring and Data Loading/Processing: functions used during BW data loading processes (e.g. RSSM_GET_TIME that handles timing and monitoring operations during BW data processes).

Especially FM RSSM_CHECK_ASSERT_BREAKLUXM_ON checks the breakpoint of SAP internal BW backend developer called Matthias Lux. He is mentioned in quite a few of BW objects I wrote about it here - Most famous BW backend SAP developer :)

Notice the functions in this group are not released to be used!