Prinzip und Vorteile der Schnittstelle

Für einige Funktionen verwendet CIS mobile die SAP GUI Scripting Funktionen, die direkt aus VB.NET heraus aufgerufen werden. Dazu wird ein komfortables Interface bereitgestellt, mit dem z.B. Werte aus Feldern gelesen werden können. Aber auch ganze Tabellen können relativ schnell eingelesen werden. Darüberhinaus können Transaktionen ausgeführt und so eine normale Benutzerinteraktion simuliert werden.

Der Vorteil besteht darin, dass hierbei alle Aktionen vom SAP System normal geprüft und behandelt werden: Berechtigungsprüfungen werden automatisch durchgeführt, Meldungen vom SAP GUI direkt an das HTML Frontend weitergereicht und so weiter.

Eine genaue Beschreibung der Schnittstelle finden Sie hier: GUI Scripting in VB


Wo wird die Schnittstelle genutzt?

Im Wesentlichen wird die Schnittstelle in der Anwendung dort genutzt, wo komplexe Daten eingegeben werden, im Gegensatz zu den Fällen, in denen oft möglichst schnell Daten angezeigt werden sollen. Diese Fälle sind z.B. das Anlegen von Aufträge und Angeboten, Kontakte, Ansprechpartnern. Aber auch für die Anzeige von Tabellen kann die Schnittstelle gut genutzt werden: Das Anzeigen der Partner in einem Auftrag dauert nur unwesentlich länger als dies bei einer Abfrage mit den anderen Methoden der Fall wäre.

In folgendem Beispiel meldet das SAP GUI beim Prüfen eines Auftrags eine fehlende Information:

  

Wie sieht der Code dazu aus?

Das folgende Codebeispiel zeigt, wie die Transaktion VA02 zum Ändern eines Auftrags aufgerufen wird. Die Nummer eines Auftrags wird in das Feld VBELN eingetragen und Enter ausgelöst:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
    Public Sub start_va02()

        'Logon to SAP-GUI
        If s10cis.sapgui Is Nothing Then
            s10cis.sapgui = New sapguisession(s10cis.sapconnect,
            s10cis.sapconnectclient, s10cis.sapconnectuser, _
            s10cis.sapconnectpassword, ic.Session.Language)
            s10cis.sapgui.Logon()
        End If

        Dim sapgui As sapguisession = s10cis.sapgui

        ' start transaction VA02
        enter("/NVA02")

        sapgui.SetField("VBAK-VBELN", vbeln)

        enter()


    End Sub

Die gesamte Transaktion wird mit dem Benutzer durchgeführt, der sich an CIS mobile und somit auch am SAP angemeldet hat. Alternativ dazu kann auch ein allgemeiner Benutzer angegeben und verwendet werden, ähnlich dem RFC Benutzer.