HTTP/2 support for SAP FIORI

HTTP/2 is the successor of the HTTP 1.1 protocol. It has some performance advantages. The main advantages are the capability of multiplexing and server push. The HTTP/2 protocol was designed for faster page loading even when having longer latency times.

Questions that will be answered in this blog are:

  • Where can I find more background on the HTTP/2 protocol?
  • Are there any pitfalls and prerequisites?
  • How do I switch on the HTTP/2 protocol on my FIORI server?

More background on HTTP/2

More background on HTTP/2 as protocol can be found on wikipedia or on this link from google.

Prerequisites for HTTP/2 protocol

The prerequisite for support of the HTTP/2 protocol for FIORI and other ABAP web applications is a sufficiently high version of the ABAP stack and webdispatcher (if in use): NetWeaver Gateway version 7.51 or higher, Web Dispatcher 7.49 or higher. The HTTP/2 protocol also has higher security requirements and does require COMMONCRYPTOLIB version 8.4.31 or higher.

How to switch on HTTP/2 protocol support?

In the ABAP system parameters RZ11 switch the parameters icm/HTTP/support_http2 to value TRUE. This can be done dynamically. In Google chrome developer tools the UI developer can see the usage of HTTP/2 protocol (on http call right click on the call to show the Protocol field as well).

If you are using web dispatcher set parameter icm/HTTP/support_http2 to value TRUE as well as wdisp/support_http2_to_backend to TRUE.

Kernel patch

The HTTP/2 protocol implementation is done on kernel level. If you want to switch on the HTTP/2 protocol on your systems, do check the OSS notes with the keyword icm/HTTP/support_http2. You might see there are a few kernel patch OSS notes (using component BC-CST-IC) that solve issues in your area that you use. In case of issues in a productive system with HTTP/2: switch the value of icm/HTTP/support_http2 back to FALSE.

Background information

More background information: SAP blog and this SAP blog.

More on FIORI performance

More tips on FIORI performance can be read in this blog.

HANA XS

For HANA XS check OSS note 3086998 – HTTP/2 Support in SAP HANA Extended Application Services.

SAP GUI Scripting

Diverse tools use SAP GUI scripting: test tools to perform regression testing, load testing, solution manager CBTA, etc. Also robotizing tools often use GUI scripting.

Questions that will be answered in this blog are:

  • How to enable GUI scripting in the SAP system?
  • How to make sure only the allowed users run GUI scripting?
  • How can I record an SAP GUI script and execute a playback of the recorded script?

Server side enabling GUI scripting

First you need to allow GUI scripting on the server side. This can be done by setting system parameter sapgui/user_scripting to the value TRUE. This is done in transaction RZ11.

Client side enabling GUI scripting

In your SAP gui, goto the options. In the Accessibility & Scripting part, enable the scripting.

At the top part you can see the installation status of scripting tools from SAP itself.

Securing scripting

If you want to securely control which user is allowed to use and execute scripting, you have to set the system parameter sapgui/user_scripting to TRUE. Now any user who is having the authorization object S_SCR is allowed to perform scripting. User who lack the authorization object will cannot run the script.

More information can be found in OSS note 983990 – SAP GUI Scripting security: Enable Scripting per system user. And OSS note 2565390 – SAP GUI Scripting: Changed behavior for combination of profile parameters sapgui/user_scripting_set_readonly and sapgui/user_scripting_per_user.

Security guide for SAP GUI scripting can be found in this link.

Recording and playing an SAP GUI script

You can record a script by going to the button Customize Layout and selecting the option Script Recording and Playback..:

Now the GUI scripting record and playback tool opens:

By pressing record, you can start recording a script. When you are done stop it and save it. You can playback a script with the play button.

Sample applications can be found in OSS note 1441550 – SAP GUI scripting: Sample applications.

More background information

More information can be found in OSS note 2296251 – How can SAP GUI Scripting be enabled?. And 2811334 – Prerequisites to record a SAP Gui Script.

Restrictions of SAP GUI scripting are listed in OSS note 587202 – Restrictions when using SAP GUI Scripting.

Note search for messages

If you are in an SAP transaction and you are confronted with a strange error message, you would like to know if there are OSS notes for this message you are having.

As example we take a message in ME21N transaction. If you have the error, double click on the error message for the details:

Now press the SAP Notes/Search KBA button highlighted in the screen shot above. The system will now search in OSS notes for this specific message and situation. Since our case is simple we get a nothing found message:

More background on this tool: see OSS note 2096401 – FAQs: Performance Assistant – SAP Notes and KBAs search by PANKS.

SAP message server

System parameter rdisp/msserv_internal is used to set the internal message server port.

You can monitor the message server via transaction SMMS:

Here can see the internal communication port (3901 in this case) as well.

From the menu all the needed tools can be started.

Bug notes

Bug notes:

Debug batch programs

This blog will explain how to debug a background batch program with real background mode (SY-BATCH is X).

Questions that will be answered are:

  • How to debug a running job?
  • How to debug a completed job?

Starting the debug mode for batch job

First we plan a single run of the batch job. In our example we run program RSWAITSEC which does nothing more than wait.

In SM37 show the job run:

Select the job and in the command line enter the background debug command JDBG:

Now the debugger starts first in the batch job part. Hit F7 a few time (F7 = jump back out of routine) until you reach the real program:

As you can see here the SY-BATCH variable is X, which means you are debugging with real background mode on.

SM50 background debugging

If you want to debug a running job, you have to goto SM50 and select the background process. Then choose the menu option Administration / Program / Debugging. Confirm the prompt:

Wait until the running SQL statement has completed and debug mode will start.

Please be very careful with this kind of debugging in a productive system. If you cancel the debug session there might be a rollback work statement triggered, which can cause database inconsistencies.

Reference notes

573128 – Debugging programs in the background