Friday, December 28, 2018

SAP Enterprise Architecture Designer (EA Designer or EAD)

Within the SAP HANA Data Management Suite (HDMS) there is a central tool which serves as single point of design, documentation and reference from enterprise architecture (EA) point of view.
It can be used for capturing, analyzing, present of many artefacts important in architecting of IT objects. These objects can be landscapes, systems, strategies, data, biz processes, requirements, application modeling and other used in the IT environments. Depicting the mentioned objects by industry standards, using metadata and diagrams enables proper understanding of the EAD’s outcomes in different stages of the IT projects.

Short example of different diagram types that are supported by the tool:

- Business Process diagrams (e.g. BPMN 2.0: descriptive and executable)
- Conceptual Data, Physical data modeling & data architecture: Tables & Views, Virtual table definitions, Data Movement Models (Flowgraphs), Native DataStore Objects, HANA CDS associations
- Data Movement Diagram
- Enterprise Architecture Diagram
- NoSQL Document Schema (JSON)
- Process Map
- Requirements List

Here are few examples of capabilities that are supported by the tool:

Integrated design - Translate business strategy to technical implementation requirements
Development automation - Generate architecture and technical artifacts automatically
Corporate knowledge - Drive collaboration from a single point of truth for all stakeholders
Flexible deployment - Deploy artifacts to SAP HANA or SAP Cloud Platform

The tool is web based so user is using web browser all the time while using the tool. It aims to support comprehensive end-to-end modeling experience. It has reverse engineering capabilities too. It supports model comparison, lineage and impact analysis. It saves generated SAP HANA HDI compatible files to either local ZIP files (for later import to SAP Web IDE) or to Git Repository (for Git integration to SAP Web IDE).

The tool has its place in data warehousing are as it is used in SAP SQL Data Warehousing solution. Here it servers during design phase where the new SQL based DWH is being modeled in the tool. The models that are needed for such a DWH includes: Conceptual Data Model (CDM), Physical Data Model (PDM), LifeCycle Metamodel, CalcView, Data Movement Model.

SAP SQL Data Warehousing

SAP SQL Data Warehousing is reflecting modern trends in data warehousing solutions. It leverages SAP HANA Data Management Suite (HDMS) as foundation the modern data warehousing. It basically brings SQL capabilities to traditional SAP's style of the data warehousing (e.g. BW based).
Moreover, there is a need to address also things like nonSAP data majority that many customers have in their landscape, integration of 3rd party 3rd party DWH solutions, development agility, leveraging existing SQL knowledge and database skills that customers have in their IT department acquired by using non SAP solutions. All this pushes SAP to deliver SQL-based DWH solutions.

What are possibilities of running SAP SQL Data Warehousing?

1. Using SAP BW/4HANA - means combining SAP SQL Data Warehousing with SAP BW. Here best is to leverage BW/4HANA. use cases here can be a consumption of SQL based datamarts and data warehouses by SAP BW. Best case here for SAP customers is running the SAP SQL Data Warehousing and BW/4HANA on same platform/system which contributes to simplify system landscape.

2. Using SAP HANA Data Management Suite (HDMS) – See my blog about the HDMS here. In particular, this use case mostly SAP HANA XS Advanced engine is leveraged plus other tools. In addition, in design phase the future SQL DWH is modeled in SAP Enterprise Architecture Designer (EAD) which is part of HDMS. A next phase is development of the DWH. Here it is possible to clone, edit and build the DWH artefacts using SAP Web IDE for SAP HANA (again part of HDMS). In this case the development artefacts are SAP HANA content and models. The HDMS toolset covers the tools for deploying (HANA Deployment Infrastructure (HDI); Application Lifecycle Management (ALM); External Repository Services) and running (SAP Data Warehousing Foundation tools like: Data Warehouse Scheduler (DWS); Data Lifecycle Manager (DLM); Data Warehouse Monitor (DWM); Data Distribution Optimizer (DDO); etc.) the SQL based DWH as well.

