Friday, September 25, 2020

Converting BW system to BW/4HANA

As SAP NetWeaver will be sunsetting at some point of time (see details here: Life after life of SAP NetWeaver and Business Suite/ECC) same applies for one of the NetWeaver core component - BW.

SAP BW/4HANA positioned as SAP’s next generation data warehouse solution will be in nutshell replacing the BW. Needless to say that the BW4 is not a legal successor of BW rather it should be seen as a new product.

Customers are free to decide which way they choose to get to the BW4 level. In one of my previous posts Tools for migrating to SAP BW/4HANA (B4H) I wrote a little about the tools that are used for the conversion. In this posts I go a bit deeper into the tools that are available there.  In nutshell there are 5 options for the conversion:

 

1 New Installation - So called greenfield installation is nothing else just to starts with implementation from scratch. This involves whole implementation cycle, like gathering requirements, implementation, testing, go live, support etc. The tools that would be used here do not really have a sense, as we are not converting any existing system to the BW4. With an exception of a transport certain objects from the existing SAP BW system – see point no 4 below.

This type of installation (not conversion in this case) can be start from t-code STC01 (Task Manager for technical Configuration) by running task list called SAP_BW4_SETUP_SIMPLE. Basically, an initial setup of a newly installed SAP BW/4HANA system can be executed via the task list. Here are some of the included setup: activate web services for BW Modeling Tools, Maintain Allowed Characters in SAP BW/4HANA, creating RFC destination for After-Import Handling of Client-Dependent BW Objects (RSTPRFC), maintaining Query Executor Setting for Eclipse Query Designer and/or Workspace Query Designer, BW/4 Launchpad Setup, activating InA Services for SAP Analytics Cloud integration.

 

2 In-place Conversion - So called full system conversion means BW 75 system is turned to SAP BW/4HANA system. The new (converted) system has same SID as original one. It is conversion without reimplementation type of the conversion. The original BW objects are within step-by-step approach converted. In-place means transfer of classic objects types into their HANA-optimized counterparts. Downside is that original system needs to be on release Minimum start release SAP BW 7.5 SP 5 (recommended at SP12 and best for SAC is to be on SP15-16) powered by SAP HANA.

“SAP BW/4HANA Starter Add-on” is prerequisite for In-Place Conversions. The add-in is technically following software component:

BW4HANA     100     0001   SAPK-10001INBW4HANA    SAP BW/4HANA Starter Add-On

Within the add-on there is a SAP BW/4HANA Transfer Cockpit (t-code RSB4HCONV, prog RS_B4HANA_CONVERSION_CONTROL, there was a predecessor to this: RS_B4HANA_CHECK_ENABLE that is now obsolete) available where all the work is done. The Transfer Cockpit is divided to Prepare (includes pre-check tool, sizing report, code scan tool, clean-up reports, and initial run of authorization transfer) and Realization phase (includes scope transfer tool, delta run of authorization transfer, and change of operation mode).


Within the add-on installation, the system can be set to the following modes: BW Mode (add-on installed and particular BW models/flows/scenarios are being converted) -> Compatibility Mode (manual converting work is finished, BEx Query Designer is disabled, and incompatible scenarios still can run) -> B4H Mode -> Ready for Conversion (system can be converted).

The Transfer Cockpit also calls a starter of B4H Transfer Tool (t-code RSB4HTRF, program RS_B4HANA_TRF). 


In case of one chose, In-Place an ABAP program RS_B4HANA_INPLACE is called. In case of Remote a call of CL_CNVLTRL_BW4H_GEN_INFO =>load_bw4rc is performed. Finally, in case of Shell ABAP program RS_B4HANA_SHELL is called. In most of the cases STC01 task list are called.

 

3 Remote Conversion - So called system carve out / brownfield. Similar to the In-place Conversion. It starts with SAP BW/4HANA as green field installation (new SID) and BW data models/flows and data itself from original BW are transported to the new BW data models in the new system. Classic BW objects like cubes, DSO and PSAs are replaced by BW4 objects aDSO and composite providers. Minimum start release is SAP BW 7.0 or higher on any DB.

 

4 Shell Conversion - So called Accelerated Greenfield. Again, it is similar to remote conversion but without data transfer. Means only the BW data models/flows are transferred not the data itself. No transactional neither master data is transferred. Minimum start release is SAP BW 7.0 or higher on any DB.

5 BW Landscape transformation - So called system consolidation. In case there is a need to consolidate several BW systems into one e.g. multiple SAP BW, or SAP BW on SAP HANA systems to become one global system. Method of system conversion is typically mix of one several ones. Typically one in-place conversion and one or more remote or shell conversions.

 

