Friday, February 28, 2020

Programs for migrating a BW systems

In SAP BW (as well as APO) systems, a report SAP_BW_MIGRATION exists. It contains help routines for different activities that are normally performed with the BW systems: migrating of BW systems between different DB or OS systems, system copies, UNICODE conversions, etc. In some BW systems similar report called NW_SAP_BW_MIGRATION can be available as well. Although the report was more important in older (pre-HANA DB) BW releases it is will available there.


Additionally there is a report RS_BW_PRE_MIGRATION which is focused on providing an information related to DB platform range partitioning. Result might be useful to identify potential issues relate to the partitioning.


More information:

615531 - DB6: How to migrate a SAP BW 2.x system to DB6
543715 - BW Migrations and System Copies for BW 2.0B / 2.1 Content
674489 - NW_SAP_BW_MIGRATION



Accelerated Application Delivery for SAP NetWeaver (AAD)

AAD (or sometimes known as AccAD) is so called soft appliance that reflects the physical landscape which it is applied to.

AccAD enables end users within organization worldwide to access web based SAP applications, (e.g. SAP NetWeaver Portal, CRM, etc.) at near LAN speed while overcoming bandwidth and latency issues. Techniques that are used to optimize the network traffic are caching, compression algorithms, and special application aware optimization. The application aware compression and caching mechanisms can be more efficient than generic WAN acceleration and application delivery technologies. It aims to accelerate global access to SAP applications but it is not a holistic application delivery tool for all kinds of traffic. Use cases for customer to use the AAD can be an intention to facilitate and speed up work with applications and file systems between central data centers and remote locations.

The AAD is here since approximately year 2005 and in today’s modern cloud based software solution it is probably obsolete. Currently there is a version 2.3, which has set end of mainstream maintenance on 31.12.2020.


More information:
BS-ACD - SAP support site component

Thursday, February 27, 2020

BW transports: Transformation consistency check

BW transports are one of pain points in BW area. Many issues may popup during move of BW objects between SAP systems. I blogged about many of them already. This time I focus on topic of transporting BW transformations.

One issue that may occur with regards of transporting the BW transformations is that method execution phase of the transport does not save and activate the transformation. Instead, only warning messages are shown in the transport log. This the BW developer expects that the transport went fine but it reality it is other way round.

Similarly, same situation can happen in other scenario. In case system dependent transformations of the source system is not mapped or incorrectly mapped in table RSLOGSYSMAP then again only warning is present in the transport log

To solve this there is a RSADMIN parameter available to influence how the BW system shall react. The name of the parameter is RSTRAN_CONSISTENCY_CHECK. Below are values of the parameter that set the system behavior either to raise an error or warning in the transport log.

X = Error shown in the log and it forces the system to cancel the processing of the affected transformations
‘’ = Warning


More information:
1377342 - Check for consistency of transformations in the transport

Thursday, February 20, 2020

SAP UI themes

Over the years SAP came with many themes for their UI technologies like SAP GUI, Web Dynpro for ABAP/Java, ITS (SAP GUI for HTML), BSP, HTMLb, BI, JSF, NetWeaver Business Client, Enterprise Portal, SAP UI5, SAP CRM UI and etc. In this blog post, I mention few of major ones.

First, there are two main categories of the SAP UI themes based on Unified Rendering (UR):

·        UR Classic = Unified Rendering Classic or UR 1.0
·        LS = Unified Rendering Lightspeed or UR 2.0

In general the UR is a SAP proprietary HTML rendering and JavaScript library for SAP UI technologies.

Frameworks (UI technologies) that use UR Classic are (at this point of time):
·        Web Dynpro ABAP (WDA-UR): SAP NetWeaver 7.00, SAP NetWeaver 7.10 
·        Web Dynpro Java (WDA-UR):  all SAP Netwaever releases out of maintenance ( <= SAP NetWeaver 7 EhP2 (7.02) )
·        Business Server Pages (BSP)
·        HTMLB for Java
·        SAP BEx Web Analyzer (Business Intelligence - BI)

Frameworks (UI technologies) that use UR are (at this point of time):
·        Web Dynpro ABAP (WDA-LS): >= SAP NetWeaver 7 EhP1, >= SAP NetWeaver 7.11
·        Web Dynpro Java (WDJ-LS): >= SAP NetWeaver 7.10)
·        SAPGUI for HTML (HTMLGUI-LS): ABAP kernel integrated ITS
·        Lightspeed Server Faces (LSF)