More information:
Getting Started with SAP SQL Data Warehousing

SAP HANA Data Management Suite (HDMS)

In this year's SAPPHIRE, SAP announced a platform of tools for governing and integrating data across multiple data (federated) environments. It is built on top of existing SAP products (components of HDMS) as below:



1. DB platform: SAP HANA: The HDMS leverages HANA platform which means all of its components runs on HANA with all benefits of the HANA like in memory computing, advance DB capabilities, different engines (spatial/graph processing, text analysis, search and mining, predictive/machine learning, streaming, series data storage and processing), etc.

2. Orchestration and governance: SAP Data Hub is used to centralize metadata management cross different systems. Main function of this component are:
- Data Pipelines – flow based applications consisting of reusable and configurable operations, e.g. ETL, Preparation, Code Execution, Connectors 
- Workflows – orchestrate processes across the data landscape, e.g. executing data pipelines, triggering SAP BW Process Chains, SAP Data Services Jobs and many more.
- Governance – metadata repository of information stored in the connected landscape. Offering discovery, profiling and search capabilities.

3. Multi-modal modeling: SAP Enterprise Architecture Designer (EA Designer or EAD) is used as component of the HDMS to model systems in landscape and processes around it. Is it to use for conceptual, logical, and physical modeling of SAP and non-SAP data.

4. Cloud services: SAP Cloud Platform Big Data Services component is used to deliver full-service big data cloud based on Hadoop and Spark.

Tools of SAP HDMS:
SAP HANE Extended Application Services (XSA/Cloud Foundry)
SAP HANA Web IDE
SAP HANA Application Lifecycle Management (ALM)
SAP HANA Deployment Infrastructure (HDI)
SAP HANA EIM Services (SDI/SDQ); SDI = Smart Data Integration; SDQ = Smart Data Quality
SAP Enterprise Architecture Designer
SAP HANA Processing Engines & Services
SAP HANA Data Tiering
SAP HANA Data Warehousing Foundation (DWF)
SAP Agile Data Preparation (ADP)
SAP HANA Based Services on SCP
Open Source Tools like Git, Jenkins, etc.


The HDMS is part of SAP’s initiative called Intelligent Data and it shall support its customers in transition to an Intelligent Enterprise. The term Intelligent Data can be described as data (data ingestion from various sources, smart data streaming for event capture, high data quality) in a single and unified view.  Together with smart data integration that enabling innovative/ advanced applications and data management. 

More information:
Intelligent Data

All pictures - courtesy of SAP SE from its marketing materials.

Wednesday, December 19, 2018

abapGIT

Ten years back we had a tool called SAPlink that enabled sharing of ABAP code. Few years back a new initiative started that aimed to implement a version-control system for tracking changes of ABAP code. abapGIT is open source initiative that basically does the same what git tool does for other programming languages. So a source-code management in software development supporting multiple programmers working on same code. SAPlink is obsolete now and abapGIT is fully replacing it and offering many more.

I installation is fairly simple you just need to manually create one abap report. And that’s it. No includes as everything is contained in the one ABAP source code ZABAPGIT. While you can use the abapGIT in so called modes:

offline mode – This is to e.g. pack your programs to ZIP file (export) and deploy it on another SAP system (import). You can import also any ABAP source code from git servers (like github.com) just by exporting the code into the ZIP file and importing it to SAP system.

online mode – Enables you to clone any Git repository from git servers (like github.com) by proving clone URL.

For the online mode a certificates needs to be installed on SAP system in order to enable SSL. This is basically described in manual. It involves a download the certificates from github.com and installing them via t-code STRUST. Here first you import the certificate via IMPORT button and afterwards you need to add to Certificate list with respective button. Of the certificate is not added the whole SSL setup won’t be completed.



