Hello web surfer,

welcome at my homepage.

The focus of this site is at individual software development. Furthermore to tools for software development, especially SAP Add-Ons and RPA extensions.
Welcome to all which are interested in my programs and topics.

Take the chance and write me an email.

Last change on November the 21st, 2020
This is a private website, all rights by Stefan Schnell.
picture of a tree

separator picture of a path

picture of stefan schnell
Allow me to introduce myself, my name is Stefan Schnell. I was born in Bremervörde in 1964 and grew up in Cuxhaven. After my school and professional education, as well as my community service, I studied at the University of Applied Sciences in Hanover. As a Mechanical Engineer I worked for eight years at Conti Tech, a subsidiary of Continental AG, in the automotive sector, first in Hannover and later in Eislingen. I changed to the LASER machine manufacturer Baublys, a subsidiary of Excel Technology, in Ludwigsburg. Two years later I went to Bonn to the AOK Systems, the IT service provider for statutory health insurance companies, where I worked as a Senior Software Engineer until October 2020, primarily with SAP environments. Now I am working as a Senior Systems Engineer at BWI in Meckenheim, the IT system house of the German Federal Armed Forces.
In addition to my pronounced interest in software developments for automation solutions, with special consideration of complex integration scenarios, my passion is capturing unusual perspectives with my camera – if time permits. I focus the seemingly unimpressive. Also I like to read literature of technical developments in the recent past and futurological visions.
picture of stefan schnell

UiPath Community Achievement Award

At the 18th of November 2020 I received the UiPath Community achievement award as a fastest adopter of the new Test Suite in test automation area.

image of uipath community achievement award

Presentations at the SAP Inside Track in Hannover

At the SAP Inside Track in Hanover (sitHVR) at Inwerken AG on 24th of February 2018 I presented different integration scenarios for the PowerShell scripting language in SAP. Based on realized use cases I showed the possible results of this combination. On 11th of May 2019 I presented further use cases, based on the presentation from last year. In particular, I showed examples of UI extensions and the use of Appium for mobile device automation, with the possibilities of connecting to a cloud device farm.

image of sap inside track 2018

SAP Community Moderator

On the 28th of January 2018 I was appointed to a community moderator of the UI SAP GUI for Windows section. The global SAP moderator team became aware of me through my blog posts and further activities in the area of SAP GUI Scripting in the SAP Community. The date of this nomination is almost exactly to the day of my 10-year membership in the SAP Community.

image of sap community moderator

image of letter of appreciation from sap

After almost 13 years I had to give up my user stefan.schnell because he was linked to an S-User. Now I have a public user (P-User) st.schnell. Since the 15th of June 2020 I have been using this user and the role of community moderator has been transferred to it.

image of sap community moderator

You can find my reputation snapshot here and here the summary of my activities.

summary of sap community user stefan.schnell

Appreciation of my Engagement in the SCN - SAP Topic Leader

As in 2015 I received on the 10th of June 2016 a certificate of appreciation from SAP to honor my engagement and my outstanding contributions in the area of scripting languages in the SAP Community Network (SCN). With the SCN Topic Leader competition the world's most active experts in specific topics of the SCN are exposed.

image of sap topicleader certificate

Honor for 25 Years of Membership in the VDI

As a university student in the first semester I joined the Association of German Engineers (VDI) in 1989. On 21st of March 2014 Mr. Dietrich, the chairman of the Middle Rhein District Association of the VDI, handed to me the Silver VDI Badge for 25 years of loyal membership in a gala at the Koblenz University of Applied Sciences.

image of vdi honour

separator picture of a water and stones



Java Development Kit
Installation: Extract SDK in target directory. Set JAVA_HOME variable to the jdk-subdirectory and add to the PATH variable %JAVA_HOME%\bin directory.

Java COM Bridge



Scripting Tracker

Scripting Tracker is a utility and a replacement to the SAP GUI Scripting Development Tools. It contains an GUI analyser, comparator and recorder on SAP GUI Scripting base, with an API viewer.

Jump to Scripting Tracker

separator picture of houses


RPA library to get important information
about SAP GUI for Windows customizing

This library delivers information about SAP GUI for Windows installation and its customizing. It is very important to know the details about the SAP GUI for Windows execution environment. Using this you can check whether the expected conditions are fulfilled, e.g. for an attended bot which needs access to a SAP system. It is possible that the user has disabled the SAP GUI Scripting in the options dialog of the SAP Logon. In this case, the bot will not run correctly. With the property IsScriptingInstalledAndEnabled you can easily check it. With this library it is also very easy to check if a SAP GUI for Windows exists and which version is available. Also it is possible to get more information, e.g. the customizing of the theming and the visualization, which is very important for UI based automation scenarios. The library contains the following possibilities:

  • SAP GUI Installation Info
    This checks if SAP GUI for Windows is installed. Also it delivers the installation directory, version and patch-level of SAP GUI for Windows.
  • SAP GUI Configuration Info
    This delivers information about SAP GUI configuration.
  • SAP GUI Logon Options Info
    This delivers information about SAP GUI Logon Options customizing.
  • SAP GUI Scripting Info
    This provides information about SAP GUI Scripting customizing.
  • SAP GUI Theming Info
    This delivers information about the selected theme of the SAP GUI for Windows.
  • SAP GUI Visualization Info
    This delivers information about the user individual SAP GUI visualization settings.
  • SAP GUI GuiXT Info
    This delivers information about GuiXT installation.