SAP GUI themes:
SAP Belize Theme – started in 2016, adopted Fiori 2 theme for classic applications
SAP Blue Crystal Theme – started in 2013 came with a new color scheme (blue and white), revised UI elements, revised SAP GUI icons, it was inspired by the Blue Crystal Design in SAP Fiori.
Corbu Theme – started in 2012 came with reduced contrast and revised SAP GUI icons
SAP Signature Theme – started in 2008 as of SAP GUI 7.4, the theme was offered for all SAP UI technologies in order to ensures the harmonization of different UIs
System Dependent Theme – inherits theme from SAP backend system
Tradeshow Theme – refined Streamline Theme
Streamline Theme – introduced first for SAP Enterprise Portal product
Enjoy Theme – started in 1999 as of SAP GUI 4.6
Classic Theme – started in 1999, OS Windows theme up to Windows 2000
For details see also post called: SAP GUI visual designs.

Fiori 3 themes:
SAP Quartz (Light/Dark)

Fiori 2 themes:
SAP Belize (Deep/Contrast White/Contrast Black)

Fiori 1 themes:
SAP Blue Crystal

SAP NetWeaver 7 EhP2 themes:
SAP Corbu
SAP Gold Reflection - alias for SAP Corbu theme

Custom themes can be created with SAP UI Theme Designer and  Portal Theme Editor:
SAP Tradeshow
SAP Tradeshow Plus - also known as SAP Signature Design


More information:
710719 - SAP GUI family and visual designs ("themes")
2000110 - Unified Rendering
2124106 - Themes for Unified Rendering based UI technologies (Web Dynpro ABAP/Java, BSP, SAP GUI for HTML, BI, JSF)

Conversion of basic cube into transactional (real time) one

 Once you create a basic cube in t-code RSA1 there is nothing within that t-code that would enable BW developer to change the cube to transactional (real time) one. However, there is an ABAP report, which supports such a conversion. It is called SAP_CONVERT_NORMAL_TRANS Conversion: Normal <--> Transactional InfoCube. The report also support backward conversion from transactional to basic (normal).


Here is brief overview of the report UI and its output:




Tuesday, February 18, 2020

Cube load failure call subroutine FILL_SID_CACHE

Some loads to BW cubes may fail with below error that is related to subroutine FILL_SID_CACHE.

An exception with the type CX_SY_DYN_CALL_ILLEGAL_TYPE occurred, but was neither handled locally, nor declared in a RAISING
The attempt to call the subroutine FILL_SID_CACHE in the program &PROGRAM& failed due to a type error involving parameter number
An exception with the type CX_SY_DYN_CALL_ILLEGAL_TYPE occurred, but was neither handled locally, nor declared in a RAISING
Error while updating to target XXXX_XXX (type INFOCUBE)
Data package 1 / 17.02.2020 20:40:29 / Status 'Processed with Errors'



There is SAP note 1972401, which describes this error.  Regeneration of data loads to the cube of the program happened automatically but call of the form routine went to the older version of the program. Therefore, it failed. Issue is most likely caused two possible reason. One can be buffering problem. Second can be that a loading process was already connected to the old version of the generated program.
As workaround, one can try to reactivate the corresponding DTP or involved TRFN and repeat the load. If it does not help use program RSDD_RSTMPLWIDTP_GEN_ALL with both check box ticked off for the BW cube that is affected.


More information:
1972401 - DTP failed due to Exception CX_SY_DYN_CALL_ILLEGAL_TYPE
2172882 - DTP execution failed with CX_SY_DYN_CALL_ILLEGAL_TYPE and FILL_SID_CACHE

Monday, February 17, 2020

Table RSBKADMIN – DTP System Specific Attributes

One of tables that carry data specific to DTP attributes in BW is table RSBKADMIN. Although from pure customizing/setup point of view the tables is not foresaw as configuration table there are few parameters that can be introduced into the table. Before implementing any of the parameters below always check SAP support Notes and carefully review whether it is valid for your specific BW release.


Field           Value           Note          Description

DTP_TRAN_BATCH_SET                 X             1412351        2665713          

