Helpviews are essentially webviews that are displayed inside the SAP GUI window. They load an ordinary HTML file and allow you to provide additional information, instructions or helper functions to users, right next to the SAP screen.

Helpviews are mainly used to show how to perform a specific SAP transaction, or to offer supporting functions such as search bars, quick navigation or sample data for beginners. They are therefore particularly well suited for training and for users who do not work with a transaction on a daily basis.

Configuring the Helpview directory

In the GuiXT Profile you specify the directory in which GuiXT looks for the Helpview files. As soon as a matching file exists for the current transaction, GuiXT automatically displays a help icon in the toolbar.

File naming and language detection

Which HTML file is loaded depends on the SAP system logon language. The prefix of the file name controls the language:

  • d.transaction.VA01.html  (German)
  • e.transaction.VA01.html  (English)
  • f.transaction.VA01.html  (French)

When the user logs on in a particular language, GuiXT automatically picks the matching file. This means you can maintain a separate Helpview per transaction and language without ever having to change the GuiXT script itself.

Supported file formats for help files

GuiXT supports both HTML and PDF as formats for help files. GuiXT first searches for an HTML help file for the current transaction. If none exists, a PDF file with the same naming convention is searched for and displayed instead.

Note: Interactive features are only available in HTML format. PDF files allow the display of static content only.

Configuring the HelpView icon

To display a help icon in the toolbar, you need to provide an icon file in the HelpView directory:

  • File name: help.gif
  • Location: HelpView directory
  • Format: Square, approx. 18 × 18 pixels

The icon is only displayed if a matching help file exists for the current transaction. You can override the default icon file for individual transactions using the Image command with the viewHelp=... parameter.

Logon screen help

For the SAP logon screen, GuiXT searches for a help file matching the following naming pattern:

[X].transaction.logon.html

The placeholder [X] is replaced by the language key of the logon screen.

Calling GuiXT functions from a Helpview

Because a Helpview is a fully featured HTML page, it can contain JavaScript routines that in turn call GuiXT functions. This allows buttons, input fields or search results inside the Helpview to be connected directly to the SAP GUI window — for example to navigate to another screen, place the cursor on a specific field or transfer values into SAP fields.

The JavaScript code itself is not explained in detail in this documentation. The complete sample project files are however available for download:

» helpviews_sample_project.zip

VA01 example: explaining error messages and offering actions

In the following example for transaction VA01, the Helpview reads the current SAP error message and shows a more detailed explanation right next to it on how to fix it. In addition, two action buttons (BV and TA) are provided. Clicking BV automatically writes the value "BV" into the corresponding SAP field, so the user neither has to know the value nor type it in manually.

VA02 example: sortable table of recent orders

In the Helpview for transaction VA02, five buttons each represent a time range (for example the last 7, 14 or 31 days). Clicking one of them loads a sortable table with the matching orders. Clicking an order number transfers it directly into the order field of the SAP screen.

The order list is read via dbselect directly from the tables VBAK and KNA1. The parameter days passed in determines the time range. The result is then returned to the Helpview as JSON and displayed there as a table:

GuiXT
Parameter days

Set V[CurrentDate] "&V[today_d.m.y]"
Set V[diff] "&V[CurrentDate]" - "01.01.1900"
Set V[d] "01.01.1900" + "&V[diff]"
Set V[begin] "&V[d](7-10)&V[d](4-5)&V[d](1-2)"

Set V[CurrentDate] "&V[today-&V[days]_d.m.y]"
Set V[diff] "&V[CurrentDate]" - "01.01.1900"
Set V[d] "01.01.1900" + "&V[diff]"
Set V[end] "&V[d](7-10)&V[d](4-5)&V[d](1-2)"

// create result table
CreateTable V[orders] vbeln audat kunnr name1 ort01

// create SQL parameters
Set V[table] "VBAK join KNA1 on KNA1~KUNNR = VBAK~KUNNR"
Set V[fields] "vbak~vbeln,vbak~audat,kna1~kunnr,kna1~name1,kna1~ort01"
Set V[condition] "vbak~ernam = 'NAME' and audat between '&V[end]' _
    and '&V[begin]' and vbak~trvog = '0' " //&V[_user]

// execute database Select
Call "/guixt/dbselect" -currentUser _
  export.table="table" _
  export.fields="fields" _
  export.condition="condition" _
  import.values="orders"

CopyText toText="temp" fromTable=V[orders] -json


Return "&text[temp]"

VA02 example: search bar with navigation