The library is available in three versions. One version is a NuGet package for UiPath, another version is a COM library for SAP Intelligent RPA and last but not least one version for dotNET.

Download of SAPGUIInfo.Activities.UiPath.zip (Version 1.07 from 03.07.2020 for UiPath)
sapguiinfo.activities.uipath.zip with the size of 168'455 bytes and the SHA256 CRC check sum dc00485398836d1e21f335b48488720114cb9287699fab75bc7547b66bd9256d
Download of SAPGUIInfo.COM.zip (Version 1.07 from 03.07.2020 for SAP Intelligent RPA or any other COM enabled language)
sapguiinfo.com.zip with the size of 151'701 bytes and the SHA256 CRC check sum 5110764222713a6d3de3d57ff7692e805c40c3e16ea8f8167432de02737036da
Download of SAPGUIInfo.dotNET.zip (Version 1.07 from 03.07.2020 for dotNET)
sapguiinfo.dotnet.zip with the size of 11'141 bytes and the SHA256 CRC check sum 0707de1a538683e941c869562e9e32362b2a124e6a22ccdad24189bdea07507a

Hint: You can find this library also at UiPath Connect.


Last update 08.11.2020 / Online since 08.09.2019


RPA library to execute ABAP code seamlessly

ABAP is the programming language in SAP environments. It offers powerful possibilities with its commands to handle and manipulate data on the SAP ERP backend system. This ABAPRunner activity offers the possibility to use ABAP code from different automation platforms. You can code your ABAP reports local and ABAPRunner transfers it to an SAP backend system and executes it. So you can use one automation process on several SAP systems and it is not necessary to provide all SAP systems with the reports beforehand. You can code once and run it anywhere. This is comparable to the same functionality in eCATT. The complete automation workflow is one unit and not distributed on different systems. This scenario is pirmarely used in test automation.

You can use ABAPRunner for the following tasks
  • Generating test data with all ABAP possiblities
  • Execution of non remote enabled function modules
  • Check data with SAP Open SQL statements
  • ...
Hint: This approach is only for development and testing environments.

Watch this video to see a simple example.

Download of ABAPRunner.Activities.UiPath.zip (Version 1.02 from 17.05.2020 for UiPath)
abaprunner.activities.uipath.zip with the size of 273'082 bytes and the SHA256 CRC check sum e7b4ec5a8f01600036d20e4d038fc24f750af812c6fc9fb70a97707c1acb7157
Download of ABAPRunner.COM.zip (Version 1.01 from 03.05.2020 for SAP Intelligent RPA or any other COM enabled language)
abaprunner.com.zip with the size of 155'469 bytes and the SHA256 CRC check sum d9b1935a51fdfeff198cc93582e2f4efe4fd7cec9d9d74b0029b930505691303
Download of ABAPRunner.dotNET.zip (Version 1.02 from 20.07.2020 for dotNET and Blue Prism)
abaprunner.dotnet.zip with the size of 352'358 bytes and the SHA256 CRC check sum a50ce01412315831dbabddc2fde89815dcd2ed6a4f47927374f3c95cad605f7a

Hint: You can find this library also at UiPath Connect.


Last update 08.11.2020 / Online since 09.04.2020


COM library to execute C#, VB.NET, JScript or PowerShell code seamlessly

This library offers the possibility to use C#, VB.NET, JScript or PowerShell code seamlessly in any COM enabled language. Consolidated dotNET code can easily be used on this way.

Download of dotNETRunner.COM.zip (Version 1.31 from 14.08.2020 for any COM enabled language like e.g. SAP Intelligent RPA, ABAP, VBA, VBScript or AutoIt)
dotnetrunner.com.zip with the size of 206'417 bytes and the SHA256 CRC check sum 32fe8b80ffce1f0c74cf445c54197ddafd9f85fc698a18e990937e89ef941e94
dotNETRunner_x64.dll with the size of 11'264 bytes and the SHA256 CRC check sum 31a956d5a7bc8dc0808fb4c090d55c6ed36446f0fac7bbe47fa1dbc8c511f2e3
dotNETRunner_x86.dll with the size of 11'776 bytes and the SHA256 CRC check sum dc7162b3c0997ab4c8e807cf27f0068acd4e0c3e3fc8a9ec359554aea8645937

Hint to COM Connector (CCo)
CCo is deprecated and the download is not longer available. As alternative you can use the SAP Connector for Microsoft .NET in combination with dotNETRunner. Use the NCo 3.0 compiled with .NET Framework 4.0.

Robin library to execute C#, VB.NET or JScript code seamlessly

This library offers the possibility to use C#, VB.NET or JScript code seamlessly in Robin, a programming language designed specifically for building RPA software bots.

Download of dotNETRunner.Robin.zip (Version 1.00 from 04.11.2020)
dotnetrunner.robin.zip with the size of 134'280 bytes and the SHA256 CRC check sum 29ca125670ee28774d569ee5bbc3be9411fa56f3f73e85974becba6fb308619d
Robin.Modules.dotNETRunner.dll with the size of 12'800 bytes and the SHA256 CRC check sum 2e7946d0bb1a5aceeda21d4c6ea9fd09d2ba1d634f82500f479423c9956ea4c2

