Monday, January 21, 2019

SAP IDES SAP ERP 6.0 EhP8 installation

Here is my latest experience with installing IDES system. I installed the latest available IDES system to date which is ERP 6.0 EhP8 aka SAP Business Suite 7i 2016. Installation is WINDOWS OS based on MS SQL as database. VirtualBox was used as virtualization environment.


1. OS installation:
I used Windows Server 2012 R2 as an OS. After the OS was installed I did following setup:
1.1 install Guest Additions in VirtualBox to enable folder sharing: in VM go to disk D - VirtualBox Guest Additions and run installer (e.g. C:\Program Files\VirtualBox\VBoxGuestAdditions.iso)
1.2 change host name of VM to 6 char only
1.3 enable .NET 3.5.1 manually for the Windows Server via Service Manager -> Local Server -> Manage -> Add Roles and Features Wizard -> Features
1.4 modifying host file with following entry:
#SAP ECC 6 EhP8
127.0.0.1      ides ides.dummy.nodomain
1.5 Switch off firewall in Windows from PowerShell in elevated mode by entering the following command:
Set-NetFirewallProfile -enabled false
1.6 make sure you have at least 350GB available space on hard drive where the system will be installed.


2. DB installation:
From installation medias choose one marked as SQL Server 2014 for SAP and run installation via file SQL4SAP.bat
Script takes approximately 20 minutes to complete.


3. SAP system installation:
3.1 Preparation check
Run SAP installer from command line located at media marked as SWPM. I used SWPM of version SP24 (Software Provisioning Manager 1.0 SP 24). The SAP installed itself is executable file sapinst.exe. The SWPM used to be regular Win app not web based before. Not sure if the web app is the best but it looks working for me.


The installer open default web browser and points to URL: https://:port/sapinst/docs/index.html

which is UI of the installer. Here I choose SAP Business Suite 7i 2016 -> EHP8 for SAP ERP 6.0 ABAP -> MS SQL Server -> Preparations -> Prerequisites Check.

On next screen there is a possibility to choose what shall be checked. Safe option is to leave it as it is to run just default checks.

Next screen is to browse for installation media of Kernel.

Once the path to the Kernel is checked it open the files in there and checks them. After the successful checks a Status is set to available. If it is not available you need to provide path to proper Kernel installation media.

On next screen the installer provides results of Prerequisites checks.

Some things listed I just ignored and went further by selecting No button to do not check them again.

Almost final screen of prerequisite check screen.

And finally the final screen of prerequisite check screen.



3.2 Installation it self

Start sapinst.exe again for next phase. From very first screen from installation UI based in web browser select: SAP Business Suite 7i 2016 -> EHP8 for SAP ERP 6.0 ABAP -> MS SQL Server -> Installation -> Application Server ABAP -> Standard System -> Standard System.

Here I said Custom type of the installation:

Restart of OS due to user switch:


Installation resumes automatically afterwards.

Specifying SID for the SAP system:

Specifying domain:

Specifying master password:

 Settings related to WIN domain:

Specifying passwords for SAP users on OS level (by default passwords are copied from master one):

Specifying connection to the database:

Confirmation of and DB creation:

Browse for installation media. Starting with SAP Kernel.

Once the Kernel media are okay screen looks like this:

Again run of prerequisite checks:

Announcement that not all pre-req checks were successful. This can be ignored by opting to do not repeat checks.

Software package browser this time for SAP Host Agent component:

More options for SAP Host Agent related to Windows Domain:

Passwords of user under which of SAP Host Agent will run:

Specifying path to media for Data export CD1:

Specifying path to media for Data export CD2:

Specifying passwords to the database:


Specifying size of system. Off course I went with the smallest option:

Location of the database file can be adjusted on this screen:

Database temporary DB files configuration:

SQL Server memory config related settings:

Declustering / decoupling options. As this is NetWeaver 75 based system this is mandatory – it can’t be really skipped. More on this topic can be found here.


This operation takes huge amount of time during installation. All cluster and pool tables are being reorganized.

By settings related to DB import you can speed up installation if there is a powerful hardware available. 

Primary Application Server Instance and ABAP Central Services Instance, I just left it as it came up by default.

ABAP Message Server Ports and Transport Host related settings.

ICM User Management for the SAP Web Dispatcher related settings.
 SLD Destination for the SAP System OS Level related settings. 

Message Server Access Control List related settings, not applicable in my case.

Additional Components to be included in the ASCS Instance

SAP Web Dispatcher Parameters

Secure Storage Key Generation

Generated secure key (needs to backup):