Enables the parallelization settings for data transfer processes (DTPs) to be written to the same transport request when the DTPs are exported.

DTPA_MATCH_ORDER_INS            POI               1413183      DTP transports stability
DTPA_MATCH_ORDER_DEL           IOP               1413183       DTP transports stability

NUMBER_OF_TRIES                      >10              1344464       
Value is * 10 seconds as a time for which the system waits for a free batch process before it fails

RSBK_OHD_HANDLED_AS_DM       OH name/$ALL$ 2217444   
Open Hubs to be managed as data marts

DISABLE_LATE_MAT_HINT_OFF               2512058       
Deactivation of DB hint for all DTPs

DM-EXTRACT-DEBUG                    cube/DSO name       2664950       
Copy DTP settings batch, selection etc, while using copy tools like t-code RSCOPY

USEALLPARALLELPROCS                       X            1953252      
Or
DTP_TECH_NAME                         USEALLPARALLELPROCS     
Few parallel background work processes generated

DTP_TECH_NAME                         DELTA_CHECK_DONE  2363098
When propagating data via delta DTPs, extracting from an ADSO and updating an non ADSO  one of the following problems, causing data inconsistencies in the target of the DTP, may occur:
-Requests from the ADSO are propagated multiple times by the same delta DTP, in non-deleted requests
-Requests from the ADSO are not propagated by a delta DTP
Use report RSBK_CORR_RSPMPROCESS_NO_ADSO
         
NO_LATE_START_OF_CHILDREN                        2561210       2181717          
System prevents batch jobs of DTPs from ending themselves again if too little work is available

ERRORHANDLER_EXTRACT_ALSO_RED     2305126       
Allowing extraction of red error requests again

DEBUG_DTP_START_IN_PC                               2810067
DEBUG_DTP_IN_PC_STREAM_END
DEBUG_DTP_IN_PC_STREAM_START                            
Debugging of DTP in PC

NO_LATE_START_OF_CHILDREN                 2181717       
Disallow later starting of new children

DETERMINE_ROUTINES_LIKE_IPAK           1675245

NO_NEW_DTP_REQ_LOG              1567992
Or
NO_NEW_DTP_REQ_LOG              X                            
Deactivating of new DTP logs for all or specific DTP

ODP-DM-DEBUG               2598503       
Debug loop in new ODP DM per DataSource

ENQ_DTPH_CHECK                       X                  2728578      
Do not write traces/TE1 messages into tables RSENQSM21PROT and RSENQSTACK

ICUBE_NO_GROUP_BY_EXTRACTION cube/DSO name    2877623       
Switch off of performing a Group_By for InfoCube extraction

MESS_TYPES_9000                      AEXW           1646307       
If a warning messages need to be added into DTP log after the 9000th message

WODSO-DELCHECK-FORALLENTRIES        OFF     2124611       
Reactivation of old method for processing the SELECTs on the tables RSSTATMANREQMDEL and RSBKREQUEST during the update of a delta request to a write-optimized DSO

DROPDTA_DEL_RSBKDATA_TOO               1793726       
Enables RSBKDATA and RSBKDATAINFO tables deletion synchronously when the data target content is deleted completely

DELETE_TT_REQUESTS_ALLOWED 2806685       
If you want to delete the 1900... requests that were generated by the new request transfer

DTP_OLD_TT_TRFN_MAPP             ALL               2888462       
Improvements to DTP transfer with respect to messages generated

USE_OLD_CONTROL_IN_MANAGE           2161530       
Table control to be replaced by an SAP List Viewer (ALV) for manage screen of ADSO objects

Suppressing messages generated by BEx Queries

Update on 04JUL2022:

In case of BW4 systems there is no button called Messages available in a toolbar of the RSRT or in RSRT1 t-codes. However, same functionality is still available over the menu Environment -> Messages.

Original post:

BW (formerly BEx) queries are normally raising many messages either information, warning or errors. Sometimes some of them may confuse end users. Therefore, it might be useful to get them suppressed. There is a nice way how to do it via t-code
RSRT. The RSRT serves as the query monitor. The BW queries can be tested, checked, and managed. Many technical things can be setup for the queries like regeneration of the queries, checks or change the query properties, displaying technical information, monitor the query cache etc.
One of the RSRT features is to suppress messages of the BEx queries. There is a button called Messages available in the RSRT. Thru a screen available on that button one can determine which messages for the chosen query are not to be shown to the user in the front end.