Last update 04.11.2020 / Online since 23.09.2019


RPA library to extract RAR packaged files

With this library it is possible to handle RAR compressed archives with UiPath. You can extract all files, a group of files or a specific file to a destination directory of your choice. Furthermore you can test the files in the RAR archive or you can get a list of it. Ditto you can get the comment of the archive. This library contains the current version of UnRAR.dll, for x86 and x64 architecture, from RARLAB, this ensures that all versions of RAR archives are supported.

Download of UnRAR.Activities.zip (Version 1.05 from 08.11.2020 for UiPath)
unrar.activities.zip with the size of 435'068 bytes and the SHA256 CRC check sum 0fc4448206fb1118689b4ccf6787bda5238f6c97cb382a232e7fa42cabf1a2a2

Hint: You can find this library also at UiPath Connect.

Last update 08.11.2020 / Online since 19.01.2020

COMIn (Come in)
Component Object Model (COM) for Command Line Interface (CLI)

Approach to use CLI inside COM

With this approach it is possible to use command line interfaces (CLI) e.g. like PowerShell Core, AutoIt scripting language or Robin RPA language via COM. On this way you can seamlessly integrate CLIs into any COM enabled language, e.g. like VBScript, Visual Basic for Applications (VBA) in Microsoft Office environments or SAP ABAP.
The download contains examples for PowerShell Core, AutoIt and Robin. You can find a tiny documentation (only for Robin), the compiled COM libraries, a batch files for the registration, examples and the source codes for own adaptions.

Download of COMIn.zip (From 16.11.2020)
comin.zip with the size of 90'884 bytes and the SHA256 CRC check sum 2e33e72219f6639c128f8d2c257c77906b45f97f753542e0ddbb7156cdc6a492

Last update 16.11.2020 / Online since 08.11.2020


RPA library to handle the Component Object Model

Libraries which bases on the Component Object Model (COM), also called ActiveX, offers a lot of fantastic methods and properties, which we can use in the context of our automation workflow. Many are available at the Microsoft Windows operating system and as many at other sources. This COM activities offers the possibility to interact with this kind of libraries on the same way as in a programing language.

Download of InteractCOM.Activities.zip (Version 1.01 from 08.08.2020 for UiPath)
interactcom.activities.zip with the size of 392'256 bytes and the SHA256 CRC check sum 697f89d6879f66fa49106ae6cafe37c4379c6b77bf83c911cd28d132ce0fd350

Last update 08.08.2020 / Online since 05.10.2019

Background Light

Server Application for SAP,
to use COM and OS functions without SAP GUI for Windows
and with ABAP background processes.

Background Light is an ABAP to COM bridge and a replacement for the CL_GUI_FRONTEND_SERVICES class. It allows to use COM libraries and a lot of OS functions without SAP GUI for Windows and therewith in ABAP background processes or with ABAP in Eclipse.
If you execute an ABAP program with the SAP GUI for Windows you can use COM calls and OS functions very easily. But, if you execute the same program e.g. as background process, COM and OS function calls does not work. It is not possible to use it without SAP GUI for Windows, because there is no communication between application and presentation server in this case.
But Background Light, as an SAP server program, offers these possibilities. It is a bridge from your ABAP program to any COM library and a lot of OS functions. After the registering of Background Light in the SAP system of your choice and the start of the server program on your presentation server you can use COM and OS function calls in fore- and background processes with the same code and on each platform.
All accesses to the presentation server are visible. You can see any access full qualified and in detail. If you want you can set Background Light in a single step mode. In this case you can decide whether access you allow. There is no security risk to run Background Light.

background light

Use Case
To code in ABAP language I use in a normal case the ABAP Development Tools (ADT) with ABAP in Eclipse (AiE). Also I use ABAP Unit to test the methods of the classes. This environment offers no possibility to use COM or OS functions. Here I use Background Light e.g. to input data or to export tables as CSV files.

Scope of Functions
Background Light offers a lot of function for COM, file, directory or clipboard operations and also a set of miscellaneous functions, e.g. like RequestInput or MsgBox.

Download of BLight.zip (Version 1.24 from 06.05.2020)
blight.zip with the size of 1'234'929 bytes and the SHA256 CRC check sum 29f17f83447ec4f519f9625a4cd6339c6f78e2d4d2b632ba8d10dc0326920bb6
BLight.exe (x64) with the size of 395'264 bytes and the SHA256 CRC check sum 3550e3f5cdb16b632bc419643d13fd8703a86ef0f84c1ad9746689c38e96d90a
BLight.exe (x86) with the size of 298'496 bytes and the SHA256 CRC check sum ef23d17af4a64b889ff643b595230863fd2e1c1e9d28a5cbf42d3d38c56c810e

The zip file contains:
x64  —  Directory with 64-bit version
   BLight.exe  —  64-bit native Windows application
   Scintilla.dll  —  Additional 64-bit library for Background Light
   BLight.cmd  —  Batch file to start Background Light