Review parameter list:

Installation now runs:

Importing data to database phase:



Most of installation time was spent on declustering / decoupling operations. In my case it was almost 24+ hours. That runtime I had with intel i7 processer on just 1 core and 16GB of RAM.
Progress of import DB phase can be seen in log file located in:

"c:\Program Files\sapinst_instdir\BS2016\ERP608\MSS\INSTALL\STD\ABAP\import_monitor.log"

When progress reached Service Completion at 57% there was following error that can be ignored:

Package 'SAPVER_CLUSTR' not loaded.
Message
Not all packages are loaded.
DIAGNOSIS: For details see output file with missing packages invalid_packages.txt and log file package_checker.log.

Normally it indicates the data load error but in some special cases (for example, if some packages were processed externally) you can choose OK to continue.


Afterwards install continues with re-writing phase:

Running of procedures phase:

File actualization:

Attempt to start SAP instances:

During start of SAP instances phase I got following error:

An error occurred while processing option SAP Business Suite 7i 2016 > EHP8 for SAP ERP 6.0 ABAP > MS SQL Server > Installation > Application Server ABAP > Standard System > Standard System (Last error reported by the step: ABAP processes of instance PCT/D00 [ABAP: STARTING] did not start after 10:10 minutes. Giving up). You can now:
• Choose Retry to repeat the current step.
• Choose Log Files to get more information about the error.
• Stop the option and continue later.
Log files are written to C:/Program Files/sapinst_instdir/BS2016/ERP608/MSS/INSTALL/STD/ABAP.

It turned out that issue was related to paging file of my WINDOWS OS. I had to manually increase the file if the page file via - Click right to This PC -> Properties -> Advanced System Settings -> Advanced -> Performance -> Settings -> Advanced -> tab Advanced -> Virtual Memory. Change page file size to minimum 10240 and maximum 20480.

In case you are stuck in this step with similar error, here’s’ what you can try:
- Check logs files like dev_w0 and dev_disp.

- Kill all other programs running in parallel to your SAP installation. The install may need all computer resources to complete successfully.

- Try to start the instance manually and proceed with the installation.


- See SAP Note 2535340 - ABAP processes of instance [ABAP: UNKNOWN] did not start after 10:10 minutes. with 28: No space left on device in dispatcher trace file while installing a additional dialog instance.


Analyzing of log files ended up with following error:

An error occurred while processing option SAP Business Suite 7i 2016 > EHP8 for SAP ERP 6.0 ABAP > MS SQL Server > Installation > Application Server ABAP > Standard System > Standard System(Last error reported by the step: The JVM reports an exception during execution of class ( com.sap.sdt.ins.component.nw_ci_instance_abap_reports.RunRUTCSADAPT ) and function executeStepClass. DETAILS: The reported error message from JVM is: java.lang.Exception: Immediate start not currently possible at com.sap.sdt.ins.nw.batchjob.BatchJob.start (BatchJob.java:212) at com.sap.sdt.ins.nw.batchjob.ABAPProgramExecutor.startJob(ABAPProgramExecutor.java:224) at com.sap.sdt.ins.nw.batchjob.ABAPProgramExecutor.executeProgramAsBatchJob(ABAPProgramExecutor.java:179) at com.sap.sdt.ins.nw.batchjob.ABAPProgramExecutor.execute(ABAPProgramExecutor.java:116) at com.sap.sdt.ins.component.nw_ci_instance_abap_reports.RunRUTCSADAPT.execute(RunRUTCSADAPT.java:25) ). You can now:
• Choose Retry
to repeat the current step.
• Choose Log Files
to get more information about the error.
• Stop the option and continue later.
Log files are written to C:/Program Files/sapinst_instdir/BS2016/ERP608/MSS/INSTALL/STD/ABAP.

To solve this error again (as I did in case of instance not started error) I just tried to cleanup up memory as much as possible by removing not needed programs. And retrying to execute the step.


Execution of report RUTTTYPSET – this step is also time consuming due to heavy memory requirements. It might be that this reports is scheduled in the system in many parallel instances and they causing system overload. Purpose of the report is to correct some entries in tables.

Final message – installation is successfully over!

And very last message:

In closing words I’d like to say following.

Reason why SAP moved SWPM to be pure web app is not very clear to me. There are normally issues like: timing out of web page when the installation progress is not refreshed, crashing of web browser, consuming too much memory by the web browser that can’t be used for installation etc. Probably to have it web based is helping SAP to deploy cloud based solutions however to have a thick client would serve better for on-premise installs.

