Helpviews sind im Kern Webviews, die innerhalb des SAP GUI Fensters angezeigt werden. Sie laden eine gewöhnliche HTML-Datei und erlauben es, den Anwendern direkt neben der SAP-Maske zusätzliche Informationen, Anleitungen oder Hilfsfunktionen bereitzustellen.

Helpviews werden überwiegend dafür eingesetzt, um zu zeigen, wie eine bestimmte SAP-Transaktion auszuführen ist, oder um unterstützende Funktionen wie Suchleisten, Schnellnavigation oder Beispieldaten für Einsteiger anzubieten. Sie eignen sich damit besonders gut für Schulungen und für Anwender, die nicht täglich mit einer Transaktion arbeiten.

Konfiguration des Helpview-Verzeichnisses

Im GuiXT Profile wird ein Verzeichnis hinterlegt, in dem GuiXT nach den Helpview-Dateien sucht. Sobald zu einer aufgerufenen Transaktion eine entsprechende Datei existiert, blendet GuiXT automatisch ein Hilfe-Symbol in der Toolbar ein.

Dateibenennung und Spracherkennung

Welche HTML-Datei geladen wird, hängt von der Anmeldesprache des SAP-Systems ab. Das Präfix im Dateinamen steuert die Sprache:

  • d.transaction.VA01.html  (Deutsch)
  • e.transaction.VA01.html  (Englisch)
  • f.transaction.VA01.html  (Französisch)

Bei Anmeldung in einer bestimmten Sprache wählt GuiXT automatisch die passende Datei aus. So kann pro Transaktion und Sprache ein eigener Helpview gepflegt werden, ohne dass das GuiXT Script angepasst werden muss.

Unterstützte Dateiformate für Hilfedateien

GuiXT unterstützt sowohl HTML als auch PDF als Formate für Hilfedateien. GuiXT sucht zunächst eine HTML-Hilfedatei zur aktuellen Transaktion. Existiert diese nicht, wird eine PDF-Datei mit der gleichen Namenskonvention gesucht und angezeigt.

Hinweis: Interaktive Features sind ausschließlich im HTML-Format verfügbar. PDF-Dateien ermöglichen nur die Anzeige statischer Inhalte.

HelpView-Icon konfigurieren

Um ein Hilfesymbol in der Toolbar anzuzeigen, müssen Sie eine Icon-Datei im HelpView-Verzeichnis bereitstellen:

  • Dateiname: help.gif
  • Speicherort: HelpView-Verzeichnis
  • Format: Quadratisch, ca. 18 × 18 Pixel

Das Symbol wird nur angezeigt, wenn eine entsprechende Hilfedatei für die aktuelle Transaktion existiert. Über die Image-Anweisung mit dem Parameter viewHelp=... können Sie die Standard-Icon-Datei für einzelne Transaktionen überschreiben.

Logon-Screen-Hilfe

Im SAP Logon-Screen wird nach einer Hilfedatei mit folgendem Namensschema gesucht:

[X].transaction.logon.html

Dabei wird der Platzhalter [X] durch den Sprachenschlüssel des Logon-Screens ersetzt.

Aufruf von GuiXT-Funktionen aus dem Helpview

Da ein Helpview eine vollwertige HTML-Seite ist, können darin JavaScript-Routinen hinterlegt werden, die wiederum GuiXT-Funktionen aufrufen. Auf diese Weise lassen sich Buttons, Eingabefelder oder Suchergebnisse aus dem Helpview heraus mit dem SAP GUI Fenster verbinden, etwa um in eine andere Maske zu navigieren, einen Cursor auf ein bestimmtes Feld zu setzen oder Werte in SAP-Felder zu übertragen.

Der JavaScript-Code wird in dieser Dokumentation nicht im Detail erklärt. Die vollständigen Beispieldateien stehen jedoch zum Download bereit:

» helpviews_beispielprojekt.zip

Beispiel VA01: Fehlertexte erklären und Aktionen anbieten

Im folgenden Beispiel zur Transaktion VA01 liest der Helpview die aktuelle SAP-Fehlermeldung aus und zeigt direkt daneben eine eigene, ausführlichere Erklärung an, wie der Fehler behoben werden kann. Zusätzlich stehen zwei Aktions-Buttons (BV und TA) bereit. Beim Klick auf BV wird automatisch der Wert "BV" in das passende SAP-Feld eingetragen, der Anwender muss den Wert also weder kennen noch von Hand erfassen.

Beispiel VA02: Sortierbare Tabelle der letzten Aufträge

Im Helpview zur Transaktion VA02 stellen fünf Buttons jeweils einen Zeitraum dar (z.B. letzte 7, 14 oder 31 Tage). Ein Klick darauf lädt eine sortierbare Tabelle mit den passenden Aufträgen. Durch Klick auf eine Auftragsnummer wird diese direkt in das Auftragsfeld der SAP-Maske übertragen.

Die Auftragsliste wird per dbselect direkt aus den Tabellen VBAK und KNA1 gelesen. Der übergebene Parameter days bestimmt dabei den Zeitraum. Das Ergebnis wird anschließend als JSON an den Helpview zurückgeliefert und dort als Tabelle dargestellt:

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]"

Beispiel VA02: Suchleiste mit Navigation

Der zweite VA02-Helpview enthält eine Suchleiste mit Vorschlägen. Beim Auswählen eines Vorschlags wechselt das SAP GUI Fenster auf die zugehörige Maske. Verweist der Vorschlag auf ein konkretes Feld, so wird dieses Feld nach dem Rückwechsel ins SAP-Fenster zusätzlich hervorgehoben. So findet sich auch ein ungeschulter Anwender in komplexen Masken schnell zurecht.

Die eigentliche Navigation übernimmt ein GuiXT InputScript. Es nimmt den Parameter TARGET entgegen (z.B. Verkauf, Sales oder Ventes) und springt, abhängig vom aktuellen Bild, auf den passenden Reiter. Bei zusammengesetzten Zielen wie Positionsdetail->Auftragsmenge wird zusätzlich der Cursor auf das entsprechende Feld gesetzt:

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

Beispiel MM03: Suchleiste für Materialsichten

Dasselbe Prinzip lässt sich auf nahezu jede Transaktion übertragen. Für die Materialanzeige MM03 bietet der Helpview eine Suchleiste für die einzelnen Materialsichten (z.B. Grunddaten 1, Disposition 1). Beim Auswählen eines Eintrags wird die Sichtauswahl durchlaufen und, falls ein konkretes Feld als Ziel angegeben ist, anschließend der Cursor exakt darauf positioniert.

Das zugehörige InputScript zeigt, wie der Sichtdialog (SAPLMGMM.0081) über eine gemeinsame Routine durchlaufen wird und je nach Zielfeld zu einem definierten Rücksprungpunkt zurückkehrt:

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