x86  —  Directory with 32-bit version
   BLight.exe  —  32-bit native Windows application
   Scintilla.dll  —  Additional 32-bit library for Background Light
   BLight.cmd  —  Batch file to start Background Light
BLight.pdf  —  Documentation of Background Light

Last update 06.05.2020 / Online since 16.05.2015

Output catch for ABAP

Output catch is a small SAP server program to catch text output from an ABAP program. Start the program, fill the connection parameters, register the functions and use one of the output or log variants in your ABAP program to catch your specific text, e.g. to monitor parameters of an interface. You can send text or messages direct to the editor of output catch, to a specific log file on the client, to a Windows debugger or to the Windows event protocol of the client.

abap output catch
With the following download you get an executable file to catch output text from an ABAP development object and view it.

Download of ABAPOutputCatch (Version 1.04 from 03.03.2018)
ABAPOutputCatch.zip with the size of 1'001'540 bytes and the SHA256 CRC check sum 58d125e58b0c103e5c5ef6ce9c8da8ebfc35519adcfcd395ee0bed31d121a49f
ABAPOutputCatch.exe (x64) with the size of 423'936 bytes and the SHA256 CRC check sum fbf040ca41492ebba72ed592cd528b1c7038efbb6b41052f31b2d72dc854b8b3
ABAPOutputCatch.exe (x86) with the size of 302'080 bytes and the SHA256 CRC check sum e17fbd4e135de3b9441b3c8c09b5c1f75f661f79113ea33e417dc57770b39d25

The zip file contains:
x64  —  Directory with 64-bit version
   ABAPOutputCatch.exe  —  64-bit native Windows application
   Scintilla.dll  —  64-bit native Windows editor library
x86  —  Directory with 32-bit version
   ABAPOutputCatch.exe  —  32-bit native Windows application
   Scintilla.dll  —  32-bit native Windows editor library
ABAPOutputCatch.pdf  —  Help file for ABAPOutputCatch

abap output catch
abap output catch

Last update 06.05.2020 / Online since 29.12.2013

Binary File to ABAP

Many information is stored in different files with different formats. This information is often important for the customer and there is the question, how to transport this to a customer.
BinFile2ABAP is an ABAP, JSON and PowerShell code generator which offers this possibility. With BinFile2ABAP you can store each file in an ABAP function module, report, form, as JSON or PowerShell file. This means, it converts the file to an ABAP source code, to a JSON base64 encoded file or to a PowerShell file.
With the call of the ABAP code the file is set to an export interface or saved on the presentation server. In this case you can executed it on the presentation server e.g. in synchronous mode and the file can be deleted after the execution. Also BinFile2ABAP supports the SAP MIME-Repository.
BinFile2ABAP can also create base64 encoded JSON and PowerShell files from any file too. You can use this JSON file in the context of your SAPUI5 development, e.g. to simulate backend databinding, via OData and the SAP Gateway, as local databinding.
With this kind of information you can extend your possibilities. You can integrate each type of file you want in your ABAP, SAPUI5 or PowerShell code, e.g. Portable Document Format (PDF), Compiled HTML Help (CHM), all image, sound and video formats etc.

binary file to abap
Download of BinFile2ABAP (version 2.08 from 24.05.2020)
BinFile2ABAP.zip: 580'833 Bytes with SHA256 CRC check sum: 052cdaa557b347c8b658bf4a4aa9dfb4a2f570ad49a506e813ca01fc5cbfdf07
BinFile2ABAP.exe (x64): 156'672 Bytes with SHA256 CRC check sum: 3755645d567579178481b278f4e71ab69789484d3cd51d41f3dd5e87e0299502
BinFile2ABAP.exe (x86): 114'176 Bytes with SHA256 CRC check sum: dc2863a5aadeda8746035bd67a619c45bd658aefa070d0dd8b5660e0d9a4c0f3

The zip file contains:
x64  —  Directory with 64-bit version
   BinFile2ABAP.exe  —  64-bit native Windows application
   Scintilla.dll  —  64-bit native Windows editor library
x64  —  Directory with 86-bit version
   BinFile2ABAP.exe  —  32-bit native Windows application
   Scintilla.dll  —  32-bit native Windows editor library

Last update 24.05.2020 / Online since 07.10.2012


The picture to XML program is a converter which transforms picture files into XML spreadsheet format. So it is possible to load a picture as a real table in a spreadsheet program like Microsoft Excel or Apache OpenOffice Calc.
The converter is a console application and supports the picture formats JPG, PNG, BMP and TIF. The maximal size of a picture could be 1000 pixel width and 1000 pixel height. This size limit is necessary, because otherwise the size of the XML file is to big and it is for the spreadsheet programs not possible to load these file.
I developed this program in the context of my activities with abap2xlsx. To present the progress of the abap2xlsx implementation in our company I need some eye-catcher. So I searched around and one of the results was Excel Art. I am impressed about the idea to create pictures in a spreadsheet program. But I am no art-ist, so the idea for a converter was born. By the way, the colleagues are also impressed about Excel Art.
Pic2XML is a fun program, it has not really a business context - only to surprise and impress your colleagues.