The second VA02 Helpview contains a search bar with suggestions. Selecting a suggestion makes the SAP GUI window switch to the corresponding screen. If the suggestion points to a specific field, that field is additionally highlighted once focus returns to the SAP window. Even an untrained user can therefore quickly find their way around complex screens.

The actual navigation is handled by a GuiXT InputScript. It takes the TARGET parameter (e.g. Verkauf, Sales or Ventes) and, depending on the current screen, jumps to the matching tab. For composite targets such as Item detail->Order Quantity, the cursor is additionally placed on the corresponding field:

GuiXT
Parameter TARGET

Screen SAPMV45A.4003
  if U[TARGET]
    Enter "/3"
  endif
Screen SAPMV45A.4001
  if U[TARGET]
    if U[TARGET=Verkauf] _
        or U[TARGET=Sales] _
        or U[TARGET=Ventes]
      Enter "=T\01"
    endif
    if U[TARGET=Besteller] _
        or U[TARGET=Ordering party] _
        or U[TARGET=Acheteur]
      Enter "=T\04"
    endif
    if U[TARGET=Versand] _
        or U[TARGET=Shipping] _
        or U[TARGET=Expédition]
      Enter "=T\06"
    endif
    if U[TARGET=Positionsdetail] _
        or U[TARGET=Item detail] _
        or U[TARGET=Détail du poste]
      Enter "=T\03"
    endif
    if U[TARGET=Positionsdetail->Auftragsmenge] _
        or U[TARGET=Item detail->Order Quantity] _
        or U[TARGET=Détail du poste->Quantité d'ordre]
      Enter "=T\03"
      Set V[nav_cursor] "RV45A-KWMENG"
      Goto cursor
    endif
    if U[TARGET=Verkauf->Auftragsgrund] _
        or U[TARGET=Sales->Order Reason] _
        or U[TARGET=Ventes->Motif commande]
      Enter "=T\01"
      Set V[nav_cursor] "VBAK-AUGRU"
      Goto cursor
    endif
    if U[TARGET=Absagegrund->Auftragsgrund] _
        or U[TARGET=Reason for rejection->Order Reason] _
        or U[TARGET=Motif d'annulation->Motif commande]
      Enter "=T\07"
      Set V[nav_cursor] "VBAK-AUGRU"
      Goto cursor
    endif
    if U[TARGET=Versand->Liefersperre] _
        or U[TARGET=Shipping->Delievery Block] _
        or U[TARGET=Expédition->Blocage livr.]
      Enter "=T\06"
      Set V[nav_cursor] "VBAK-LIFSK"
      Goto cursor
    endif
    if U[TARGET=Absagegrund] _
        or U[TARGET=Reason for rejection] _
        or U[TARGET=Motif d'annulation]
      Enter "=T\07"
    endif
  endif
  label exit
  leave

  label cursor
Screen SAPMV45A.4001
  SetCursor F[&V[nav_cursor]]
  goto exit

MM03 example: search bar for material views

The same principle can be applied to almost any transaction. For the material display MM03, the Helpview offers a search bar for the individual material views (e.g. Basic Data 1, MRP 1). Selecting an entry runs through the view selection dialog and, if a specific field is given as the target, the cursor is then placed precisely on that field.

The corresponding InputScript shows how the view selection dialog (SAPLMGMM.0081) is processed through a shared routine and returns to a defined return point depending on the target field:

GuiXT
Parameter TARGET

Set V[nav_cursor] "x"
Set V[return_point] "exit"

if U[TARGET]
  if U[TARGET=Grunddaten 1] _
      or U[TARGET=Basic Data 1] _
      or U[TARGET=Données de base 1]
    Enter "=SP01"
  endif
  if U[TARGET=Grunddaten 2] _
      or U[TARGET=Basic Data 2] _
      or U[TARGET=Données de base 2]
    Enter "=SP02"
  endif
  if U[TARGET=Disposition 1] _
      or U[TARGET=MRP 1] _
      or U[TARGET=Planif. des besoins 1]
    Enter "=SP12"
    Set V[return_point] "exit"
    Goto SelectionScreen
  endif
  if U[TARGET=Disposition 1->Meldebestand] _
      or U[TARGET=MRP 1->Reorder Point] _
      or U[TARGET=Planif. des besoins 1->Point de commande]
    Enter "=SP12"
    Set V[nav_cursor] "MARC-MINBE"
    Set V[return_point] "disp1return"
    Goto SelectionScreen
  endif
endif
label exit
leave

label SelectionScreen
Screen SAPLMGMM.0081
  Enter "/4"

Screen SAPLMGMM.0081
  Enter
  goto &V[return_point]


  label disp1return
Screen SAPLMGMM.4000
  SetCursor F[&V[nav_cursor]]