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

Thursday, October 26, 2017

AfO: Texts of BW query not displayed is proper language

Some users of Analysis for MS Excel (AfO) can experience following situation. Texts of BW query like columns/rows names are just showing some technical names (sometimes in German) and not texts that are supposed to be shown in there. The strange texts can appear also in Display panel.


Issue is occurring because different logon language was used for the AfO logon. For example it can be a language of OS – Windows. This happens for users who’s Windows language is different from the languages that are installed in particular BW backend system on which they run the BW’s BEx queries. Also in case there is a Single Sign On in place and users are going directly to system w/o providing credentials they can’t really chose logon language.

Solution here is to activate option to enter the logon language. This can be achieved in AfO’s settings. Under Advanced settings tab there is an option to force a pop-up screen for use to choose the logon language upon logon. In the same logon pop-up, user can change the client.


Saturday, October 21, 2017

Transformation code in INCLUDE: how to perform where-used?

Here let’s have following scenario. ABAP logic for Transformation (TRFN) is encapsulated in ABAP INCLUDE and it needs to be changed. Before a change is done it is beneficial to check what are all TRFN where the ABAP include is used. In case there are several TRFN and change is not supposed to be done for all of them an issues can came.

Normally as the INCLUDE it would be regular ABAP one there is a Where-Used functionality available in t-code like SE38/SE80. However it doesn’t work as the code of TFRN is stored in generated report (GP*).


What actually works in case of the GP* reports is Syntax Check functionality available as well as in the SE38/SE80. Via the Check the list of the all TRFN is available.

APD: all Key figures equal zero after ABAP routine

Working with APD process with ABAP routine I noticed that all key figures were equal to zero. The APD in question had regular BEx query as data source. After then an ABAP routine followed. Code in the routine wasn’t manipulating the key figures. Therefore it was a strange to me why the key figures were all equal to zero.


Currency or unit fields are not a standalone fields as they depend on a value field.  So if just a key figure is mapped in the ABAP routine it won’t transfer real numbers so they all appear as zero. Therefore the key figures associated with the currencies or/and units have to be assigned into field list on “Source Flds” tab in the APD process’s ABAP routine.


Friday, October 20, 2017

BEx Query Designer, query filter: Characteristics Restriction vs Default Values

In the BEx Query Designer there are two areas where characteristics can be restricted (filtered). What are differences between them?


As example this is simple BEx query having characteristics called “BI Appl. Obj. Type” placed at Filter->“Characteristic restriction” area and “InfoProvider Type” at “Default Values” area.



If a characteristic restricted in the “Default Values” area -> users can override the variable value or values at runtime. In the query runtime more values can be pulled into the restriction.


In case the characteristic restricted in “Characteristic restriction” area -> in the query runtime only values which were placed to the filter during query design time can be further restricted but no new values can be added.


Thursday, October 5, 2017

Seldom BEx query error “NODE_TO_NODEDR - (AXI) redesign query” while running in APD process

I encounter following error in my BEx query that didn’t run in APD. In my case it is very seldom error I didn’t experienced it very often. Basically the query doesn’t run and it produces following errors.


System error in program CL_RSDRC_SELDR_SRVS and form NODE_TO_NODEDR-01-            Message No. BRAIN299

This internal error is a targeted termination since the program has an incorrect status.
Error while getting data (AXI); redesign query               Message No. RSCRM027

The scenario in my case was that the query was part of APD process. When I ran the query standalone it worked just fine. Initially I assumed that it is caused by huge query output. However while disobeying limits on query result set it worked well in t-code RSRT. So it wasn’t about the large data set. There are few SAP Notes (2432897, 2098434, 2265753, 2146267 or 1505587) related to error but in my system based on BW 74 SP09 it turned out that all were already implemented. After more digging into SAP ONE Support Site I found a Note: 2265753 - MDX statement terminates with system error in program CL_RSDRC_SELDR_SRVS and form NODE_TO_NODEDR-01- which turned out to be the one that solved this situation. From the Note description it seems that the issue is related to calculation of members member used in the where-clause (slicer).