snapshot of excel with an image as table
pic2xml.zip: 719'980 Bytes with SHA256 CRC check sum: 583550679e36ddfbeb4d0d0349b29cbcb33e0805de6c735dfd5ad0f642d1e525
pic2xml_x64.exe: 904'704 Bytes with SHA256 CRC check sum: c41765536ead5b323bc3a68d472ba6b26c3179fa7c9e8f177cabe4d396d9fe23
pic2xml_x86.exe: 763'904 Bytes with SHA256 CRC check sum: 8bc6ff87130ec9eb12f6b6dae1e7532531370a5b0988795b36d9dd52586f90be

Last update 03.06.2020 / Online since 09.09.2018

separator picture of a water and stones

ABAP    .NET    PowerShell    RPA    Python    Miscellaneous

My Knowledge Collection

SAP UI Automation

VBA Code Snippet to Detect Information about SAP GUI Elements

In a few cases it is in business context not allowed to install additional analyze software or tools. So applications that are permissible and available must be used, e.g. like Microsoft Office applications. This makes things a bit more laborious, but not impossible. Here a Visual Basic for Application (VBA) example to detect a few information of the UI Elements of a session of the SAP GUI for Windows with SAP GUI Scripting. The result is written into a Microsoft Excel table.

microsoft excel application with sap gui scripting information
With the access to this kind of information you can detect what you need, e.g. like ID, text, type, name or position, size, etc. On this way you can e.g. easily compare two versions of an UI, to find the differences. With the filter options in Excel the desired information can then be found very quickly. Here the corresponding post in the SAP Community. Here the source code of the modul class with a type definition and here the source code of the sheet.

Web UI Automation

10.06.2017 / 21.11.2020
More and more desktop applications are being replaced by web applications. Selenium is recommended for this kind of automation approaches. To use it you need the WebDriver language bindings and a web driver for the browser. Of course, this depends on the browser used. After obtaining the necessary components, a simple test can be carried out using this Java sample program.

Mobile Device Automation

06.05.2018 / 26.07.2020

Native Windows Application Automation


  • Windows Application Driver
    Hint: To use this driver you need the Appium client libraries. These are the same as mobile device automation above.

Check the Existence of an SAP GUI Scripting Object Without Exception

Different SAP environments are not always identical. So it is possible that an GUI object is available in one environment, but not in another. Here a method how to check the existence of a GUI object. In a normal case, if an object not exists, you get an exception error in a messagebox and the script terminates immediately. With this method you can choose whether the script terminate or not. I think this method is a way to make scripting more robust for the work in different environments.
A sub procedure C checks the existence. It gets the SAP GUI Scripting command as string parameter and delivers it to the method Exe of the Check class. This method calls the method FindById and if it doesn't find an object, an exception is thrown. Now the class was destroyed and the destructor calls the method ErrCatch. This method opens a messagebox and sets a global flag. If the flag is set, with a positive answer of the messagebox, the script terminate immediately or runs again with a negative answer. The example code checks the objects of the logon screen.

Access to SAP via ActiveX control

17.08.2012 / 17.11.2013
With the installation of SAP GUI for Windows on the presentation server you get also some ActiveX controls to connect and to communicate with an SAP system. You can use these ActiveX controls easily inside Visual Basic Script and therefore inside of an HTML application - but only with Microsoft Internet Explorer. It is possible to build a HTML GUI and use it with data from an SAP system. Inside the HTML there is a VBScript functionality necessary, which gets the data from the SAP system and uses the Document Object Model (DOM).
With this source code you can view any SAP table content as HTML table. It shows an easy GUI, with only one the connection parameters, an input field for a SAP table name and a button to view the table content in the HTML table.
Important hint:Do not use ActiveX controls furthermore, they are deprecated.

How to read any table with SAP GUI Scripting and write it to a CSV file

You can do a lot of things with SAP GUI Scripting. Beside the simulation of user inputs you can automize a lot of other stuff. But therefore it is necessary to mix the possibilities e.g. with Visual Basic Scripting. In this source code shows how to read any SAP table from the ALV-Grid of the transaction code SE16 record by record and write it in a text file. The delimiter between each field is a semicolon.
If you want to process the records of the table inside your Visual Basic Scripting code, it is not in any case a benefit to work with a file. This source shows a way to read a table in an array - not a file.
With this examples it is very easy to export any table from SAP and import the data e.g. in Microsoft Excel to analyze or process it.

My collection of posts

23.08.2020 / 08.10.2020

ABAP code snippets

Import CSV file into table

In a few cases it is necessary to transfer table data from one system to another. Here a report how to import table data from a csv file in an SAP system. To export table data you can use transaction code SE16. This method doesn't work with a table which contains RAW data fields.

input mask of the zimportcsv report

Reset Passwords of SAP Standard Users in Different Clients

In a normal case you configure the SAP standard users like SAP* or DDIC once when you install the application server. But later, month ago, it could be possible that you forget the passwords of the standard users in the different clients of the application server. Here a program to set or copy the passwords of the standard users in the client 000 from client 001.

Examples of ActiveX Library Integration in ABAP