Lastly you need to add following system profile parameters below in order to complete the SSL setup. This can be done via t-code RZ10 or directly by editing a file (/sapmnt//profile/_DXX_hostname).

ssl/client_ciphersuites = 150:PFS:HIGH::EC_P256:EC_HIGH
ssl/ciphersuites = 135:PFS:HIGH::EC_P256:EC_HIGH

More information:
Latest build: zabapgit.abap


Saturday, December 8, 2018

Software Provisioning Manager (SWPM) – list of SAPinst properties

SAPinst is part of Software Provisioning Manager (SWPM)and it is a tool used to logistics of SAP software products. It basically executes installations/upgrades of SAP software. In this post I’d like to list out all parameters (called properties) that can be used while running the SAPinst.

To get an information about version of the SAPinst use parameter: -version It will give a output similar to following:

SAPinst build information:
Version:         749.0.49
Build:           1838559
Compile time:    Apr 24 2018 - 09:56:11
Make type:       optU
Codeline:        749_REL
Platform:        ntamd64
Kernel build:    749, patch 500, changelist 1837688
SAP JRE build:   SAP Java Server VM (build 8.1.038 9.0.4+011, Mar 19 2018 16:55:53 - 81_REL - optU - windows amd64 - 6 - bas2:303791 (mixed mode))
SAP JCo build:   3.0.18
SL-UI version:   2.6.22
SAP UI5 version: 1.50.4

To get a list of all properties just run it with parameter: -p Here are all the properties:

SAPINST_BROWSER Path to the browser executable that is started with the SLP access URL.
Windows only: If SAPINST_BROWSER is not set, the default browser of the system is started. For more information, see SAP Note 2336746.
Value type: string
Default value:

SAPINST_CONTROL_URL Path and name of a control file 'control.xml' or a catalog file 'product.catalog'.
If this parameter is missing, the first unknown parameter that is not a valid parameter is used for control file.
Value type: string
Default value:

SAPINST_CRL_PATH        The path to the downloaded CRL. Download the CRL from https://tcs.mysap.com/crl/crlbag.p7s
Value type: string
Default value: ~/.sapinst/crlbag.p7s

SAPINST_CWD       Directory that is used as working directory. Requires write permissions to that directory.  This parameter has the same effect as previously changing to this directory.
Value type: string
Default value:

SAPINST_EXECUTE_PRODUCT_ID       With this value you can directly process the required option using the attribute ID at the 'component' tag in the 'product.catalog' file, for example id="NW_ABAP_OneHost:S4HANACLOUD.CORE.HDB.ABAP". If no option exists with this ID, the 'Welcome' screen displays all available options.
Value type: string
Default value:

SAPINST_HTTPS_PORT   HTTPS port in SL Common-GUI mode
Value type: number
Default value: 4237

SAPINST_INIFILE_URL   File to be used for reading initial values of component parameters. For more information, see SAP Note 950619. Aliases: SAPINST_PARAMETER_CONTAINER_URL
Value type: string
Default value: inifile.xml

SAPINST_INPUT_PARAMETERS_URL   Path and name of a text file containing 'key=value' pairs to be used preferentially when evaluating component parameters. A component parameter attribute 'defval-for-inifile-generation' defines the key. Its value is used as the initial value when processsing the component for the first time.
Value type: string
Default value:

SAPINST_IPv6_ACTIVE   If set to 'true', the usage of IPv6 is enabled by default
Value type: bool
Allowed values: true = {true, yes, 1}, false = {false, no, 0}. Other values are not allowed.
Default value: false

SAPINST_MESSAGE_CONSOLE_THRESHOLD Trace level console
Value type: string
Allowed values: flow_trace, trace, info, phase, warning, error, external(for ACC)
Default value: error

SAPINST_MESSAGE_DEVLOG_THRESHOLD   Trace level developer logfile
Value type: string
Allowed values: flow_trace, trace, info, phase, warning, error
Default value: flow_trace

SAPINST_MESSAGE_GUILOG_THRESHOLD    Trace level standard logfile 'sapinst.log'
Value type: string
Allowed values:   values: flow_trace, trace, info, phase, warning, error
Default value: info

SAPINST_REMOTE_ACCESS_USER       Name of an OS user who is authorized to log on remotely with name and password via the GUI. By default, this is the user of the SAPinst process. For more information, see SAP Note 1745524.
Value type: string
Allowed values: the login name of the user who can logon to the remote UI
Default value:

SAPINST_REMOTE_ACCESS_USER_IS_TRUSTED     If set to 'true', warnings concerning the remote access user are disabled. This user must be a trusted user.  For more information, see SAP Note 1745524.
Value type: bool
Allowed values: true = {true, yes, 1}, false = {false, no, 0}. Other values are not allowed.
Default value: false

SAPINST_SKIP_DIALOGS          If set to 'true', all dialogs are skipped. Value type: bool
Allowed values: true = {true, yes, 1}, false = {false, no, 0}. Other values are not allowed.
Default value: false

SAPINST_SKIP_ERRORSTEP      If set to 'true', the first step with status ERROR is skipped; step status is set to 'OK'. Value type: bool
Allowed values: true = {true, yes, 1}, false = {false, no, 0}. Other values are not allowed.
Default value: false

SAPINST_STACK_XML     Path and name of the stack configuration file 'stack.xml' as described in SAP Note 1680045.
Value type: string
Default value:

SAPINST_STACK_XML_ACTIVE_SID    For unattended mode only: Contains the SAPSID of the active target system if working with a stack configuration file 'stack.xml'.
Value type: string
Default value:

SAPINST_START_GUI      If set to 'true', on Windows the default browser starts automatically with SL Common UI.
Value type: bool
Allowed values: true = {true, yes, 1}, false = {false, no, 0}. Other values are not allowed.
Default value: true

SAPINST_START_GUISERVER   If set to 'true', the SL Common UI server starts automatically. Alternatively, option '-noguiserver' can be used to turn off the SL Common UI server.
Value type: bool
Allowed values: true = {true, yes, 1}, false = {false, no, 0}. Other values are not allowed.
Default value: true

SAPINST_STOP_AFTER_DIALOG_PHASE       If set to 'true', the execution stops after processing all steps of the 'Define Parameters' phase. Used for generating parameter files only. If set to 'false', the 'Execute Service' phase is also performed.
Value type: bool
Allowed values: true = {true, yes, 1}, false = {false, no, 0}. Other values are not allowed.
Default value: false

SAPINST_TRACE_JSLIB   Switch to activate the JS trace functionality for specific JS classes. The values 'flow_trace' and 'Retry' activate the flow trace. Aliases: SAPINST_JSLIB_TRACE
Value type: string
Allowed values: comma separated list of JS classes or all
Default value:

SAPINST_TRACE_KERNEL         Determines the trace level of the kernel trace library   Aliases: SAPINST_MSLIB_TRACE
Value type: number
Allowed values: 0, 1, 2 or 3
Default value: 1

SAPINST_TRACE_RFC      If set to 'true', traces for RFC calls are written. CAUTION: This can cause passwords to appear in logfiles. Aliases: SAPINST_RFCLIB_TRACE
Value type: bool
Allowed values: true = {true, yes, 1}, false = {false, no, 0}. Other values are not allowed.
Default value: false

SAPINST_USE_HOSTNAME        The framework returns the value of that property if the getHostName() function is called. The value is not checked. For more information, see SAP Note 1564275.
Value type: string
Default value:


Selfextractor properties:
-sfxver:
  display selfextractor version information within a message box and ends.

-sfxverNB (Windows only):
  prints selfextractor version information without a message box and ends.

-noMessageBox (Windows only):
  Selfextractor errors are usually displayed within a message box.
  Using this parameters suppresses message boxes and errors are written to stdout only.

-exitOnError (Windows only):
  After a successful installation the selfextractor window is closed automatically.
  In case of an error the window stays open to show logging information.
  Setting this property will close selfextractor window automatically also in error case.

-extract [
]:
  unpacks SAPinst files to
or to current directory if is not specified.
  If
does not exist it is created.

* Example of property usage:
SAPINST_SKIP_DIALOGS=false

Return codes:
0   success
1   unknown exception
2   user decided to stop
3   iSeries specific initialization problem
4   framework error; contact SAP support (BC-INS-FWK)
5   incomplete service; contact SAP support (fitting subcomponent below BC-INS)
6   stop after dialog phase requested
7   unknown exception during step execution
8   problems creating support archive
9   problems in GUI subsystem; contact SAP support (BC-INS-FWK)
10  SLC could not be started in server mode because of missing encryption jars within the used JVM
11  executed step requested to "abort the installation"
12  terminated by a signal
13  service needs to display a dialog but no GUI is available; restart SAPinst with GUI.
14  executed step stopped service execution
15  problems concerning the SDT server's user (default 'sapsdt')
16  problems with loading of DLL modules (only for Windows)
17  framework error; see console output
18  reserved for framework issues ; not used at the moment
19  reserved for framework issues ; not used at the moment
20  reserved for framework issues ; not used at the moment
21 - 110  error code was defined by an exception thrown by an installation step
 // see message.xml
111 step execution ends with an error without specifying an return code via messages identifier
112 - 126 error code was defined by a exception thrown by an installation step
 // see message.xml

Monday, December 3, 2018

BW/4HANA: Custom ABAP code in transformations

In BW/4HANA there are some changes with respect to a usage of ABAP code in transformations. In classic BW there are areas called "1st and 2nd global declarations" (*$*$ begin of global ... *$*$ end of global) available where to place ABAP routines. Normally we can use both of the global declaration areas in the classic BW. It only makes a difference in case that the ABAP code shall be able to be reached globally in the transformation we go for 1st global area. The 2nd one is originally used for the transformations which are migrated from an update or transfer rules.

In the BW/4HANA only the first global area is respected. The 2nd global area is not supported by the BW/4HANA – it no longer exists. In reality there is just one global area – called global part but the global part is not supposed to be used, it is optional. All custom code shall be placed in the local part of the routine. The ABAP routine is a methods of a local ABAP class that consist of a predefined definition and an implementation area.

For existing transformations this also means that the transformation that uses 2nd global area won’t be displayed in the Eclipse - in the BW Modeling tools. SAP GUI will be opened instead. Then a manual migration needs to happed in the SAP GUI and code from 2nd global area must be moved to 1st global area in order to migrate such transformation to the BW/4HANA.

Another point is that existing custom ABAP code that shall in BW/4HANA must be ABAP OO compatible. Means statements that are non-compatible with ABAP OO coding needs to be removed and the code must be refactored to be the ABAP OO correct. Examples of non-compatible things can be: obsolete statements used in the code like internal tables with header, includes, etc. Again such transformations will be opened in SAP GUI to make required changes.

No need to mention that all this is only valid in case the transformation is being executed by ABAP runtime. This is to be selected in Runtime Properties of the transformation. Of course there can be routines in SAP HANA SQLScript in case the transformation is being executed by SAP HANA runtime.

More information:
2654109 - Conversion of ABAP/AMDP routines/exits in SAP BW/4HANA to the processing in Eclipse
2639435 - Transformations are opened in SAP GUI instead of in Eclipse
2462639 - BW4SL - Interfaces and Customer-Specific ABAP Development
ABAP Routines in Transformations

Sunday, December 2, 2018

BW/4HANA Simplifications (BW4SL)

- Last update 01Nov2023

One of strengths of BW for HANA aka BW/4HANA (BW/4, B4H, BW4) is simplification. This comes as something that can’t be seen (e.g. removal of approx. more than 5 million lines of ABAP SAP BW code) and also more visible changes that need to be adapted otherwise it will break BW systems once moved to BW/4 e.g.:

- changes to official interfaces (RSNDI, RSDRI)

- deletion of old/obsolete customer exits (CMOD) and BAdI methods for exit variables that are replaced by corresponding enhancement spots

- switch to new request management for all loading processes

- SAP HANA generated views are Calculation Views only (so called OneView model)

To get an overview of all “simplifications” that BW/4 comes with there see so called BW4SL notes available on SAP support site. At the time of writing this blog there were 66 SAP Notes like that. Each of the Note is dealing with particular BW functionality that was changed/simplified. Change is described also with possibilities how to dealt with it - like how to migrate/convert/adjust particular object. Below few examples of the Notes:

2444718 - BW4SL - MultiProviders

2443489 - BW4SL – InfoCubes

2479567 - BW4SL - Transformations

Central Note has number 2421930. All changes are also described in one central PDF document called Simplification List for SAP BW/4HANA:

Simplification List for SAP BW/4HANA 1.0

Simplification List for SAP BW/4HANA 2.0

SAP offers also interactive web page that provides a description of all changes having an impact when converting from SAP BW to SAP BW/4HANA called Simplification Item Catalog (SIC).

 

More information:

Simplification Item Catalog (SIC) -> launchpad.support.sap.com/#/sic

2421930 - Simplification List for SAP BW/4HANA

BW-B4H-CNV – SAP support site component

Online docu BW/4HANA 1.0

Online docu BW/4HANA 2.0

Conversion Guide for SAP BW/4HANA1.0

Conversion Guide for SAP BW/4HANA2.0

Conversion Guide for SAP BW/4HANA2021

Thursday, November 22, 2018

SAP HANA 2.0 express edition (HXE) administration - cheat sheet

I tried today an installation of HXE via preconfigured Virtual Machine image via VirtualBox.
I basically followed this video. Also there is a nice tutorial available with all the details.

For a reference I put here a brief reference of all the steps that are needed to make in order to setup the HXE. In case you are using preconfigured Virtual Machine there are few steps to be performed to configure HXE after importing of Open Virtual Appliance (OVA) file into hypervisor. 

I keep this mostly for me as a kind of cheat sheet :-)