On the left-hand part of screen area, there are listed message categories via them one can navigate between the messages. The catalogers includes the messages related to: Generation, Hierarchy, Variables, Key Figures, Calculate As, Other, Planning, Data Integrity etc. Further, on right hand side of the screen area there are particular messages listed. Each of them can by suppressed by ticking off corresponding check box. Moreover, on bottom part of the screen area a long text of the particular message that is highlighted is displayed.

If you need more sophisticated solution to suppress the messages, you may consider implementing exit/enhancement into the FM RRMS_MESSAGE_HANDLING that is handling all the messages for the BEx queries. Using this approach an customer specific logic related to the messages processing can be implemented or customer messages can be added.

In addition, in some specific cases you may need to call FM like RRMS_MESSAGE_OFF_RESET which enables the message display by resetting the suppression of the messages. This might be needed in case the messages are not popping up. There is also FM RRMS_MESSAGE_OFF available which suppressing the messages completely.


More information:

2007609 - Display Message in Variable Customer Exit doesn't Work for a BW Query



Monday, February 10, 2020

SAP GUI 76

As of 25th of February 2019 a successor to GUI 7.5 (for Windows) was introduced. Following features are counted as a major or new enhancements:
As it is built on, Visual Studio 2017 that is supported by Microsoft until April 2022.

From user interface point of view:
It further supports Belize theme that can be used for all SAP products, which are presently supported by SAP.

Various improvements implemented for the support of SAP Screen Personas in SAP GUI. SAP Business Client Integration.

End user help for the SAP GUI is no longer delivered as .chm documents; instead, it is a collection of HTML documents.

Themes like Enjoy / Streamline / Tradeshow / System Dependent were removed from the delivery of SAP GU.

SAP UI Landscape is available as a replacement of saplogon.ini file as a contained for all SAP GUI related settings.

Restore & Clean-up” option available in Options of the GUI to allow restoring SAP GUI default settings and delete locally stored files.

Also in the options dialog and Import and Export of SAP GUI settings is now available.

Grid View (ALV) Control now offers an input history like edit fields or table control cells. The history persists per column and allows an easy re-use of values which are frequently entered by the user.

SAPPDFPrint is now integrated into the SAP GUI installation.


From GUI installation point of view:
Introduction of SAP GUI for Windows "core" patches and "delta patches". The core ones are now full installations of the SAP GUI and delta ones only contain those files which have been changed since the initial delivery. Notice that in this case you always need installation media called "Compilation" to install SAP GUI afterwards you can do deltas.

More information:
2600384 - New and changed features in SAP GUI for Windows 7.60

SAP GUI 75

As of 14th of August 2017 a successor to GUI 7.4 (for Windows) was introduced. Following features are counted as a major or new enhancements:
As it is built on, Visual Studio 2013 that is supported by Microsoft until April 2019 the SAP GUI 74 lifetime will be longer comparing to SAP GUI 7.40 (built on Visual Studio 2012).

From user interface point of view: It supports SAP Screen Personas 3.0. There are a "Fiori visual theme" introduced much for S/4HANA 1610 Feature Package. There is a new theme called Blue Crystal Theme as default available. SAP UI Landscape format is enabled by default as of SAP GUI for Windows 7.50.

Old and famous librfc32.dll is removed now in GUI 75. Due to architecture change within SAP GUI 75 all BEx tool are now using .Net Connector of version (NCo) 3 whereas in lower versions of the BEx tools the NCo version 2 was used. Thus, the RFC library has changed as well. See below SAP Notes for details:

2602275 - Where is librfc32.dll in SAPGUI 7.5?
2256415 - Adaptation of RFC controls (Logon, Function, Table and BAPI) to use SAP NetWeaver RFC Library

Support of HTTPS protocol to access GUI Security rule file saprules.xml SAP UI Landscape file.

More information:
2417687 - New features in SAP GUI 75

Sunday, February 9, 2020

How to find out who ran PC?

Today another blog post regarding process chains. It is about how to find out who ran the process chain (PC). There is a very useful t-code RSM37 that provides many useful information about BW workloads like jobs. The PCs are nothing else just a jobs from SAP basis point of view. Thus by a quick look into the RSM37 it is easy to find out who ran the PC.