With ABAP it is possible to use ActiveX applications on the presentation server. Now a few examples to show some possibilities.

  • How to use SAP GUI Scripting inside ABAP
    04.12.2011 / 22.07.2016
    In current versions from SAP for Windows the security options don't allow the using of SAP GUI Scripting inside ABAP. Disable this security rules to try the source. This source shows the possibility to use SAP GUI Scripting inside ABAP

  • Easy Way of ABAP ActiveX Connectivity

  • How to use Visual Basic Script
    It is also possible to use Microsoft Visual Basic Script inside ABAP. This means you can execute scripts direct from ABAP. Here a source to execute VBScript from ABAP and here an alternative source to execute VBScript from ABAP.

  • How to use Google translate
    With the Microsoft Internet Explorer it is possible to call web sites via COM. In the following code we call Google translate and send a text to translate it and get the result back. It translate from German to English language. Here the ABAP source to call Google translate.
    This program bases on a VBA code snippet from Jean Pierre Allain, thanks to Jean Pierre.

  • How to use Microsoft Word spell and grammar checker
    The Microsoft Office applications are a quasi standard, installed on most of the business computers and it can be use via OLE. Now it is a small step to use the functionalities of the Office applications also in ABAP. In the following code we look at the spelling and grammar checker of Microsoft Word. You get any text you want from ABAP to Word, check it and it is returned in a corrected form. Here the ABAP source to use Words spell and grammar checker.

  • How to call a Windows CHM help file with ABAP
    With this ABAP code it is possible to call each CHM help file on the presentation server and control them. You can switch between the tabs, open the content you want and close the file. Here the ABAP source to use CHM help files.

  • How to control a client with AutoItX from SAP ABAP
    It is very easy to control a client system from SAP ABAP with AutoIt. Do not forget to register AutoItX on the client system via regsvr32.exe AutoItX.dll. Now you can use AutoIt from ABAP, look at the simple example, it calls notepad and type a text in it:

    Data: AutoIt Type OLE2_OBJECT,
          pid Type i.
    Create Object AutoIt 'AutoItX3.Control'.
    Call Method Of AutoIt 'Run' = pid
      Exporting #1 = 'notepad.exe'.
    Call Method Of AutoIt 'WinWaitActive'
      Exporting #1 = 'Unbenannt - Editor'.
    Call Method Of AutoIt 'Send'
      Exporting #1 = 'Hello from ABAP'.
    Free Object AutoIt.

Use DLL calls in ABAP

It is not ordinary but very easy to use DLL calls in ABAP or script languages, e.g. VBScript. Yuri Popov programmed a module, called DynamicWrapperX. It is an ActiveX component, which allow to call each function in a DLL you want via COM. A great module. Here the module DynamicWrapperX.
Thanks to Yuri Popov for this module.
The library offers a lot of functions but I miss the possibility to set a string on an address. So I programmed a small extension library to do it. The library contains only one function, with the name StrPut. Here the DynamicWrapperX extension.

  • How to call Windows API OutputDebugString with ABAP
    To view ABAP debug output on the presentation server you can use the Windows API function OutputDebugString. zDebug is an example, it is a small collection of ABAP procedures or classes to use an external debugger, e.g. like DebugView from Microsoft TechNet, to catch the debug output. Here the ABAP source to use Windows API debug functions.
    Important hint: These procedures only works with foreground jobs and online processes. They does not work with background jobs and batch processes.

  • How to call each DLL function in ABAP
    With this module you can use DLL calls in ABAP, the SAP programming language, very easy too.
    And it is necessary to register DynamicWrapperX on the presentation server too, with regsvr32.exe dynwrapx.dll.
    Look at the following example:

      IDYes Type i Value 6,
      IDNo Type i Value 7.
      Win32 Type OLE2_OBJECT,
      ret Type i.
    Create Object Win32 'DynamicWrapperX'.
    Call Method Of Win32 'Register'
        #1 = 'user32.dll'
        #2 = 'MessageBoxW'
        #3 = 'i=hwwu'
        #4 = 'r=l'.
    Call Method Of Win32 'MessageBoxW' = ret
        #1 = 0
        #2 = 'Hello World'
        #3 = 'Test'
        #4 = 4.
    If ret = IDYes.
      Write 'Ja'.
    ElseIf ret = IDNo.
      Write 'Nein'.
      Write '?'.
    Free Object Win32.
    Important hint: This method works only with foreground jobs and online processes. It works not with background jobs and batch processes.

    See also my thread in the SCN.

RFC Read Table in JSON Format

More and more is JSON (JavaScript Object Notation) the standard in data exchange. I extend the remote enabled function module RFC_READ_TABLE to deliver SAP table data also in JSON format. Here the extended function module of RFC_READ_TABLE with the possibility to export the content in JSON format. Here the corresponding post in the SAP Community.

My collection of posts

21.01.2017 / 08.10.2020

Hints for miniSAP

Datenbankablage für ArchiveLink einrichten

Hier der Beitrag Nutzung von ArchiveLink mit miniSAP und der Quellcode zur Nutzung von ArchiveLink mit miniSAP.



How to use UnRAR library with PowerShell