For all the types of conversion very first things is check the original BW system before conversion. To support this here it is “SAP BW Migration Cockpit for SAP HANA” (program ZBW_HANA_MIGRATION_COCKPIT) available (see Tools for migrating to SAP BW/4HANA (B4H)). 


Other tools that are available within SAP BW/4HANA Transfer Cockpit (t-code RSB4HCONV includes:

1. Maintain BW/4 Transfer Tool Statistics (ABAP program RSB4H_STAT_MAINTAIN) – It enables maintenance and display of the statistics for scope transfers.

2. Table RSB4H_RCRDCOUNT - Precheck phase collects data into this table about record count for BW/4 Transfer Tool.

3. Deletion of Technical Content RS_DELETE_TECHNICAL_CONTENT – Classic BW technical content (objects like 0TCA* and 0TCT*) including the SAP BW Administration Cockpit are not compatible with BW4. This is available at button called “Delete Technical Content” in the Transfer Cockpit.

4. Transfers of Standard Authorizations (ABAP Program RS_B4HTAU_CREATE_RUN) - User roles including standard SAP BW authorizations are converted by transporting the original roles. This is available at button called “Transfer Standard Authorization”.

5. BW/4 Code Scan (ABAP program RS_B4HANA_CODE_SCAN) – or so called custom ABAP code scan does a compatibility checks of custom code with BW/4. This is available at button called “Scan coding”.

6. Sizing report (ABAP program /SDF/HANA_BW_SIZING) - Determine DB size relevant for BW/4HANA Sizing. This is available at button called “Run Sizing Report”.

7. B4 HANA Readiness check (ABAP program RS_B4HANA_RC) – Shows progress of the conversion. This is available at button called “Show Logs”.

8. Execute Prechecks button runs different method calls with respect to different phases of conversion like:

cl_rs_b4hana_util=>n_c_switch-standard_bw (val 0)

cl_rs_b4hana_util=>n_c_switch-prepare   (val 1)

cl_rs_b4hana_util=>n_c_switch-b4hana   (val 2)

9. table BW4HANAADMIN - used to store current mode of BW conversion. The table is access via methods of class CL_RS_B4HANA_UTIL_ADDON. It stored values of below modes:BW4HANA_READY4CONVERSION, BW4HANA_STRICT, BW4HANA_TRANSFER.


More information:

SAP BW/4HANA (B4H) versions

Tools for migrating to SAP BW/4HANA (B4H)

Conversion Guide for SAP BW/4HANA2.0

1909597 - SAP BW Migration Cockpit for SAP HANA

2351381 - SAP BW/4HANA task lists

2358953 - SAP BW/4HANA Conversion: Preparation Tasks

2383530 - Conversion from SAP BW to SAP BW/4HANA

2930058 - FAQ - SAP BW/4 Conversions

2285440 - Technical prerequisites in BW for "SAP BW Edition for SAP HANA" add-on




Monday, September 21, 2020

Finding any process in Process Chain that deals with certain object

There is an easy way how to find out what is process chain uses particular objects. The object can be BW one like cube, DSO, IO, sub/remote chain or ABAP report, index etc. Particular objects are stored in table RSPCVARIANT that stores all the variants that are used in process chains. This table has column called TYPE which is Process Type. In another column, called VARIANTE is name of the Process Variant stored. The table has also fields LOW and HIGH where it is possible to put particular object like cube, DSO, etc.

Once the variant is known from table RSPCVARIANT the PC where the variant is used can be looked up from table RSPCCHAIN.

Let’s consider following example. One would be interested in all PCs where compression of cube 0TCT_C02 takes place. First a type of the process (in this case compression) TYPE=COMPRESS and cube tech name is entered into the table RSPCVARIANT. Afterwards all variants found in the table RSPCVARIANT are put as a restriction into column VARIANTE IN the table RSPCCHAIN. In returned list, all PCs where the variant is used are shown in column called CHAIN_ID.



Below are the types of variants that can be looked up in the table RSPCVARIANT

1. ABAP - Program Execution

 

2. Cube related types of PC variant like:

DROPCUBE    Data Target Contents

DROPINDEX   Indexes

INDEX           Create Index

COMPRESS    Collapse

REQUDEL      Request in InfoCube

ROLLUP         Adjust

PLSWITCHL   Load Mode On

PLSWITCHP   Plan Mode On

 

3. DSO/ODS related types of PC variant like:

ODSACTIVAT DataStore Data

ODSPROCESS Further Processing

DSOREPLIC   DataStore Obj.-Repl.

CHGLOGDEL  Delete Change Log

 

4. Data source/PSA related types of PC variant like:

PSADELETE   Delete PSA Request

PSAPROCESS Update from PSA

 

5. PC related types of PC variant like:
CHAIN           Local

REMOTE        Remote

 

Others:

ATTRIBCHAN Attrib. Change

DBSTAT        DB Statistics

HIERSAVE     Save

MAIL             Message


EPM add-in not activated at MS Excel startup

In case EPM add-in crashes, the MS Excel automatically disables the add-in. That means it is not started automatically when the MS Excel starts, as it was normally the case before the crash. User needs to manually set it up in the MS Excel’s Options menu. Later when it is set - even the EPM add-in itself is set to be loaded it doesn’t load at the MS Excel start up.

This can be irritating as someone needs to load the add-in overtime the excel starts. It can be fixed by changing the Load Behavior (FPMXLClient.Connect LoadBehavior) in Window’s registry. The registry can be accessible via command regedit.exe – Registry Editor. The Load Behavior need to be set to value “Load at Startup”. A path in the Window’s registry is follows:

HKEY_CURRENT_USER > Software > Microsoft > Office > Excel > Addins > FPMXLClient.Connect


While you are in that particular, settings in the Window’s registry set the value to 3 – which corresponds to the Load Behavior equal to “Load at Startup”. This guarantees that the load of the EPM Add-in happens automatically at the MS Excel startup. If for some reason the settings is changed frequently, one can create simple cmd (command) or bat (batch) file on OS Windows. By this the settings in the registry can be updated e.g. at Window’s startup on ad hoc basis whenever it happens that the add-in is not set to “Load at Startup” value.


More information:

2136065 - EPM Disable Option Not Working on Excel

2415648 - Office Add-In is deactivated or unavailable

1681042 - EPM Add-In Not Getting Loaded / Installed Correctly

Thursday, September 17, 2020

Error while opening AL11 file from ABAP program

Interfacing against file system is common thing still even we are moving slowly to cloud oriented computing. There is bazillion of ABAP programs all over the world writing/reading data from/to files. There are ABAP statements like OPEN / TRANSFER / READ / GET / SET TRUNCATE / CLOSE / DELETE that supports working with the DATASET - files. The files are accessible for the users from SAP GUI via t-code AL11. Sometimes even people tend to refer to such files, as AL11 files despite physically the files are stored on OS level.

While programs like those that writes, data into the file are running as background jobs there can be following error popping up in spool of the job:

Error while opening AL11 file



It can be tricky error even when you schedule the job to run by very privileged user like DDIC or any other who is granted with SAP_ALL / SAP_NEW authorizations. Problem is that while the job runs under super privileged user the physical write on OS level is not done by the user under which the job runs. The user that deals with the file is in fact the OS level user – means the user under whom the SAP instance is running (who runs disp+work process).

Based on this the OS level user needs to be authorized to write/read particular folder on OS level.

 

More information:

27 - Recommendations for ABAP file interface

68718 - Problems with file authorizations and umask

Problem in file reading from al11

Friday, September 11, 2020

Not possible to run ABAP program in Eclipse environment?

Following situation usually happens when someone starts with ABAP development in ABAP from Eclipse (so called ABAP in Eclipse (AiE)). It is either SAP HANA Studio or just regular Eclipse (version like Neon, Photon, etc.) they all use ABAP Development Tools (ADT). The ADT is suite of Eclipse plug-ins that enable the Eclipse to connect to the SAP NetWeaver system and do the ABAP development from the Eclipse. Doing ABAP development in the Eclipse; replaces t-codes like SE80/Se38/SE37 etc.

For freshers when they start with the new SAP system and try to make an attempt to run their ABAP programs in the Eclipse there can below error message popping up:

"Skip Initial Screen" is not permitted for transaction SADT_START_WB_URI

    Message No. 00131

Diagnosis

    "Skip Initial Screen" is not permitted for transaction &

System Response

    You tried to start the transaction & with the option "Skip Initial

    Screen" using an SAPGUI shortcut, a start transaction, or a URL.

Procedure

    This is not permitted with this transaction.

Procedure for System Administration

In order to fix this; following entries need to be added into the view V_TSTCS:

SADT_START_TCODE

SADT_START_WB_URI


Other option is to disable profile parameter dynp/checkskip1screen completely. As the latter option is normally to be done by SAP Basis the first option is more feasible. The view/parameter carries a client-specific checks on whether it is permitted to start a transaction with the “Skip Initial Screen” option.

Enjoy coding in the Eclipse :)