Preface
Not so long ago I discovered the "GET_SCREENSHOT" method of class "CL_GUI_FRONTEND_SERVICES"
. The method creates an image of your current SAP GUI window in the "Portable Network Graphics" format (shortly called "PNG").
My first thought was: "Great, useful for support teams." Second thought was: "Support teams would need more information such as transaction code or report name." Third thought was: "Would it be really necessary to have these information in an extra (text) file?" I did a little research and found a workable solution in the PNG format itself.
This blog is about my implementation to demonstrate the mentioned solution. Please use it as starting point for your own research and share your ideas and thoughts about if you want.
Required ressources
- SAP Netweaver stack (I used SAP Netweaver Trial 7.40 on MaxDB)
- W3C PNG specification (second edition, all mentioned chapter in this blogs belongs to this document)
- TweakPNG (freeware for examining and modifying PNG image files)
- ASCII/Hex-Converter (I used an online converter)
- IrfanView (freeware image viewer)
Basic idea
The method "GET_SCREENSHOT" will be used to create a PNG image of the current SAP GUI window. PNG images consist of different chunks (cf. chapter 5.3). Each chunk has a chunk type to specify its function (cf. chapter 4.7.2). The chunk type "tEXt" is used to store text strings (cf. chapter 11.3.4.3). Keywords can be used to identify the content of the text string. Here are some useful keywords (cf. 11.3.4.2):
- Title: short title or caption
- Author: name of creator
- Description: more details than in title
- Creation Time: time of original image creation
- Comment: miscellaneous comment
A Keyword and his associated text string are called chunk data. Now we have all fundamentals for implementing our own solution.
Source code of demo report
You can download the demo from GitHub.
Example
For our example we us "Title" as keyword and "Hello World!" as text string.
After downloading the image to your desktop, you can use IrfanView for displaying.
Have a look at the function "View->Show HEX view" of IrfanView.

With TweakPNG you can have a look at the different chunks. You will find our tEXt-chunk "Title" with the corresponding text string "Hello World!".

Idea for practical use
It's just an idea and not a well proofed business case: Create your own generic object service to get a screenshot of the current SAP GUI window. Analyze the business context (given business object type and id, sy-structure, callstack and more - perhaps I will show that in another blog) and encode the gathered data into the PNG image as shown above. Download the image to the user's desktop so he can mail it to his support team. Support team of course would need a tool to show the PNG image and decode all tEXt chunks in it. Even if the user puts no additional information in his mail there are some helpful business context information in the image. As I said before just an idea ...