RAR is a very good archive format to compress any type of files in archives. RARLAB offers a free library to unpack those kind of archive files. You can find the UnRAR library here. It is very easy possible to use this library with PowerShell. Therefore you need the definitions of constants, structures und functions as C# code. This code is read as here-string from a file, here the C# code. The following example script contains a function with the name UnpackRAR with the parameters filename and destination path. It reads the C# definition and sets, if necessary, a definition to decide which version (x86 or x64) of the library should be used. It opens the archive and extracts all contained files in the destination path. Here the PowerShell script example how to use the UnRAR library. On this way it is very easy now to extract RAR compressed archives with PowerShell.

How to use any scripting language with PowerShell

PowerShell script offers the possibility to start any scripting language interpreter with additional arguments and to catch the result. The following examples shows Python and AutoIt, try it with .\CallScriptFromPS.ps1 """Hello World""". Here the PowerShell script to call any scripting language interpreter.
Here the Python example script. and here the AutoIt example script.

PowerShell calls script interpreter

How to use VB.NET via PowerShell inside Java

Here an example how to use VB.NET inside Java, equivalent to the ABAP example. The VB code is in an external file in a project directory from Eclipse.
Look at the source here.

PowerShell with Java
Java code in Eclipse

PowerShell with Java
VB.NET code in Eclipse

How to use PowerShell Inside Java

I use JaCoB (Java COM Bridge) with SAPIEN Technologies ActiveX PowerShell library. On this way it is possible to use PowerShell; seamless and easily inside Java. With regard to the Eclipse IDE this may be an interesting aspect - but I must admit a little bit exotic.
Look at the source here.

PowerShell with Java

How to use SQLite ODBC with PowerShell

Here is an approach how to use SQLite databases with PowerShell script language via an ODBC driver. On this way we have the possibility to export tables from an SAP system into a SQLite container, to use it from the backend via ABAP and also to use it from the frontend via PowerShell. It should be also considered that SQLite is available for Android, Linux, Mac OS X and different Windows platforms e.g. like Windows Phone. So we can exchange static data or data without permanent changes easily.
Look at the source here.

My collection of posts

25.12.2016 / 19.01.2020
Here a collection of interesting links from different perspectives for using Microsoft PowerShell with SAP:


21.10.2016 / 23.09.2020

Robotic Process Automation (RPA)

Combine PowerShell with UiPath

25.12.2018 / 27.09.2020
To combine PowerShell with UiPath we use a tiny test script which needs a parameter and delivers the result of a message box as string.