Here how to do it:

RSM37 -> first search for all BW jobs -> find particular PC name by placing a filter at 2nd “Selection value” column -> if there are still many entries (because all steps in the PC are listed here) filter also process type column normally called “Value” e.g. filter as TRIGGER.


Similarly, one can go to PC log from t-codes like RSPC or RSPC1 and look at start variant of the PC. Then double click on corresponding basis job log and on that screen, again user who ran the PC is available at column called “Job Created by”.



Friday, February 7, 2020

BW jobs/work processes hanging within program SAPLSENA

BW system may face a strange situation where there are many jobs or work processes hanging and obviously doing nothing. They are called zombie processes and then hanging with ABAP programs like SAPLSENA, SAPLRSSM, SAPLRSSM_LOAD, SAPLRS_G or SAPLRS_GENERAL etc. During situations like this the BW systems gets slower, loads are not being finished etc. In addition, an unusual number of locks may be observed in t-codes like SM12. Issue is that the system entered into dead lock. One may try to kill those work processes manually in t-codes like SM66, SM50 or killing jobs in SM37. However, it will not help as they start to pile up again quite soon.

Generally speaking; a reason why the system entered into such a state is that massive run of parallel delta loads caused a long wait time of locks. This can be also observer in table RSREQDONE field LOCKWAIT and in tables RSREQDONE or RSICCONT. Other symptom can be that infoproviders involved within the data loads are carrying heavy numbers of requests. Consequently, an enqueue management of the load request administration is not up to date.

To prevent such a situation the key is to have the enqueue management of the BW system always up to date. There are many points to be considered in order to achieve this. They mostly vary on BW version. But generally speaking parallel delta loads need to be kept on reasonable level same as the number of requests in the administration of the infoproviders are to be kept reasonable.
For details per particular BW version see SAP Note 1827854.


More information:
1827854 - Enqueue/Lock during parallel data loads
653996 - Analysis of lock situations

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

Monday, February 3, 2020

BEx QD errors "BI system has version; 70000 is required" or "System is not a BI system"

After update of SAP GUI to version 75 there are below error popping up during startup of BEx Query Designer:

"BI system has version; 70000 is required"
or
"System is not a BI system"


This is caused by an architecture change within SAP GUI 75 where BEx tool are now using .Net Connector of version (NCo) 3 whereas in lower versions of the BEx tools the NCo version 2 was used. The SAP standard function modules like RFC_METADATA_GET / RFC_METADATA are used for data exchange between the BEx Query Designer and the SAP BW backend. To run the FMs user needs must have an authorization object S_RFC assigned.  Only this grants the user possibility to run the FMs.

To solve this the roles of the BW developers need to be extended with the mentioned authorization objects.

More information:
2577916 - Error "BI system has version; 70000 is required" or "System is not a BI system" occurs in Bex Analyzer after update to SAP GUI 750
Wiki - Checking Tx RRMX with SAP GUI 750/760

Sunday, February 2, 2020

BEx QD error: Hierarchy does not exist for InfoObject

BEx Query Designer may show a below error related to in consistent data in SAP BW hierarchy tables.

037(BRAIN) "The hierarchy &2 &3 &4 does not exist for InfoObject &1"

Issue typically lies within table RSRHIEDIR_OLAP. There might be an inconsistent entries in the table exit. Those entries can be fixed with a help of ABAP program RRHI_CORRECT_OSID_KTAB. 

In addition, depending on particular BW version root cause can be completely different. In case there is a hierarchy node variable that is used in the BEx Query and which is bound into hierarchy that does exist in development BW system but it doesn’t exit in target BW system (Q or P) the error may appear. Tricky part here is that simple re-assignment of the variable definition from non existing to existing hierarchy doesn’t help. Only way that solves the issue is to deletion of such hierarchy node variable and its recreation again from the scratch.



More information:

1900360 - BRAIN037 during query execution using a hierarchy with THJ
2177061 - Runtime Error RAISE_EXCEPTION in CL_RRHI_VIRT_HIER_SINGLETON - exception HIERARCHY_NOT_FOUND
2754938 - Enhancement of hierarchy correction report (rsrhiedir_olap)
2433852 - How to repair inconsistent Hierarchies