Necessity of performing declustering / decoupling of DB tables. This operation is now mandatory as of NetWeaver 7.5. I understand that this is needed in case of HANA DB. By I do not see that much benefit of it in case of other DBs. I’d prefer to have this optional and do not enforce it by the installation. The operation itself very time consuming and overall installation time ballooned just because of that.

Hard drive space is needed for MSSQL based IDES system to be allocated at least for 350GB. Even better is to have approximately 380GB. Otherwise the installation will crash and in many cases you need to start over with it.

This is also one of my last installation of IDES systems. As SAP is moving everything to could and to HANA DB there won’t be a lot of chances to do this again in future. This is mostly by decreasing demand. It is much easier to deploy it in cloud. Also IDES on HANA DB is much difficult to setup as HANA needs to be installed first and that is also not an easy task to complete.

Saturday, January 19, 2019

Similarities of SAP and mainframes

I recently took a part in online MOOC course called "Mainframe - Crucial Role in Modern Enterprise Computing" by HPI institute.

Here while learning about mainframe architecture its operating systems, history how it evolved and features of mainframes I noticed few similarities comparing to SAP NetWeaver architecture.

There are few points of view where I found some similarities between the two.

With regards to architecture - From this point of view, it all goes back to early days of SAP. When they introduced R/2 software (Enterprise Resource Planning software) which at the time (approximately in 1979) was only available on the mainframes (before R/2 there was an R/1 which was batch processed based system). When they started to develop R/3 (launched in 1992) they needed to migrate to client/server architecture. The R/3 inherited many components of the R/2 like tables, UI in form of DynPros, ABAP programming language, batch job management, etc. which at the end formed Basis platform of the R/3 (Basis Component - BC). By this way many of architecture principles that they used on mainframe got to new technology that was the client/server. Later the Basis Component of R/3 was transformed to NetWeaver (2003) by adding Web Application Server and other components and rest is history. As a side, note approximately as of 2020 the NetWeaver is transitioning to ABAP Platform - that is the foundation of the S/4HANA products starting with S/4HANA 1809.

Controlling of user interactions – in R/3 SAP had to simulate functionality of 3270 terminal screens of R/2. That’s how function key like F1, F3, F11, F12 made to SAP GUI of R/3 and subsequently even to most recent version of SAP GUI. The purpose of function keys followed an IBM standard for application user interfaces (mainframe user interfaces).  See user screens examples of R/2 and R/3 here.

F1 Help

F3 Save and Quit

F10/F11 Shift left/right

F12 Cancel (Quit without saving)

Batch job management - SAP NetWeaver job management has its roots in jobs on an IBM mainframe. The concept is quite similar. Mainframe’s JES (Job Entry Subsystem) has similar principles that we can find in SAP’s NetWeaver like: job class, input, conversion, processing, output (output goes to spool), etc.