1. first time logon:
user: hxeadm pwd: HXEHana1 (tmp pwd)
system prompts for the pwd change immediately

2. prompt for change of HANA DB master pwd

3. choose whether you use proxy server

4. wait till XSA config is done, this takes quite a significant time to complete, in my case approx. 40 min

5. find out IP address of the HXE server, by running command:
/sbin/ifconfig
-> e.g. 192.168.1.106

6. add the IP address to host OS into host file like:
192.168.1.106         hxehost

7. XS Engine check: open HANA console in browser: http://hxehost:8090
it shall show wheatear XS Engine is running correctly

8. URL of API endpoint enter command:
xs login -u XSA_ADMIN -p "hana master DB pwd" -s SAP
-> see API endpoint: https://hxehost:39030

9. webIDE install check, via command:
xs apps | grep webide
-> see URL: https://hxehost:53075          user: XSA_DEV        pwd: master DB pwd

10. cockpit install check, via command:
xs apps | grep cockpit-admin-web-app
-> see URL: https://hxehost:51047          user: XSA_ADMIN    pwd: master DB pwd

While you trying out all different URLs (webIDE, cockpit, etc.) make sure you open new incognito/private) session in your web browser. Else you will run into an authorization issues as there are supposed to be used different users (XSA_ADMIN, XSA_DEV) for different services.

11. check status of HANA processes, use command:
HDB info

12. stopping HXE, use command:
HDB stop

13. starting HXE again, use command:
HDB start

14. restart of HXE, use command:
HDB stop 
and
HDB start

or
HDB restart

15. switch off virtual machine, use command:
sudo shutdown now

16. see information about version of HXE, use command:
HDB version

17. see information about HXE, use command:
HDB info

16. connecting to HXE with HANA Studio (eclipse):
First install plugins aa a new software in eclipse Help menu to Eclipse from site https://tools.hana.ondemand.com/#hanatools -> e.g. https://tools.hana.ondemand.com/photon in case of Eclipse Photon version. Once plugins are present open new perspective called "SAP HANA Administrator Console". Choose "Add system" and enter info like: host name, instance number, single container, user and password. Afterwards the XSE system will appear in the Eclipse.

More information: