Showing posts with label Admin Workbench. Show all posts
Showing posts with label Admin Workbench. Show all posts

Friday, December 24, 2021

How to find out InfoArea for particular BW object type – in BW/4 systems?

How to find out InfoArea for particular BW object type – in BW/4 systems?

This blog post is continuation of my earlier blog - How to find out InfoArea for particular BW object type. That blog was focused on classic BW running on anyDB. In advent of BW/4 the tables for the BW objects have changed a little so I’m refurnishing the old blog post in here.

BW obj type

Table

Input field

Field which holds InfoArea’s name

InfoObject

RSDIOBJ

IOBJNM

MTINFOAREA

aDSO

RSOADSO

ADSONM

INFOAREA

Composite Provider

RSOHCPR

HCPRNM

INFOAREA

Open ODS View

RSFBP

FBPNAME

INFOAREA

OpenHub

RSBOHDEST

OHDEST

INFOAREA

DataSource

RSDS

DATASOURCE

APPLNM *

InfoSource

RSKSNEW

ISOURCE

INFOAREA

Data Flow

RSDFDMOD

DATAFLOW

INFOAREA

BW Query components

RSZCOMPDIR

COMPUID

COMPID

INFOAREA

HANA Analysis Processes

RSDHAMAP

HAAPNM

INFOAREA *

Planning Sequence

RSPLS_SEQUENCE

SEQNM

INFOAREA *

Process Chain

RSPCCHAINATTR

CHAIN_ID

APPLNM *

 

* Field not populated (not used) in the table

* Instead of InfoArea an Application Component is used

 

More information:

How to find out InfoArea for particular BW object type.


Friday, February 7, 2020

Deleting overlapping requests

A process available in process chain called "Delete Overlapping Requests" is very useful feature within the administration of data targets. I blogged about it already here. This time I want to point to few situations that may occur while using the process mentioned.

First of all the "Delete Overlapping Requests" process in case of DTPs with respect type of the DTP. It is a common misunderstanding that only DTPs type of FULL load are supported. That would mean that in case the DTP is type of DELTA the deletion of overlapping request will not work even the deletion conditions are met. However, there is a way how to make it work. Depending on BW version a Notes like 1336410 (70SP22: Enhancements to CL_RSBK_DTP=>GET_ALL_BY_PROPERTY) and 1359397 (P22:PC:REQUDEL:Switching full variant to deleting delta DTPs) need to be implemented. Once it is the case, the "Delete Overlapping Requests" process works with delta enabled DTPs. Only drawback is that the DTPS must be set with indicator specifying that delta data is to be transferred only once. Also another option to try out is to first set the DTP to full mode in that way specify the DTP into the "Delete Overlapping Requests" process and afterward to set the DTP into delta mode.

Another interesting case can be; when "Delete Overlapping Requests" process works with DTP, which has Routines on its filter. Depending on filter’s field (infoobject) one needs to be careful while carrying out ABAP coding. Especially during populating range low/high value by using variables that are of different type as the field/infoobject. Because of ABAP nature while converting between different data types a value can be aligned to LEFT instead to RIGHT. Thus value that is aligned to other side is not recognized as correct value. See Note 2392079 ("Delete overlapping request" variant does not work properly if DTP has a filter routine) for specific example.


More information:
2753683 - "Delete overlapping requests" variant does not delete expected requests

Tuesday, July 31, 2018

Zero elimination for cubes

Zero elimination (sometimes called NULL elimination) is process within BW which does deletion of records in fact table where all Key Figure values are zero. This can be normally seen as BW administration task. It can be performed on Manage screen of cubes in RSA1. On tab called COLLAPSE a check box “With Zero Elimination” is available. 

This task can also be done outside from the RSA1 by executing or scheduling a ABAP report RSCDS_NULLELIM. The report calls FM RSCDS_EXEC_NULLELIM for the task execution. In case the BW system is HANA based there is a report RSHDB_EXECUTE_CLEANUP_NULLELIM for HANA DB.

Parameters of program are very well described in this wiki.

From technical point of view notice there are few limitations of this functionality. Main one is that there is no 100% zero elimination for the Key Figures of type FLTP. It is not possible to precisely evaluate whether the KF type of FLTP is really equal to zero. Value of the KF may be close to zero but not precisely zero. Therefore, as word of advice in scenarios that rely on exact summing never use the KF type of FLTP. Report is using value 1.0E-50 which is pretty close to zero but there might be a values stored in the BW that are even smaller.

Also the NULL elimination is only possible if the KF aggregation is SUM for all of the KF used in the cube. If the cube contains the KF with aggregation types other than SUM (e.g. MIN or MAX) the database cannot eliminate the zero lines during the compression.

More information:
1224631 - Program RSCDS_NULLELIM and Float-Keyfigures (Type FLTP)
1587759 - Duplicate Records in InfoCube Dimensions
1820706 - Report RSCDS_NULLELIM fails on SAP HANA
2206835 - Report RSCDS_NULLELIM now also on SAP HANA
2521338 - Compression with Zero Elimination does not work

Saturday, March 10, 2018

Favorites in BW’s RSA1 Modeling section

As of version 7.x BW systems contain a useful function of saving particular BW objects that is maintained via RSA1 into Favorites. This enables faster access to the objects as it doesn’t need to be lookup up the area there it belong as there are thousands of the objects. 
As an example one InfoObject that is normally accessible under InfoObject part of Modeling section of RSA1 can be also accessed via Favorites part of the same Modeling section of the RSA1.

I was curious what the table name is where the objects of the Favorites are actually stored. Whole processing of the Favorites is encapsulated in ABAP class CL_RSAWBN_SER_FAVORITES.  For example method that loads the objects is LOAD_DATA.

There are few tables within this functionality. The table where the objects are stored is SPERS_OBJ - Personalization object repository. But this one is just a form of keys to the objects. The method later retrieves the objects types, its description and so on to be able to present them in the RSA1.

Unfortunately there is no straightforward possibility to easy download/upload a list of objects that one inserted into the Favorites. This is contrary to regular SAP GUI favorites that can be downloaded/uploaded between the systems very easily (See post: Download/ Exporting of user’s favorites SAP GUI). However one easy trick is there to at least a get the type and name of objects but with hierarchical representation (like folders). 

To get the list go to t-codes SU01 or SU01D and navigate to Personalization. Find entry called RS_BI_DWB_FAVORITES - Favorites in the BI Data Warehousing Workbench and double click on it.


This will get you a table of all the objects displayed in your Favorites area. The table can be printed to local file and objects can be saved offline by this procedure.



Friday, January 5, 2018

Delete Overlapping Requests from cube: SAME OR MORE COMPREHENSIVE vs OVERLAPPING

Within process chains there a particular process that can delete overlapping request from cubes. It is useful to use it case of scenarios where same data is being reloaded and staying same request in the cube would cause double data in reports.

While adding this process into the chain couple of settings need to be specified. What is crucial is to provide selection criteria for the request(s) to be deleted. There are two options on how to setup the request deletion in this process based on selection.

1. SAME OR MORE COMPREHENSIVE

Extract from the documentation:

Only delete if same/comprehensive selection conditions apply.

If you set this indicator, requests are only deleted from the InfoCube if the selection conditions of the new request are the same as or more comprehensive than the selection conditions of the request to be deleted.

 

2. OVERLAPPING

Extract from the documentation:

Also delete if partially overlapping select. conditions apply

If you set this indicator, existing requests are also deleted from the InfoCube if the selection criteria of the new request partially or wholly overlap the selection criteria of the request to be deleted.

Basically difference between the two is 1st case (SAME) the request that shall be deleted must be the same as the one loaded this is also with regards to number of loaded records. Whereas in 2nd case not all criteria need to match; it is less restrictive than 1st case.



 

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:



Wednesday, January 25, 2017

Deleting error stack of DTP via ABAP

Error stack of DTP is function that is very useful in scenarios where data is not coming in proper format. While using it erroneous records are filtered out and only those which are correct are uploaded into data target. Later on BW administrator can correct the erroneous records and upload it too.


Below there is the error stack req ID 2.115.361 as depicted in DTP’s maintenance screen:


Now imagine that this error stack req is snot needed any more. We can also see it via ABAP report RSB_ANALYZE_ERRORLOG. The report provides a list of all available error stacks request in the system while analyzing contents of error tables:


To delete the error stack data of particular request we can use ABAP report: RSBM_ERRORLOG_DELETE while specifying particular DTP’s ID and ticking off “Delete Log” check box:


This is how output of RSBM_ERRORLOG_DELETE report looks like. After that the error stack req is not visible from RSB_ANALYZE_ERRORLOG either in t-code RSA1.


More information:
1095924 - Correction: Deletion/analyis report for error handling logs











Saturday, December 31, 2016

How to delete process variant of Process Chain

It is an often case that an process variant within process chain is created but later on for whatever reason it is not needed anymore. The process variant should be deleted in such a case. So how to delete an old process variant that is not needed?

Basically within t-code RSPC1 (or via RSA1 -> Modeling -> Process Chain) any PC needs to be displayed in the PC maintenance mode. Then depending on Process Type of process that needs to be deleted such a Process Type needs to be found within the displayed PC.