Software development – ABAP was introduced in case of R/2 (so on mainframe) software and it is supported by SAP stack also today (of course ABAP has evolved since and has many features of modern programming languages. It started as a report language influenced by COBOL which is predominant programming language even today. There are many similarities between the two. E.g. language statements like: END-IF, END-PERFORM, ADD, MOVE-CORRESPONDING, WRITE etc.

In standard SAP NetWeaver ABAP stack based installations there is ABAP program called ROIUHSTRUTIL. It is available in the newest version of the NetWeaver – 7.5. The program itself appears to be COBOL to ABAP conversion, string processing support tool.

Storage Management - Data sets are basically files in Linux. This term is used in both worlds, mainframe and in case of SAP there is a language statement in ABAP called OPEN DATASET.

ABAP message type - Abend (A as per field MSGTY that described possible values of the message type) that means Cancel. Sometime there is a reference to abended/cancelled (or something is abending) in SAP documentation. The term ABEND means Abnormal END. In the mainframe world, the ABEND is macro used to initiate error processing for a task. There are multiple values of the ABENDs – abend’s codes. Normally they are represented by four characters code (e.g. S0CB  - Attempting to divide by 0 and not using ON SIZE ERROR, in case of IBM’s z/OS). Similarly, in SAP world there are also code like AEXL in program SYBLSTNR which means that updates to local recoverable.

In general, by what is mean by the ABEND in SAP terminology is the error message that the ABEND caused. The ABEND description or the ABEND message means ABAP message content it-self. E.g. something leads to the abend = to the cancellation of the program. E.g. abend message: 'Tab page &1 contains errors'.

Friday, January 18, 2019

Declustering / decoupling of SAP’s DB tables

Cluster and pooled tables are present in SAP NetWeaver ABAP stack based system for ages. They addressed requirements of SAP functional applications to present data from several database tables together. SAP introduced following table types in ABAP Dictionary to support that:

Cluster table - data logically belonging together of several cluster tables is stored together in a table cluster in the database. It represents a diagram type in the ABAP Dictionary. Such ABAP dictionary tables allow efficient access to a whole application object without using extensive join operations in database. Cluster tables are used very much in SAP’s HR module.

Pooled table - data of several pooled tables is stored together as a table pool in the database. Such ABAP dictionary tables are trying to solve a problem with large numbers of individual database objects (e.g. large number of small customizing tables).

However, these concepts are obsolete when it comes to modern databases. Organizing data in such a way in ABAP application server is no needed anymore. SAP is trying to remove these concepts by declustering / decoupling of such an objects. This means that all tables are converted to transparent tables. For any SAP NetWeaver system running on HANA DB such a tables are declustered and depooled per default. Also starting with SAP NetWeaver 7.5 on any DB the declustering / decoupling is mandatory by default. Operation of converting tables is doen during installation of NetWeaver 7.5 based systems. Manual conversion can be done in t-code SE11 together with SE14 and/or in ICNV.

One more thing worth mentioning is performance of declustering / decoupling operation. During SAP system installation it is usually very time consuming task. Therefore, it must be considered while preparing plans for installing of new systems.


More information:
1892354 - SAP Strategy for Cluster and Pool Tables
2227432 - How to: Declustering and depooling with NW 7.4 SP03 and higher on databases other than SAP HANA
1784377 - Checking pool tables and cluster tables

Locks set in BW system by BEx tools

When BW query is opened in BEx Query Designer similarly to when the BW query runs in BEx Query Analyzer there are a locks set in the BW system. There is a reason for that.

Each query is represented by generated ABAP report GP* that executes data selection from BW server to the query. We can compare the generated ABAP report as runtime processing of this BEx query. The lock is set while the ABAP report is generated.

Locks by BEx QD:


Lock by query run:

Normally the locks are not observed by regular BW user runing the query. However in the case that several users are running the same query there can be a message shown like following:

Object requested is currently locked by user (MC601, MC 601)

Every change to the query triggers it regeneration. More complex the query is more time it requires to regenerate. You can manually regenerate the query in t-code RSRT or via ABAP report RSR_GEN_DIRECT_ALL_QUERIES.

More information:

Thursday, January 3, 2019

Current BW trainings for versions 7.5 and BW/4HANA

With introduction of BW 7.5 on HANA (BoH) and streamlined version of BW for HANA (BW/4HANA or B4H) there are also the standard BW training courses that were updated.
The latest training curriculum consist of classic BW training structure which goes like:

Query Design
Enterprise Data Warehousing
Data Warehouse Modeling
Data Acquisition
Operations & Performance
User Management and Authorizations

Normally these courses have codes like BWxxx, where xxx is digit part of the course. These codes still follow same numbers as it was with regards to older BW versions. Just in case of BW 7.5 on HANA the first digit is 3 and in case of BW/4HANA x is 4. Moreover, in case of the BW 7.5 on HANA there is an H followed by the digits indicating it is BoH version.

Below is full training list for both the versions:

BW 7.5 on HANA:
BW305H_Col15        SAP BW powered by SAP HANA: BW Query Design
BW310H_Col15        SAP BW powered by SAP HANA: Enterprise Data Warehousing
BW330H_Col15        SAP BW powered by SAP HANA: Data Warehouse Modeling
BW350H_Col15        SAP BW powered by SAP HANA- Data Acquisition
BW360H_Col15        BW on HANA - Operations & Performance
BW362                    SAP BW Powered by SAP HANA
BW363_Col15          SAP BW powered by SAP HANA - Delta BW Query Design

SAP BW/4HANA:
BW405_Col14           BW/4HANA Query Design and Analysis
BW410_Col14           Data Warehousing with SAP BW/4HANA
BW430_Col14           SAP BW/4HANA Data Modeling
BW450_Col14           SAP BW/4HANA - Data Acquisition
BW462_Col16           SAP BW/4HANA
BW465_Col14           SAP BW/4HANA - User Management and Authorizations

DBW4H_Col16         Data Warehousing with SAP BW/4HANA, Delta from SAP BW powered by SAP HANA to SAP BW/4HANA

BW4HC - System Conversion to SAP BW/4HANA

BPC450 - Business Planning and Consolidation Administration and Local Planning 


The trainings can be booked via site training.sap.com in case of classroom training or via learninghub.sap.com in case of online session training.