Friday, April 28, 2017

Error loading data from BEx Query – so called VirtualProvider based load

Recently I faced following error. It was on BW on HANA system and source of the load was BEx (or as now called BW Query) Query.

Parallel processing of query 1 resulted in the following messages:
Error reading the data of InfoProvider ZCUBE1$X
Error 2,949 has occurred in the BWA/SAP HANA server
TREX_DBS_AGGREGATE]
view or procedure invalidated;table or view name = 0BW:BIA:ZCUBE1/[Request Info: Object Name = "SAPXXX"."0BW:BIA:ZCUBE1", FM
Error reading the data of InfoProvider ZCUBE2$X
Error 2,949 has occurred in the BWA/SAP HANA server
TREX_DBS_AGGREGATE]
view or procedure invalidated;table or view name = 0BW:BIA:ZCUBE2/[Request Info: Object Name = "SAPXXX"."0BW:BIA:ZCUBE2", FM
Errors occurred during parallel processing of query 3, RC: 3
Error while reading data; navigation is possible
An exception occurred
Error reading the data of InfoProvider @Z_BEX_QUERY
Error reading the data of InfoProvider ZCUBE1$X
Error 2,949 has occurred in the BWA/SAP HANA server
TREX_DBS_AGGREGATE]
view or procedure invalidated;table or view name = 0BW:BIA:ZCUBE1/[Request Info: Object Name = "SAPXXX"."0BW:BIA:ZCUBE1", FM
Parallel processing of query 2 resulted in the following messages:
Error reading the data of InfoProvider ZCUBE2$X
view or procedure invalidated;table or view name = 0BW:BIA:ZCUBE2/[Request Info: Object Name = "SAPXXX"."0BW:BIA:ZCUBE2", FM



Normally this should not be an error as having a BEx Query as source system is not an issue since BW 7.x. However this time even query wasn’t runnable. In attempt to run it I got message:
X MESSAGE BRAIN 299: CL_RSR_RRK0_QCUBE_PACKAGE_CTRL INIT_CUR_QCUBE-02
X MESSAGE BRAIN 299: CL_RSR_OLAP_STATE_INVALID CONSTRUCTOR-01-

I tried to regenerate the query in in t-code RSRT but it didn’t help. Then I turned to SAP Notes search. I found a note 1656582 - Query terminations - InfoCubes, DSOs, master
Data in the SAP HANA DB. This Note suggests running ABAP rep RSDDB_LOGINDEX_CREATE for objects reported by the load error. It worked for me and after running it for both cubes reported I was able to successfully repeat the load.

The report offers to show XML output of all things that were recreated. Here’s how output message looks like:



Thursday, April 13, 2017

BEx History not appearing in Query Designer Open dialog

Recently I observed that in my BEx Query Designer there is an empty list on History part of Open dialog pop up window. I knew that I opened many reports in the same BW system in past so it looked like that something doesn’t work. The dialog popup looked like this:



I checked and I found that personalization of BEx History is not active. To activate it is can be done in t-code RS_PERS_ACTIVATE which points to ABAP report of same name.
The t-code is also accessible via SPRO -> SAP NetWeaver -> Business Warehouse -> Settings for Reporting and Analysis -> General Settings for Reporting and Analysis -> Activate Personalization in BEx.

For me it looked like below:


After activating it it turned to this and I started to get a list of previously accessed reports in BEx QD:



The data of previously accessed reports is itself stored in DSO “Personalization Data for the BEx Open Dialog [0PERS_BOD]”. ABAP code which does the activation is encapsulated in ABAP class CL_RS_PERS_PHK and in particular in method ACTIVATE. Table RSPERSHEAD stores information whether BEx History is active or not.

Within the t-code among the BEx history if can also be activated values for BEx Variables that were selected and in case of Web applications report’s drilldowns are saved.


Further information:
1849642 - New revision of the transaction RS_PERS_ACTIVATE
1638155 - Issues related to Inactive Personalization in BEx

Wednesday, April 12, 2017

When process chain will run next time?

One quick tip today for SAP BW developers here. 

When we need to find out when process chain will run next time we normally turn to t-code RSA1 or RSPC1. While having the process chain displayed there is a button “Next Start” available in the toolbar. Clicking on the button there is a pop up window displayed with the information about date/time of the next start.

Now how to find out the same if I need this information in my ABAP program? Luckily there is a nice FM RSPC_GET_DELAY. Just by giving the process chain name as input parameter it displays next start of PC.

ABAP inline declaration doesn’t work in SAP BW

Since I started to use ABAP inline declarations I liked it much. Naturally I’m using it in all SAP NetWeaver environments where I do ABAP programming. However in case of SAP BW I recently faced problem applying the inline declarations.

In particular I programmed a Start routine within SAP BW’s transformation. I used the inline declarations in the Start routine. If I put the same code I had in the routine into standalone ABAP program - the code seemed to work. But if I placed the same code into the routine I got error message while trying to activate the transformation – “Error in Start Routine”.

The transformation couldn’t not be activated. I tried to do hopeless thing – to remove the inline declarations. So I redid the code w/o it. And surprisingly it worked!

The version of the SAP BW system I used was:

SAP_BW                  740     0009   SAPKW74009  SAP BW
SAP_ABA                 740     0009   SAPKA74009  Cross-Application Component
Kernel release          742
Compilation              AIX 1 6 00F79A484C00 use-pr20160324 Mar 30 20
Sup.Pkg lvl.             329
ABAP Load               1981
CUA load                 40


As the inline declarations are available in NW release 7.40, SP05 I assume it should work in SP09. However turned out that BW doesn’t really work with it. In case it is used standalone (e.g. ABAP report or FM) without encapsulating it into BW object like the transformation it doesn’t. I need to try to upgrade my system perhaps to BW 75 to see if it is solved in there :)