Thursday, December 14, 2017

Usage of BAPI GetMembers

There is an MDX Function Module (BAPI) available in BW systems for retrieving data. Its name is BAPI_MDPROVIDER_GET_MEMBERS and it is sometimes referred as “GetMembers” BAPI. Sometimes it is worth to use this BAPI as it is used by frontend tools like WebI. While investigating inconsistencies in data provided by the WebI vs e.g. tcode RSRT the BAPI might be good starting point.

In below example I use technical content InfoProvider - 0TCT_MC01 Front-End and OLAP Statistics (Aggregated). Below is example call of the BAPI. The data is returned in table parameter called MEMBERS.

Import parameters            Value
CAT_NAM                         0TCT_MC01
CUBE_NAM                       0TCT_MC01/0TCT_MC01_Q0121
DIM_UNAM                       [0TCTBISBOBJ]
HRY_UNAM                       [0TCTBISBOBJ]
LVL_UNAM                        [0TCTBISBOBJ]
LVL_NUMBER                    01

Wednesday, December 13, 2017

Trace files for BEx tools

Frontend (BEx) tools of SAP BW are supporting recording of traces. Such traces can be useful for providing detail information for SAP support team in case creating incident via SAP Support Site.
How to enable generation of BEx tools trace files? 

In case of the “BEx tools” like Bex Analyzer, Bex Query Designer or BEx Report Designer there is an menu "BEx/Tools" -> "Global Settings" -> “Trace” tab, where set trace level to shall be set to "Verbose" value. Trace files are stored in folder X:\Users\user_name\AppData\Local\Temp\

Example of the trace file name:

In case of Analysis Office for MS Excel/PowerPoint the trece function can be enable via Analysis menu -> "Settings" -> Support tab. Trace files are stored in folder X:\Users\user_name\AppData\Local\Temp\Sap\Cof\
Example of the trace file name:

More information:
948489 - Customer Message requirements for BEx Report Designer
948487 - Customer Message requirements for Web Application Designer
585643 - Extended BW Component Frontend DLL-Usage Analysis

Friday, December 1, 2017

Skip Process Chain’s process – some details

I mentioned possibility of skipping Process Chain’s (PC) process or step in my older posts related to PCs - Automatic restart of failed PChain step and other PC improvements. While using it I found it very useful as it is possible to prevent failure of the PC. 

It happened to me recently that within one PC I skip the process. The PC was successfully finished because the broken process wasn’t executed. However after some time I have set the process to be skipped it I saw that that my PC is failing. I went to the PC itself and I realized that the particular process is not set to skip. Someone simply went to the PC and “un-skip” it. I was curious to learn when and who did it.

I found a table that stores the processes that re to be skipped. It is table RSPCCHAIN_SKIP – “Skipped processes”. But it was my unpleasant surprise that information on who and when the particular process was set to skip is not there. Only information present there are like Process Type, Process Variant (Name), Sequence number, Skip Process. I found it strange to be honest. I tried to debug the particular functionality hoping there are some other tables logging on information I was looking for. I found methods _SET_SKIPPED of class CL_RSPC_FRONTEND. Here really only fields mentioned above are populated. Furthermore another method SET_SKIPPED of class CL_RSPC_CHAIN is called that updates the RSPCCHAIN_SKIP table.

Conclusion is that at the moment (speaking of BW version 74 SP 09) there is no possibility to find out who and when set/unset Skip of process with the PC.

I followed up and wanted to post this missing functionally to SAP idea place as suggestion for future product improvements. I learned that old site is now obsolete and content was moved to Customer Influence site. As per the Data Warehousing in General (CLOSED) suggestion page the SAP BW is “a stable and mature state now.” .. “we have come to the conclusion that there is no longer a need to keep this communication channel constantly open.” In other words do not dare to suggest any improvements to SAP BW – it is stable and matured enough :)

Monday, November 20, 2017

Run of DTP error instance DUMMY_NO_REQ_CREATED

In case of an attempt to run a DTP process it ends with an error “instance DUMMY_NO_REQ_CREATED” there are following cases possible that might went wrong.

·         Transformation (TRFN) related to the DTP is not active
·         Issues occurred while attempt to active the TRFN
·         Runtime object of the TRFN cannot be created
·         Request can’t be created

This error can be recognizable with Process Chain of its log view. The DTP process looks like it is disable, not green neither red. Simply it didn’t run.

The error also can be observed in logs of PC and of corresponding job:

PC log:
Process Data Transfer Process, variant OBJ1 -> OBJ2 has status Skipped at restart (instance DUMMY_NO_REQ_CREATED)

Job log:
Process Data Transfer Process, variant OBJ1 -> OBJ2: has status Ended with errors (instance DUMMY_NO_REQ_CREATED)           RSPC   9

Resolution in most cases is reactivating or re-transporting corresponding TRFN.

More information:
2416976 - DTP in process chain fails with DUMMY_NO_REQ_CREATED

Friday, November 3, 2017

SAP NW ABAP server system info via ABAP class CL_SERVER_INFO

While using t-code SM66 I observed that in almost every time I enter in there I see some process running associated with ABAP class CL_SERVER_INFO. This was in SAP NW 74 ABAP stack based system. Depending on the kernel version there might be ABAP report SAPLTHFB displayed instead of the class. The class / report are used here to collect the work process information from all the instances of a system. It normal behavior of the ABAP system for a dialog work process of particular user logged into the system.

In older version of the SM66 t-code (in newer releases called SM66_OLD) there is an option to hide these work processes does. In the new SM66 this options is not there.

I had a closer look at the ABAP class CL_SERVER_INFO. It provides useful information about the ABAP server. For demonstration see mu github’s gits here - ZMM_SYS_INFO.abap

More information:

Friday, October 27, 2017

How to sort out many RKF/CKF created on top of infoprov?

Global calculated or restricted key figures (CKF/RKF) created on top of infoprovider are a very common things developed in BW systems. Using global objects like this enables sharing the objects between different queries leveraging their functionality. Normally the SAP BW developers use them very often. They can be accessible from BEx Query Designer (QD) on left panel where other global objects like structures are visible.

Problem becomes when there are too many objects. It can be very difficult to navigate within the KFs in case there are hundreds or thousands (yes I’ve seen that too) of them. To solve this SAP is providing functionality where the RKF/CKF can be categorized within the hierarchy. The function is available in tcode RSZTREE (ABAP report RSZ_COMPONENT_TREE). It enables hierarchical display of the KFs. The KFs can be grouped into nodes of the hierarchy. The final structure can be also then visible in the BEx QD so it is available to developer while dealing with the BEx queries.

The hierarchy can be created and maintained with the tcode mentioned. The hierarchy of the RKF/CKF can be transported together with inforprovider involved. Tables where the hierarchy data is stored are RSZCOMPTREE and RSZCOMPTREETXT.

The tcode is available as of SAP NetWeaver BW 7.30 SP08.

More information:
1648317 - Hierarchical display of RKF/CKF in Query Designer