Friday, September 29, 2017

How to get notification whether Process Chain ran?

There are some possibilities how to monitor runs of process chain in SAP BW system. It can also be achieved from web. However all these options are only informing about the PC status where it actually started to run at least partially. Means at least it reached to processing of the first process within the PC. From that very first process an message can be set up to inform user whether it ran successfully or it failed.

Now what about the PC didn’t run? How can user be informed that it for whatever reason didn’t run? There are not many options how to achieve this as far as I know. I created small ABAP custom program that can run as a job and will be checking the PC (name of the PC given on selection screen) whether it ran in last X days (X also provided on selection screen). Only coding that is missing is part that will send email. Check my other stuff on github for that.

Code available at my github: gist.github.com/softy12

Pattern Selection for DTP with source as DataSource (PSA)

It is not very known fact. At least it was in my case. I was a bit surprised when I realized that my DTP created on top DataSource which was extracting data from it via PSA didn’t pull any data. My case was that I had a filter on DTP where pattern selection was used.

Precisely speaking I had a wildcard used for selection like *something*. Once I ran it no data came. I tried to put precise value instead of the wildcards and it worked. I turned to SAP Support portal and I found a SAP Notes explain this behavior.

Actually this feature is not available in some of BW system. Depending on version of the BW it is only available in higher SP packages. TO be able to use this feature BW needs to be upgraded to these specific versions of the SP – see below.


There is one setting available in DataSource that is influencing behavior of particular field within the DataSource. It is called “Selection Options” and is present on tab Fields of DS maintenance screen. It basically drives what selection options can be processed for the DataSource field. Its values are stored in table RSDSSEGFD-SELOPTS (table has an info on DataSource - Segment Fields). There can be following values for the field set:

0        Undefined Selection Options
1        Selection EQ Permitted
2        Selection BT Permitted
3        Selection EQ, BT Permitted
7        Selection EQ, BT, CP Permitted


More information:
- For BW 7.00 and 7.01 see Note: 2509844 –SP37: Pattern Selection not possible for DTP with source as DataSource (PSA)

- For BW 7.30 and 7.40 see Note: 2150323 - 730SP14: Pattern Selection not possible for DTP with source as DataSource (PSA)

Friday, September 22, 2017

Issue while determine text for fiscal period related IOs

Some time ago I spotted strange behavior in BEx query related to text of fiscal period IOs. In case of 0FISCPER when I entered value of 01.2012 on the query selection screen the text associated with it appeared as March 2012. Similarly for other months there were texts that didn’t correspond to the entered months at all. Also in query output where values of all variables used in query were shown the text again didn’t match the entered fiscal period.

In case of the 0FISCPER the texts are taken from standard SAP table T009C - Period names. The table has also field Fiscal Year Variant (PERIV) specified as a key field. From that fact it is obvious that to get proper value of text for particular fiscal period the Fiscal Year Variant must be present in the query. If the key of Fiscal Year Variant is not present in the SELECT statement that used by query to retrieve the text then first entry that fulfils the SELECT is taken and most likely it is wrong.

Actually in case of my query where the texts of fiscal period didn’t work was missing 0FISCVARNT IO in the query. Once I added the 0FISCVARNT into the query global filter (restricting it to value of K4 in my case) issue was fixed. The query properly determined the text of fiscal period used in the query.

Monday, September 18, 2017

Communication failure while loading data to Open Hub

I came across a following error while using Open Hub functionality in SAP BW. An DTP that is used to load data from BW InfoProvider to the Open Hub it-self was failed and showing following errors:


Error: COMMUNICATION_FAILURE with function RSB_API_OHS_3RDPARTY_NOTIFY and target system . Message No. RSBO523

Error when opening an RFC connection (CPIC-CALL: 'ThSAPOCMINIT', communication rc: CM_ALLOCATE_FAILURE_RETRY (cmRc=2)). Message No. RSBO899

Error while updating to target (type Open Hub Destination) Message No. RSBK241

Operation could not be carried out for Message No. RS_EXCEPTION120
Exception CX_RS_FAILED logged Message No. RSBK228

