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)

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. 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