Tuesday, December 26, 2023

Request Status Process Management (RSPM)

Request Status Process Management (RSPM) concept for BW request management is in place since a higher support packages of SAP BW 7.5 and also in SAP BW4/HANA. It replaces RSSM (Request Status Management) request management based on 0REQUID. The Request Status Process Management (RSPM) based on Request Transaction Sequence Numbers (TSN, 0REQTSN). Details can be found here.

However, in this post I want to mention few interesting TSNs that are used in BW systems. The TSN is referred by RSPM_TSN domain in DDIC. There are following special TSN defined in class interface IF_RSPM_CONSTANTS.

 

transfer_min = '18991231000000000000000' = {1899-12-31 01:00:00 000000 CET}

transfer_min_old = '19000101000000000000000' = {1900-01-01 01:00:00 000000 CET}

transfer_max= '19680120031408000000000' = {1968-01-20 04:14:08 000000 CET}

min = '19700101000000000000000' = {1970-01-01 01:00:00 000000 CET}

reorg_low_min = '19700101000000000001000' = {1970-01-01 01:00:00 000001 CET}

reorg_low_max = '19700101000000999998000' = {1970-01-01 01:00:00 999998 CET}

housekeeping_min = '19720101000000000001000' = {1972-01-01 01:00:00 000001 CET}

housekeeping_max = '19723112235959999998000' = {????-??-?? ??:??:?? ?????? UTC}

dummy = '20140206171506000000000' = {2014-02-06 18:15:06 000000 CET} - timestamp of data element RSPM_TSN

real_min = '20140206171506000001000' = {2014-02-06 18:15:06 000001 CET} - as above plus 1 ┬Ás

real_max = '28991231235959999998000' = {2900-01-01 00:59:59 999998 CET}

not_activated = '29000101000000000001000' = {not activated} - dummy TSN for not yet activated load requests

simulation_min = '29000102000000000001000' = {2900-01-02 01:00:00 000001 CET

simulation_max = '29000102000000999999000' = {2900-01-02 01:00:00 999999 CET}

reorg_high_min = '29991231235959000001000' = {3000-01-01 00:59:59 000001 CET}

reorg_high_max = '29991231235959999998000' = {3000-01-01 00:59:59 999998 CET}

max = '99991231235959999999999' = {9999-12-31 23:59:59 999999 UTC}

nc_reporting = '99999999999999000000001' = {????-??-?? ??:??:?? ?????? UTC}

nc_user = '99999999999999000000002' = {????-??-?? ??:??:?? ?????? UTC}

nc_temp = '99999999999999000000003' = {????-??-?? ??:??:?? ?????? UTC}

 

More information:

BW request types: RSSM vs RSPM

PC does not start due to not maintained start variant

I faced recently a strange error within my newly created process chain. On attempt to start it up, I got below error message:

Job could not be released. Probably an authorization issue

Message no. RSAR051


I was sure that it has nothing to do with the authorization. I checked what user is assigned into the chain in its attributes as Execution User. That user did not lack any authorization too.

It turned out that it was just a missing chain’s start variant where I did not specified scheduling condition part. There was no either Intermediate Start/Date Time/After Job/After Event/Operation Mode data entered.

Once I added it the chain worked just fine.



Error message is issued within FM RSSM_PLAN_START_BATCH_JOB somewhere around line 661. There a return value of variable l_job_released of another FM (JOB_CLOSE) call is evaluated:

MESSAGE s051(rsar) WITH 'Job could not be released.'(210) 'Probably an authorization issue'(211) '' ''.

However real reason why job schedule failed is not really properly propagated. This is fixed in SAP Note 3164846 which introduces a CASE/WHEN statement to do that.

 

More information:

3164846 - Error messages from job scheduling are not returned to caller

Saturday, December 16, 2023

"Results table" feature in SAP Code Inspector

SAP Code Inspector (t-code SCI) is a tool for analyzing and inspecting ABAP code. The tool is to help ABAP developers to ensure that ABAP code complies with certain coding standards, performance guidelines, and best practices. It performs static code checks, which means it analyzes the source code without actually executing it. The tool identifies potential issues, vulnerabilities, and areas for improvement in the code, facilitating the development of more robust and efficient applications.

Here I want to mention one feature of the SCI that is most likely not very known. It is called a "Results table". It is a button on SCI’s toolbar:

View of "Results table" provides comprehensive view where checks from the SCI and ABAP Extended Program Check (t-code SLIN) are combined.

In a picture below – issue marked in red are reported by the SCI. Issue marked in green are reported by the SLIN.


The "Results table" button is a new function that is added into SAP NetWeaver system as of SAP_BASIS 702.


BW/4HANA 2.0: External SAP HANA SQL View

There is a new feature in BW/4HANA 2.0 starting with Initial Shipment Stack. In this version of the SAP BW4/HANA 2.0 is external SAP HANA SQL View introduced. The new view follows one of principles of SAP BW4/HANA, which is openness.

In older releases of SAP BW4/HANA there wasn’t dedicated SQL view to support an extraction from aDSO objects. As SAP doesn’t recommends to use active table of the aDSO for extraction (see SAP Note 1682131) due to the fact that those tables are no publicly released. In the case of SAP BW4/HANA versions lower than BW/4HANA 2.0 SAP recommends to either use the HANA Modeler to import BW InfoProvider metadata and generate a HANA Model or to generate the HANA Model for BW InfoProvider from the BW backend.

Now with the respect to BW/4HANA 2.0 the new feature brings a new SQL view that is supposed to be used for an extraction of SAP BW objects like aDSOs or InfoObjects (see SAP Note 2723506). A naming convention for the new SQL view ends *8. That means on top of other DDIC tables related to the aDSO object there is a new table /BIC/A<aDSO_tech_name>8. E.g./BIC/AZMMA_ADSO8 - View for external Access for DataStore ZMMA_ADSO.

A full list of DDIC tables/views for my example aDSO is ZMMA_ADSO:

 

TABLES:

/BIC/AZMMA_ADSO                Inbound Table for DataStore ZMMA_ADSO

/BIC/A ZMMA_ADSO1              Inbound Table for DataStore ZMMA_ADSO

/BIC/A ZMMA_ADSO2              Active Data Table for DataStore ZMMA_ADSO

/BIC/AZMMA_ADSO3               Change Log for DataStore ZMMA_ADSO

VIEWS:

/BIC/AZMMA_ADSO6               View for Extraction from DataStore ZMMA_ADSO

/BIC/AZMMA_ADSO7               View for Reporting for DataStore ZMMA_ADSO

/BIC/AZMMA_ADSO8               View for external Access for DataStore ZMMA_ADSO

 

The views ending with 6 and 7 were generated by BW4/HANA 1.0 and view ending with 8 was generated in BW4/HANA 2.0. From my experience (based on BW4/HANA 2.0 SP05) the *8 view doesn’t get generated by aDSO activation right away. In my case it was generated at the time I loaded the data into the aDSO for 1st time.

 

More information:

How to read/write/delete from/to aDSO objects

1682131 - SAP BW tables in SAP HANA Information Views and ABAP CDS Views not supported

2723506 - External SAP HANA SQL View with SAP BW/4HANA 2.0

Thursday, November 2, 2023

SAP_INFOCUBE_DESIGNS tool

In case dimension tables of star schema data model becomes too large comparing to fact table there can be a performance problems. Thus, it needs to be monitored. SAP provides a tool for that. It is ABAP program called SAP_INFOCUBE_DESIGNS. The tool provides a list of cubes associated with number of rows and density % rate for each if the cube.

The density ratio means a number of rows in the cube fact table divided by the number of rows in each of its dimension table. The ratio is calculated by DB specific FM RSDU_INFOCUBE_TABLE_SIZES e.g. RSDU_INFOCUBE_TABLE_SIZES_HDB in case of HANA DB.

If the ratio is very high, there should be done something with the cube design. Some characteristics can be moved to separate dimension. Similarly, if the characteristics is very large it is be only one in the dimension and the dimension can be market as line item dimension.

In case of BW4/HANA the report is not relevant as source of the information is table RSDCUBE and there are no cubes in BW/4HANA. Basic infoprovider type of objects is aDSO that has flat layout so no star schema anymore. To get to know more information about the aDSO one can use watermarks tool.

 

More information:

Note 1461926 - FAQ: BW report SAP_INFOCUBE_DESIGNS

Tuesday, October 31, 2023

BW/4HANA obsolete tools

In SAP BW4/HANA many tools that were present in earlier releases of BW became obsolete. This is has few reasons. Mostly it is because the BW/4 uses less objects comparing to classic BW. The BW/4 is simplified in many ways – see details about it here.

Below I tried to compile a list of the obsolete tools in BW4/HANA. This blog post complements my earlier post about t-codes that are obsolete in BW/4.

 

1. DB table consistency tool

Program RSDU_TABLE_CONSISTENCY is deprecated with SAP BW/4HANA, source code removed. See more information about the tool here.

 

2. aDSO tool for Activating/Repairing DataStore Objects

These are the ABAP programs that check and regenerates aDSO objects in the case of technical incompleteness or inconsistency of metadata without creating a transport.

RSDG_ODSO_ACTIVATE - obsolete

RSDG_ADSO_ACTIVATE this to be used in BW/4

RSDG_ADSO_ACTIVATE only works in dialog only RSDG_ADSO_ACTIVATE_ALL works in background too.

 

3. InfoSet tool

Program RSQ_ISET_MASS_OPERATIONS doesn't exists in BW4

 

4. Tool to activate inactive communication structures

Program RS_COMSTRU_ACTIVATE_ALL does not exists in BW4

 

5. Tool to activate transfer structures for a source system

Program RS_TRANSTRU_ACTIVATE_ALL does not exists in BW4

 

6. Tool to activate inactive update rules

Program RSAU_UPDR_REACTIVATE_ALL does not exists in BW4

 

7. Print a list of InfoProviders available in system with their layout

Program SAP_INFOCUBE_DESIGNS – obsolete as FM RSD_CUBE_MULTI_GET_ONLY_DB reads from RSDCUBE table that is empty in BW/4

 

8. Undo of DSO conversion to SAP HANA-Optimized DataStore Object

Program RSDRI_RECONVERT_DATASTORE - obsolete on BW4 (ASSERT 1 = 0.)

 

9. Program for Mass activation of Non-Badi SPOs

Program RSDG_LPOA_ACTIVATE - obsolete on BW4 (ASSERT 1 = 0.)

 

10. Optimize Conversion of Standard Objects to SAP HANA

T-code RSMIGRHANADB or program RSDRI_CONVERT_CUBE_TO_INMEMORY - obsolete on BW4 (ASSERT 1 = 0.)

 

11. SAP HANA Partitioning of DataStore Objects

Program RSDU_WODSO_REPART_HDB - obsolete on BW4 (ASSERT 1 = 0.)


More information:

Action canceled. Not supported in BW4HANA edition.

Converting BW system to BW/4HANA

BW on HANA - tables consistency check program

SAP BW/4HANA (B4H) – what is it?

SAP BW/4HANA (B4H) versions

SAP BW4/HANA related t-codes


BWonHANA: SAP HANA-Optimized DataStore Object

In BWonHANA BW systems there was a new object introduced. It was SAP HANA-Optimized DataStore Object. I mentioned it in my blog post related to BWonHANA - Benefits of #BWonHANA. It was a type of DSO object that was optimized for HANA DB. This objects do not have any data in its change log table stored persistently. The change log table is calculated on the fly via HANA’s calculation view. Data is read from the history table for the temporal table of active data in the SAP HANA database. The tables around the optimized DSO comprises of a history table main table and delta table. The object contains additional field IMO__INT_KEY in the active data table. The field is pure technical and it is not visible in reporting.

While migration of the BW system to HANA DB the DSO is needed to be migrated to optimized one. It can be done via t-code RSMIGRHANADB.

As of BW 7.3 SPS09 this type of DSO became obsolete. Conversion to SAP HANA-optimized DSO is performed automatically for all standard DataStore objects. Conversion of the DSO objects to the SAP HANA-optimized objects is thus obsolete. It is possible to use the SAP HANA-optimized DataStore objects, but SAP recommends to reconverting them back to original DSOs. That can be done via report RSDRI_RECONVERT_DATASTORE.


BW objects - Differences between DDIC and DB

BW system generates a lot of temporary database objects while it is running e.g. during query execution, or other processes that read data from BW infoproviders. These objects can be database views or tables. Mostly they are placed in '/BI0/0' namespace.

I wrote some information about the BW temporary objects here. In that blog post I mentioned that program SAP_DROP_TMPTABLES can be used to remove these type temporary objects. However if some of those temporary objects are reported as inconsistent via t-code DB02 there is another program that should be executed. It is program SAP_UPDATE_DBDIFF. The program makes a copy of an information about differences between definitions in ABAP DDIC and in database catalog to table DBDIFF. The DB02 t-code than includes the DBDIFF  table when checking for inconsistencies.

 

More information:

Deletion of temporary database BW objects

Friday, October 27, 2023

Slice statistics in BW

To be able to use slice statistics in BW there are few things to be customized. Via t-code RSDDSTAT_SEL_CUST (program RSDDSTAT_SEL_CUSTOMIZE that calls function module RSDDSTAT_SEL_MAINTAIN) a selection statistics for particular InfoProvider (mostly aDSO in BW/4 based systems) needs to be activated.

The all the InfoProviders for which it was customized is stored in table RSDDSTATSLICECUS (Customizing of data slice statistics). Particular statistics selection data criteria is stored in table RSDDSTATSLICE                  (Selections criteria).

Afterwards slice statistics selection data is stored in table: RSDDSTATSLICEEX (Extracted values).

Sunday, September 24, 2023

SAP PowerConnect

SAP PowerConnect for Splunk is a tool to capture data about an events in SAP systems and upload it to a Splunk software in real time. The data is analyzed to and visualized as SAP telemetry intelligence in the Splunk. The SAP telemetry provides analytical information on efficiency of the systems of SAP in a local and cloud environment.

The PowerConnect tool was originally developed by BNW Consulting. This company was acquired by SoftwareOne in 2019. Splunk company was acquired by cisco in 2023.

Technically the tool is developed in /BNWVS/* namespace as a software component BNWVS.

Following are example of jobs running in SAP systems that are part of the SAP PowerConnect.

/BNWVS/BC_CHECK_JOB

/BNWVS/BC_DATA_ARCHIVE

/BNWVS/BC_DATA_EXTRACT

/BNWVS/BC_DATA_TRANSFER

/BNWVS/DISTRIBUTE_PARALLEL

More information:

powerconnect.io

PowerConnect documentation

PowerConnect on splunkbase

Sunday, August 27, 2023

Reserved key words for SAP table fields

When it comes to table creation in SAP Data Dictionary (DDIC) there is a check performed whether particular field (names of table columns) is not reserved. If so the dictionary object cannot be activated. This applies regardless the table is created manually or generated by the system. Automatically generated dictionary objects can involve in BW objects like aDSOs, Open Hubs, etc. In other applications, it can involve automatic generation of tables for CDS views.

The check if the field is or is not reserved is performed in ABAP Data Dictionary. The dictionary has a list of reserved words that may not be used for database objects. The list depends on the database system and is present in the system in a form of database table called TRESE. The table has two colons:

NAME – represents the reserved key word itself

SOURCEHINT - reason for reservation, means what DB type the keyword is reserved for

 

In summary there is the table TRESE in ABAP dictionary that stores reserved or protected names that cannot be used within the dictionary objects names.

 

Thursday, August 24, 2023

Unavailable SAP Notes

There are a few cases when SAP Notes or Knowledge Base Articles (KBA) are not available to be viewed on SAP for Me (formerly ONE Support Lunchpad (OSS)) site.

 

1. SAP Note/KBA XXXXXXX is being updated. This happens when there is a new version of particular Note being prepared. As usually the Notes has initially a version in its master language it can be that, there is a few days delay when the Note is translated (e.g. from German to English). The translation part can cause that delay. If the Note is still not around for a few days, you can approach the SAP via e.g. social media and ask for the Note. That usually helps to speed up the updating process.

What makes it a bit unfortunate and frustrating too is that during the updating the former version of the Note is not accessible either. This issue was raised many times to SAP however it is not solved yet. SAP claims that sometimes the old version is not correct (even it can be harmful) thus they decided to take the whole Note offline for a while.

 

2. Sorry! You are not entitled to access SAP Note/KBA. This message is so called a maintenance terminated status. The message is present when customer number to which your support site user is linked to lost an access to the software component which the Note is related to. Means that e.g. license to that software is not provisioned or wasn’t provision to your customer number. In this  case you need to raise this issue to your SAP representative (account manager).


More information:

3233516

Friday, August 4, 2023

ABAP Platform Trial 1909 SP07

Last time when SAP released an on premise version of SAP ABAP Platform/NetWeaver developer edition was on Feb 15th 2021. It was a version called SAP ABAP Platform 1909, Developer Edition and it was provided as a Docker image allowing developers run it on its own machines as a container. That edition was available till Dec 2021 when Log4J vulnerability was revealed. The ABAP Platform 1909 became a victim of Log4J as many other software due to fact that software vendors decided to pull it off till the vulnerability is not properly addressed. SAP took a time a decide on the fate of the ABAP Platform 1909 container image. Initially the decision was scheduled to be announced on January 10th 2022. That was delayed till mid of Oct 2022 (23th of Oct) when SAP announced that “SAP’s product and delivery standards have evolved…”. Basically the statement said that SAP is preferring cloud versions over something that independed developers can install by themselves. And, in fact meanwhile a CAL versions were provided. Anyhow, this move sparked quite an discussion and criticism (e.g. here (363 comments), or here) within SAP developers community. Following all that an idea was created on Dec 12th 2022 on SAP influence page. It got an attention of 278 voters. After approximately 7 months the idea status moved suddenly to Delivered. Via blog SAP announced that docker based version of ABAP Server is back. This is it is again ABAP Platform Trial 1919 by slightly higher Service Pack version – 07.

How to make it run? Just follow instructions at docker hub page. All you need is to have a machine with a lot of memory (32+ GB), DockerHub account, and if you are on WINDOWS OS – a Docker Desktop. Linux and MacOS is supported as well. Once you get the Docker Desktop up and running fire up a below command to pull the image from the hub to yoru machine:

docker pull sapse/abap-platform-trial:1909


After 30min or so (depending on speed of internet connection), image extraction part starts that created a new contained in your Docker:


Once it is finished start the container with below command:

docker run --stop-timeout 3600 -i --name a4h -h vhcala4hci -p 3200:3200 -p 3300:3300 -p 8443:8443 -p 30213:30213 -p 50000:50000 -p 50001:50001 sapse/abap-platform-trial:1909 -skip-limits-check


Once you get a message in the command prompt saying “*** Have fun! ***” the ABAP trial is up and running.


To stop it just hit CTRL+C in the terminal window which started it. There will be logs like below popping up:

Interrupted by user

My termination has been requested

Stopping services

Terminating -> Worker Processes (2919)

..

Finally passing away ...

Good Bye!

 

To start it again run the container (aka regular start) with below command:

docker start -ai a4h

In my case as I run the Docker on WSL2 (there are different engines available to power it) I faced an issue during first attempt to run the container. It hanged “HDB: starting” and not going anywhere for couple of hours.

WARNING: the following system limits are below recommended values:

  (sysctl kernel.shmmni = 4096) < 32768

  (sysctl vm.max_map_count = 65530) < 2147483647

  (sysctl fs.file-max = 2668219) < 20000000

  (sysctl fs.aio-max-nr = 65536) < 18446744073709551615

Hint: consider adding these parameters to your docker run command:

  --sysctl kernel.shmmni=32768

Hint: if you are on Linux, consider running the following system commands:

  sudo sysctl vm.max_map_count=2147483647

  sudo sysctl fs.file-max=20000000

  sudo sysctl fs.aio-max-nr=18446744073709551615

sapinit: starting

start hostcontrol using profile /usr/sap/hostctrl/exe/host_profile

Impromptu CCC initialization by 'rscpCInit'.

  See SAP note 1266393.

Impromptu CCC initialization by 'rscpCInit'.

  See SAP note 1266393.

sapinit: started, pid=14

 

HDB: starting

 

This is due to fact that in WSL2 case there is no sizing options. WSL2 has an in-built dynamic memory and CPU allocation feature that means that the Docker can utilize only the required memory and CPU. But as there are other processes in WIN OS that need an OS resources too it started to be a problem because WSL2 consumed all available memory. This can be solved by editing a .wslconfig file located in WIN’s USERPROFILE folder. I altered the file as below:

[wsl2]

memory=26GB   # Limits memory to docker in WSL

processors=5     # Limits no processors

 

Other option than to .wslconfig file modification is to start the docker image deployment with addition to following parameters (on bold) of “docker run” command.

docker run --stop-timeout 3600 -i --name a4h -h vhcala4hci -p 3200:3200 -p 3300:3300 -p 8443:8443 -p 30213:30213 -p 50000:50000 -p 50001:50001 -m 26g --cpus 5 sapse/abap-platform-trial:1909 -skip-limits-check

 

If you can’t get your container up and running there are couple of things to be checked with the respect to HANA DB:

/usr/sap/HDB/HDB02/vhcala4hci/trace

/usr/sap/HDB/HDB02/vhcala4hci/trace/DB_HDB

You may need to review log files in those folder. In most cases it will be an issue of lack of operating memory or hard drive space.

For extending the licenses of either ABAP Platform (AS ABAP) or HANA DB see my post here.

One more thing to clarify is a naming convention. Difference between SAP NetWeaver AS ABAP Developer Edition and SAP ABAP Platform Trial. One part is that SAP has shifted away from the NetWeaver to ABAP Platform. Technology wise the ABAP trial is delivered as Docker container whereas Netweaver Developer Edition are based on Virtual Machine software like Oracle Virtual Box.

In closing I must say that I really appreciate an effort all of the people who made this great distribution of ABAP Platform available again. I especially appreciate that SAP made a commitment to deliver also feature releases release (version 2023, 2025 and 2027 according to the release strategy for SAP S/4HANA). Even more they plan to release the ABAP Platform Trial subsequently whenever there is a new SP update. Thanks again for that!


More information:

Power up your SAP NetWeaver Application Server ABAP Developer edition

SAP ABAP Platform 1909, Developer Edition – installation on WINDOWS OS

Saturday, July 29, 2023

Repairable DTP data load request

When using Data Transfer Processes (DTPs) to load data, there is an important feature called "Reparability" If a data load request fails, it appears in red status, indicating that the data was not loaded correctly into the target destination. Such failures can occur due to various reasons, such as extraction issues, network errors, database locks, data transformation errors, or data integrity issues, such as missing master data.

The good news is that, depending on the cause of the data load error, the data
processed by the DTP can still be loaded and repaired. This means that if the
DTP data load request has a "Repairable = Yes" status on the DTP's monitor screen, the data can be fixed and reloaded.

However, this repair option is only available in specific cases, typically when the data is still present in the DTP's temporary storage. There are two particular scenarios that need to be met for successful data repair:

1. The source of the extracted data must hold the data in a table with a technical key (request, data package). Additionally, each data package in the source must be uniquely assigned to a data package extracted by the DTP. In case of incorrectly processed data packages, they can be reconstructed uniquely in another attempt using selections from the source data.

2. If the source does not have this property, there is still an option to reconstruct the incorrect data from the temporary storage created at runtime by the DTP. However, this is only possible when all the data from the source was extracted in the first attempt and when at least one temporary storage was created for all data packages.

The technical evaluation of the data load request for the "Repairable" flag is carried out using the ABAP method IF_RSBK_REQUEST~GET_REPAIRABLE in the class CL_RSBK_REQUEST_RED. The flag itself refers to the data element RSBKREPAIRABLE (Indicator: Request Is Repairable) in the data dictionary.

Inconclusion, the reparability feature of data load requests in DTPs provides a valuable way to address and correct data load failures, ensuring smoother data integration into the target destination.



Thursday, July 27, 2023

SAP BW Standard Transport System

In SAP BW a transport system is used to move BW objects from one system to another. This system facilitates the movement of data models, data sources, transformations, InfoObjects, DataStore Objects, queries objects and other BW specific artifacts between different environments, such as development, testing, and production systems. The standard transport system in SAP BW is part of the overall SAP Transport Management System (TMS). The type of BW transport system is called BW standard transport system. There is a difference between the TMS and BW standard transport system. That BW standard transport system can be active or inactive in the BW system. How the BW system does behaves in case it is active and inactive?

Standard transport inactive (deactivated) – All new objects are created as local objects, means they belong to $TMP developer package. No dialog windows appears to assign the development class neither transport request upon the objects creation. Once these objects need to be transported then need to be collected to different developer package, e.g. via Transport Connection tool.

Standard transport active – New objects are no longer created as local objects. Instead, developer is asked to assign the objects to developer package and assign transport request upon creation of the new BW object.

Developer can switch on/off BW standard transport system in SAP GUI as follows.

1. t-code RSA1 -> Transport Connection, menu Edit -> Transport -> Switch On Standard

2. t-code RSOR -> same mu path as above


Info on what type of transport type a BW system is set is stored in table RSADMINS. In its field called TADIRPOPUP. If there is, an X value saved it means the BW standard transport system is set on.

Technically, there is an ABAP SQL statement UPDATE that manipulates the column. The code is implemented in ABAP class CL_RSO_GUI_REPOSITORY and method TRANSPORT_STD_MODIFY.

One more specialty is there with the respect to BEx/BW query objects. The BEx/BW artefacts are written to a fixed BEx request. In addition, you can optionally determine a BEX request per package. BEx objects are written directly to a request and not to a developer's task. The popup to enter the BEx request is also available in the transport connection tool.




Tuesday, July 11, 2023

Program to find personal data in BW/BEx report objects

Within BW reports (formerly BEx reports), there can be a personal information in form of SAP user name or email stored. There are multiple BW report objects that can store such an information. It can be query element (ELEM), query view (QVIW), workbook (XLBW), web template (BTMP), enterprise report (ERPT), broadcast settings (BRSE), bookmark (ABAP, JAVA runtime or BICS), web item (BITM), Query Variants (RSRT) and so on.

Situation where one particular user that is used in objects like above needs to be replaced with a new one. This can be a case when original user is leaving an organization. Similarly if user email got changed (e.g. in case of marriage). How to find what are all the objects where the user ID/email is stored?

SAP provides an ABAP program to do that. It is called RS_FIND_USER_INFO and it serves for purposes of finding the user information across different BW/BEx objects.



On its selection screen a user needs to be specified whose information is search for. On top of that, program can run in three modes:

1. Display what are particular BW/BEx table where the information was found and how many entrees are there in those tables. See picture below.

2. Replacement of user in OWNER field – OWNER is a user who created the particular BW/BEx object. In this mode of the program run the OWNER value can be replaced.

 3. Replacement of user in other field – Programs replaces the user name in other fields such as AUTHOR, TSTPNM, LASTUSER, CHANGED_BY etc.

One more option on the selection screens is a checkbox for deletion of a records in the tables that carries the user record.

Example of the program’s output:



The program 1st appeared in BW 7.4 SP20 and is present also in BW4/HANA systems.

 

More info:

2603432 - Report RS_FIND_USER_INFO

2642676 - NW 7.50 - BEx 7.x Java runtime – deletion of data