There wasn’t any ABAP dump generated in BW system so it was obvious (also as per errors) that issue is in target external system that is picking up the data from Open Hub. I had a look into the FM mentioned in the error – RSB_API_OHS_3RDPARTY_NOTIFY as well. The source code of the FM looked strange to me.

FUNCTION rsb_api_ohs_3rdparty_notify.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(OHDEST) TYPE  RSOHDEST OPTIONAL
*"     VALUE(REQUESTID) TYPE  RSBREQUIDOUT OPTIONAL
*"     VALUE(NUMB_OF_PACKETS) TYPE  I OPTIONAL
*"     VALUE(DBTABNAME) TYPE  RSBTABNAME OPTIONAL
*"     VALUE(DBRECORDS) TYPE  SYTABIX OPTIONAL
*"     VALUE(TIMESTAMP) TYPE  RSBTIMESTAMP OPTIONAL
*"     VALUE(REQUEST_GUID) TYPE  RSREQUID OPTIONAL
*"  EXPORTING
*"     VALUE(RETURN) TYPE  BAPIRET2
*"  TABLES
*"      PARAMETERS STRUCTURE  BAPI6107PA OPTIONAL
*"  EXCEPTIONS
*"      COMMUNICATION_FAILURE
*"      SYSTEM_FAILURE
*"----------------------------------------------------------------------

* must be implemented in the 3rd party system

ENDFUNCTION.

What that “must be implemented in 3rd ..” means? After some more investigation it was clear. The FM is called by 3rd party system once extraction for the OH is done. The FM basically just sends back to called system information on how many data were extracted. All this is sent over in parameters of the FM – Req ID, no of records etc. To just transmit this basic info there is no need to put any additional code.

The FM is part of API available for connect a third-party tool to the BW. There are other API’s FM available too:
RSB_API_OHS_DEST_SETPARAMS
RSB_API_OHS_3RDPARTY_NOTIFY
RSB_API_OHS_REQUEST_SETSTATUS
RSB_API_OHS_DEST_GETLIST
RSB_API_OHS_DEST_GETDETAIL
RSB_API_OHS_DEST_READ_DATA

Now let’s came back to the error itself. This is basically connection error between the BW and target extremal system. Once connection between the two was re-established the load was successful.

More information:
1585460 - Error when running DTP to 3rd party Open Hub Destination

Friday, September 1, 2017

How to find existing workbooks in BW system

Here are few options how to find workbook in the SAP BW system.


1. Via BEx Analyzer: in menu of Analyzer called Open -> Open workbook. This give only list of workbooks that user is authorized to authorized to access to. Either via menu role, favorites etc.
  

2. Via Analyzer Office for MS Excel: in menu Analysis -> Open Workbook -> it can be opened either from BusinessObjects platform or from SAP NetWeaver platform. Here again only access to the workbooks that user is authorized to access. Just these workbooks are not those created in BEx Analyzer but either migrated to AfO or newly created in AfO.



3. Via RSA1 – Metadata Repository: in t-code RSA1 -> Modeling -> Metadata Repository all the workbooks from all users available are listed. While drilling into it all details like what queries are used in the WB, who created it, when, last change and many others also can be found.



4. Via ABAP – FM RRMX_WORKBOOK_LIST_GET. If you need to deal with available workbooks in your custom ABAP program you can use this FM to get list of the existing workbook. Input parameters are just 2:
I_SORT                          1           “comes by default
I_ALL                           Y            “needs to be supplied

Output is a table E_LIST which has all information about the workbooks like:
WORKBOOKID - GUID of the workbook      
TITLE                      - Long description
FILESIZE                 - workbook file size in bytes
QUERYCOUT             - no of queries used in the workbook      
TYPE                      - Indicator: InfoCatalog type
TSTPNM                  - Last changed by user
TIMESTMP               - Last changed on date and time in timestamp format


5. t-code RRMXP – program RRMX_START_EXCEL, here you can specify workbook technical ID and once it is entered it opens BEx Analyzer with particular workbooks.