#-Sub Main--------------------------------------------------------------
Function Main {
  Add-Type -AssemblyName System.Windows.Forms;
  [String]$Result = [System.Windows.Forms.MessageBox]::Show("Hello $($UserName)", `
    "Hello", [System.Windows.Forms.MessageBoxButtons]::OKCancel);


Now the integration of this PowerShell script into a UiPath sequence. Here is one way to read the PowerShell script as text file into a UiPath variable. This variable is the command text for the UiPath activity Invoke PowerShell. It is necessary to set the IsScript flag of the PowerShell Invoke activity in this case. The parameter for the script must be defined also as parameter for the activity, with the same name. Set the TypeArgument property to string and the result of the script will be a collection of strings too, which are stored in the variable Result. With the Write Line activity this result is shown in the output window of UiPath. Here the workflow file of UiPath. On this way it is possible to combine PowerShell in UiPath seamlessly and to communicate directly from UiPath with the PowerShell script and vice versa.

uipath sequence to combine powershell
uipath sequence to combine powershell
On the other way it is also possible to call the PowerShell script directly, with its full file name, include the path. In this case it is necessary to disable the IsScript flag in the properties.

uipath sequence to combine powershell

Combine Python with UiPath

04.08.2019 / 27.09.2020
To combine Python with UiPath we use a tiny test script which needs a path as parameter, as target to store a file, and delivers a string.


import os

#-Function test---------------------------------------------------------
def test(scriptpath):
  text_file = open(scriptpath + "\\Output.txt", "w")
  text_file.write("Hello World")
  return "Hello World"

I tried this test with Python 3.6.8 x86 and x64 version. At first it is necessary to install UiPath Python package via Manage Packages.

uipath python activity pack
Important hint: UiPath differs between the Python versions. It is necessary to install a supported version, otherwise a load script error occures.

uipath supported python versions
After that we define a tiny sequence with a few variables.

uipath sequence to combine python
uipath variables for python
Here now the properties of the activities.

uipath properties for load python script
uipath properties for invoke python method
uipath properties for get python object

Orchestration Changes

Since the release 20.8.0 are some changings in the Orchestrator settings to install the Community Edition. It is necessary to activate in the Users section the switch "Automatically create an attended robot for this user" and to choose "License Type Studio". Also it is necessary in the Settings section to activate the option "Allow both user authentication and robot key authentication". uipath orchestrator settings

uipath orchestrator settings

My collection of posts

26.12.2018 / 16.10.2020
Here a collection of interesting links from different perspectives for using UiPath: Here a collection of interesting links from different perspectives for using SAP Intelligent RPA:


25.12.2018 / 08.10.2020


SAP Developer News

The January issue of the SAP developer newsletter "debug and deploy" contains a reference to my blog post How to use Python Seamlessly Inside ABAP in the SAP Community.

sap newsletter debug and deploy from january 2018

My collection of posts

23.09.2017 / 03.05.2019
Here a collection of interesting links from different perspectives for using Python:


23.09.2017 / 03.05.2019

Helpful Hints for Microsoft Windows

01.08.2008 / 03.01.2020

How to find drivers and updates for Windows

Microsoft offers a very good database to find hardware drivers and update packages.
Also you can use the Windows 10 Update history.

How to update Windows Defender without online connection

It very easy to update Windows Defender, the actual security program in Windows, without an online connection. Use the link to microsoft.com and download the correct file. Execute the file, e.g. mpam-feX64.exe, from the Explorer with administration rights. Now the Defender is up to date.

OLE experience

OLEView is an OLE/COM viewer from Microsoft and a part of the Windows SDK. It is possible with a simple mouse click to view the type library of the COM library with this tool in IDL (Interface Definition Language). But something is to notice: You must use a version number for the COM library 1.0 and higher. If you use a version number 0.x, it is not possible to view the interface - you get an error. The COM library works with a version number 0.x perfect, but OLEView can not read the interface and store the IDL file. The COM viewer, also from Microsoft, shows the interface without any problems.

Microsoft Word Document Templates

The Word document files have the extension doc. But Word knows also other formats, e.g. the document templates, with the extension dot. Dot files are not the same as doc files.
Here a few different procedures to handle these kind of files:
  • If the document templates are to be changed, they must never be opened with a double click. e.g. from the desktop or via Windows Explorer. With this type of opening, mechanisms are started in Word and the file is handled differently. Dot files that are to be changed must always be opened via an open Word instance and the menu item File > Open.
  • The standard start mechanisms are replaced by the AutoNew event, when opened this kind of file with a double click. E.g. DocumentOpen etc. only works when opened via the menu item File > Open. Programs which are to be executed when document templates are opened are to be assigned to the AutoNew event.

Tips for Technical Documentation

Explore CHM Files and Get the HTML Files

10.12.2008 / 02.01.2010
The 7-Zip packer offers the possibility to open CHM files and to get the HTML files.
With the HTML Help File Explorer from Paul A. O’Rear it is possible to analyze the content of CHM files. In a tree structure all integrated files are viewed. With Display you can view the rendered file and with TextView the source code. You can find the HTML Help File Explorer tool here.

How to Save Information from HLP file in the Post XP World

Microsoft stops the support for the HLP help files with Vista. HLP is a (very) old format, it exists since Windows 3. It bases on the Rich Text Format (RTF). The official format since Windows 98 is the CHM format, which bases on Hyper Text Markup Language (HTML). At the moment the actual format is HxS, which bases on eXtended Markup Language (XML).
We have a lot of information store in HLP files. What can we do to save the information from the HLP files in the post XP world? It is very easy to do that.
At first you must get all your source files from the HLP files, e.g. RTF, BMP, SHG etc. But the first problem is: where are the files? Often we have only the HLP file, but not all sources. No problem, if you have the HLP file, you have all what you need. Now you need a decompiler, which extracts all files from the HLP file. You can load a very good decompiler call HELPDECO. It is a command line tool: open a console window, type HELPDECO MYHELP.HLP and a few seconds later you have all your source files.
The next step is to load and install the HTML Help SDK from Microsoft. Create a new project to convert an existing HLP file. Choose your project and a few seconds later the HLP project is converted to a CHM project. Now compile the project and you get your HLP content in CHM format. My experience is, after a conversion, that you loose a lot of format information but all links work well.

UPX and/or Molebox compression and protection fires virus scanner phobia

It is a normal day, the sun is shining, I feel good and put my memory stick in a strange computer. Suddenly, the virus scanner gives alarm. He detects, that one of my programs is infected with a trojan. Mhmm, I programmed and compiled it and the virus scanner of my system means, it is all okay. Now I look a little bit nearer and analyze this situation:
  • 1. Step: I send my program to www.virustotal.com and it gives me a report back. Several virus scanners found different viruses and trojans and mean my program is suspicious.
  • 2. Step: I wrote a very easy program and compiled it and sent it to www.virustotal.com again. I was surprised about the result. One virus scanner gave alarm (see the results).
  • 3. Step: Then I compressed the program with UPX and sent it to www.virustotal.com again. Now I was more surprised, three virus scanners found different viruses, and the virus scanner from the second step not (see the results).
  • 4. Step: Then I protected the programs with Molebox and sent it to www.virustool.com and checked it again. It came what I expected: more different viruses and trojans (see the results).
Okay, what is the result of this test:
Virus scanners are necessary, nothing more to say, but if the phobia of the scanner makes users feel insecure, it goes to far. To use security mechanism in our programs is also necessary and allowed. But the scan technic of the virus scanner uses the same mechanism as a virus or trojan and our programs protect against "scan attack". So the virus scanner thinks, oh, it defends my "scan attack", it is suspicious and brands the program. The user thinks, oho, it is a virus or trojan in the program and deletes it, great.
What can we do?
  • Check each program with www.virustotal.com and inform the user about the results.
  • Create for each program a checksum e.g. MD5 and publish it with the link and with the file.
Thanks to the UPX team for the great program.
Thanks to the Molebox team for the great tool.
Thanks to Virustotal for the great scan service.
Look at: Virus scanning test results, Adobe Reader expected.

More information:
McAfee Support Community

separator picture of a water and stones

separator picture of a water and stones