1. Right Click -> Exchange Variant

2. Select the process variant that needs to be deleted from available pop-up list

3. Double click on selected process variant


4. On next screen of the process variant maintenance - click on change button and Delete the selected process variant via Delete button


Friday, December 30, 2016

Data load request deletion logs

This is a short post about how to find out a data deletion related logs in SAP BW. Mostly details about data deletion operations that happened can be revealed by t-code SLG1. 

SLG1 ->provide following input on its selection screen:

Object:                   *
SubObject:              *
External ID:            value1:         CHECK_DM    
Value2:         MON:PROTOCOLL_ACTION   
value3:         *DELETE_FROM_PSA
value4:         ERRORSTACK_REQUEST_*
value5:         *-DELET-*
value6:         *req_no*










1/ CHECK_DMRX…:
FB RSM1_CHECK_DM_GOT_REQUEST called from PRG LRSM1F08; row 004240
Request '                                          1259141'; DTA 'RX…'; action 'D'; with dialog 'X'
Leave RSM1_CHECK_DM_GOT_REQUEST in row 70; Req_State ''

2/ MON:PROTOCOLL_ACTION
Request ID                                           1259141 from data target RX… scheduled for deletion

3/ DTPR_7TQYDLHVH8KTJ5A6QDBVV2F3Q-DELETE_FROM_PSA
Request DTPR_7TQYDLHVH8KTJ5A6QDBVV2F3Q deleted from PSA; RSREQICODS entry also deleted
Request DTPR_7TQYDLHVH8KTJ5A6QDBVV2F3Q not found in IC RX…; RSREQICODS also deleted

4/ ERRORSTACK_REQUEST_1259141
MON:PROTOCOLL_ACTION-DELET-RX…
Delete is running: Data target RX…, from 1259141 to 1259141
P-DIMID 156 deleted from table /BIC/DRX… (InfoCube RX…)
P-dimension index read; number of records: '26'
Number of request entries to be deleted: '1'
'1' records indexed
Prepare optimize and commit optimize executed
Request with P-DIMID 1259141 from InfoCube RX…deleted (27000242 data records)
Delete was successful: Data target RX…, from 1259141 to 1259141
Delete is finished: Data target RX…, from 1259141 to 1259141

5/ DTPR_7TQYDLHVH8KTJ5A6QDBVV2F3Q-DELET-RX…
Delete is running: Data target RX…, from 1259141 to 1259141
P-DIMID 156 deleted from table /BIC/DRX… (InfoCube RX…)
P-dimension index read; number of records: '26'
Number of request entries to be deleted: '1'
'1' records indexed
Prepare optimize and commit optimize executed
Request with P-DIMID 1259141 from InfoCube RX… deleted (27000242 data records)
Delete was successful: Data target RX…, from 1259141 to 1259141
Delete is finished: Data target RX…, from 1259141 to 1259141

6/ *req_no*

Friday, January 8, 2016

How to find out InfoArea for particular BW object type?

- update on 24DEC2021 - 

I run into this issue quite often. I need to find out where in BW object’s tree in modeling area of RSA1 the object is precisely located. I mean what is an InfoArea where particular object is located. Well I can search for it and once it is found the system gets me directly into its position. However it gets worse when I do not have an authorization to access the object. In such a case even search does not find it. Therefore I have to lookup particular InfoArea manually. Here I’m posting a kind of cheat list with all the tables which can help to lookup the InfoArea of different BW object types.

Kindly notice that list of BW object types is not comprehensive but it server with few basic and most used types.

BW obj type
Table
Input field
Field which has InfoArea’s name
InfoObject
RSDIOBCIOBJ
RSDCHABAS
IOBJNM
CHABASNM
INFOOBJCAT
INFOAREA
DSO
RSDODSO
ODSOBJECT
INFOAREA
SPO
RSLPO
LPO
INFOAREA
OpenHub
RSBOHDEST
OHDEST
INFOAREA
InfoCube
RSDCUBE
INFOCUBE
INFOAREA
Composite Provider
RSDDCOPR
COMPNAME
INFOAREA
Data Flow
RSDFDMOD
DATAFLOW
INFOAREA
HANA Analysis Processes
RSDHAMAP
HAAPNM
INFOAREA
HANA CompositeProvider
RSOHCPR
HCPRNM
INFOAREA
InfoSet
RSQISET
INFOSET
INFOAREA
Planning Sequence
RSPLS_SEQUENCE
SEQNM
INFOAREA


Guide: e.g. for InfoObject go to table RSDIOBCIOBJ and for given IO name in field IOBJNM value of field INFOOBJCAT gets InfoArea.

More information: