Funktion |
Die VB.NET Klassenbibliothek
guinet.dll
bietet eine komfortable Möglichkeit, die SAP GUI Scripting Funktionen
aus VB.NET heraus zu benutzen.
Dabei kann es sich um VB.NET Funktionen handeln, die Sie aus GuiXT mit
CallVBAsync
aufrufen (Komponente GuiXT
Controls) oder um eigene VB.NET Programme, die unabhängig von GuiXT
aufgerufen werden. Auch die
mobilen Anwendungen von Synactive (S10 Technologie, CIS mobile)
verwenden
guinet.dll.
Die über guinet.dll ausgelösten Aktionen werden im GuiXT InputScript
Trace protokolliert Voraussetzung:
|
Aufruf der
Scripting-Funktionen |
Zum Aufruf der
Scripting-Funktionen verwenden Sie das Objekt guinet.GuiSession. Das
Scripting arbeitet automatisch mit der SAP GUI Session, aus der Sie mit
CallVBAsync gestartet sind. Bei Verwendung der guinet.dll in einem eigenen VB Programm, unabhängig von GuiXT CallVBAsync, ist es nötig, zunächst mit GuiSession.Logon() eine SAP GUI Session zu starten. Beispiel 1: ' start transaction FB01 Dim guixt As New guinet.guixt guixt.GuiSession.Enter( "/NFB01")' set company code guixt.GuiSession.SetField("BKPF-BUKRS", "0001")
Beispiel 2: |
Aufruf von
"native" SAP GUI Scripting |
Falls Sie neben den Funktionen
aus guinet.dll noch "native" SAP GUI Scripting Funktionen in Ihrer
VB.NET Routine benötigen sollten, können Sie diese über
guixt.GuiSession.GuiApplication und guixt.GuiSession.GuiActiveWindow erreichen.
Beispiel 1: Beispiel 2: Die Notation des native SAP GUI Scripting spiegelt die interne Subscreen-Struktur eines SAP Dynpros wieder und ist deshalb in der Praxis nur durch Aufzeichnung eines Scripts zu benutzen. Zum Beispiel vereinfacht sich die SAP GUI Scripting Standardnotation in Transaktion VA01 guixt.GuiSession.GuiActiveWindow .findById("usr/subSUBSCREEN_HEADER:SAPMV45A:4021/subPART-SUB:SAPMV45A:4701/ctxtKUWEV-KUNNR").text = mykunnr mit der guinet-Schnittstelle zu guixt.GuiSession.SetField("KUWEV-KUNNR", mykunnr) was man auch ohne Aufzeichnung schreiben kann, wenn man den technischen Feldnamen "KUWEV-KUNNR" kennt (z.B. über F1 auf SAP-Feld). Die SAP Standardhilfe zum SAP GUI Scripting mit Beschreibung aller "native" Funktionen ist in SAP GUI über den Menüpunkt "Hilfe zu SAP GUI Scripting" verfügbar. |
Click() |
Public
Sub Click(ByVal
name As
String) Mausklick (einfach) auf das angegebene Element (z.B. Ein/Ausgabefeld). Unter "name" geben Sie den technischen Namen des Elements an. Beispiel: ' click on Ship-to partyguixt.guisession.Click("KUWEV-KUNNR") |
ClickGridCell() |
Public
Sub ClickGridCell(ByVal
row As
Integer,
ByVal
colname As
String,
Optional
ByVal index
As
Integer = 0) Mausklick auf eine Zelle in einem Grid Control. |
ClickTableCell() |
Public
Sub ClickTableCell(ByVal
row As
Integer,
ByVal
colname As
String)
Public Sub ClickTableCell(ByVal tabname As String, ByVal row As Integer, ByVal colname As String)Mausklick auf eine Zelle in einem Table Control. Mit der ersten Variante können Sie arbeiten, falls nur eine Tabelle in dem Screen existiert. |
DoubleClick() |
Public
Sub DoubleClick(ByVal
name As
String) Doppelklick auf das angegebene Element (z.B. Ein/Ausgabefeld). Unter "name" geben Sie den technischen Namen des Elements an. Beispiel: ' doubleclick on Ship-to partyguixt.guisession.DoubleClick("KUWEV-KUNNR") |
DoubleClick GridCell() |
Public
Sub ClickGridCell(ByVal
row As
Integer,
ByVal
colname As
String,
Optional
ByVal index
As
Integer = 0) Doppelklick auf eine Zelle in einem Grid Control. |
DoubleClick TableCell() |
Public
Sub
DoubleClickTableCell(ByVal
row As
Integer,
ByVal
colname As
String)
Public Sub DoubleClickTableCell(ByVal tabname As String, ByVal row As Integer, ByVal colname As String)Doppelklick in einer Zelle in einem Table Control. Mit der ersten Variante können Sie arbeiten, falls nur eine Tabelle in dem Screen existiert. |
DoubleClick TreeNode() |
Public
Sub
DoubleClickTreeNode(ByVal
nodekey As
String,
Optional
ByVal index
As
Integer = 0) Doppelklick auf einen Baumknoten (Schlüssel).
|
DoubleClick TreeItem() |
Public
Sub
DoubleClickTreeItem(ByVal
nodekey As
String,
ByVal item
As
String,
Optional
ByVal index
As
Integer = 0) Doppelklick auf ein Element des Baums.
|
Enter() |
Public
Function Enter(Optional
ByVal cmd
As
String =
"",
Optional
ByVal IgnoreWarning
As
Boolean =
True,
Optional
ByVal ReturnError
As
Boolean =
False,
Optional
ByVal
IgnoreInfoPopup As
Boolean =
False,
Optional
ByRef msg
As
String =
"")
As
Boolean Eingabe eines Funktionscodes, z.B. guixt.guisession.Enter("=V43D_GET") oder guixt.guisession.Enter("/NVA03") Über die Zusatzoptionen können Sie festlegen, ob Meldungen und Popups automatisch quittiert werden sollen. |
FindField() |
Public
Function FindField(ByVal
name As
String)
As
GuiComponent Sucht ein Element über den technischen Namen und liefert es als GuiComponent Objekt des SAP GUI Scripting zurück. Falls nicht gefunden: Nothing. |
GetField() |
Public Function
GetField(ByVal
name As String,
Optional ByVal text
As
Boolean =
False)
As
String
Der Inhalt eines Ein- oder
Ausgabefeldes, einer Checkbox, eines Radiobuttons oder einer Combobox.
Als "name" nennen Sie den technischen Namen. Beispiel:
|
GetFieldIcon() |
Public
Function
GetFieldIcon(ByVal
name As
String)
As
String Sucht ein Element über den technischen Namen und liefert den Namen des Icons zurück, falls der Text mit einem Icon beginnt, sonst "". |
GetGridCell() |
Public
Function
GetGridCell(ByVal
row As
Integer,
ByVal
colname As
String,
Optional
ByVal index
As
Integer = 0,
Optional
ByRef found
As
Boolean =
False)
As
String Liest den Inhalt einer Zelle in einem Grid Control. |
GetTableCell() |
Public
Function GetTableCell(ByVal
row As
Integer,
ByVal colname
As
String) As
String
Public Function GetTableCell(ByVal tabname As String, ByVal row As Integer, ByVal colname As String) As StringLiest den Inhalt einer Zelle in einem Table Control. Mit der ersten Variante können Sie arbeiten, falls nur eine Tabelle in dem Screen existiert. |
GuiGridView() |
Public
ReadOnly
Property
GuiGridView() As
GuiGridView Liefert das aktuelle Grid Control als GuiGridView Objekt des SAP GUI Scripting, oder Nothing falls kein Grid aktiv ist. Falls mehrere Grid Controls existieren: das erste.
|
GuiGridViews() |
Public
ReadOnly
Property
GuiGridViews() As
List(Of
GuiGridView) Liefert eine Liste aller aktuellen Grid Controls.
|
GuiTable Control() |
Public
ReadOnly
Property
GuiTableControl() As
GuiTableControl
Liefert das aktuelle Table
Control als GuiTableControl Objekt des SAP GUI Scripting, oder Nothing
falls kein Table Control aktiv ist. Dim tc
As
GuiTableControl |
GuiTree() |
Public
ReadOnly
Property
GuiTree() As
GuiTree Liefert den aktuellen Tree als GuiTree Objekt des SAP GUI Scripting, oder Nothing falls kein Tree aktiv ist. Falls mehrere Trees existieren: den ersten.
|
GuiTrees() |
Public
ReadOnly
Property
GuiTrees() As
List(Of
GuiTrees) Liefert eine Liste aller aktuellen Trees.
|
IsTabActive() |
Public ReadOnly Property
IsTabActive(ByVal
tabid As String)
As
Boolean Prüft, ob ein bestimmter Reiter aktiv ist. Beispiel: If
guixt.guisession.IsTabActive("T/03") |
Logoff() |
Public
Function Logoff()
As
Boolean Die SAP GUI Session wird beendet. |
Logon() |
Public
Function Logon(Optional
ByRef
ParErrorMessage As
String =
Nothing,
Optional
ByVal
HideWindow As
Boolean =
False)
As
Boolean Nur nötig, falls Sie ohne GuiXT-Bezug arbeiten, denn mit GuiXT bezieht sich das GUI Scripting immer auf das aktuelle SAP GUI Window.
Führt die Anmeldung im SAP
System mit den bei Anlegen des sapguisession-Objekts gesetzen Daten
durch (Connection string, Benutzername etc.). |
MessageId() |
Public ReadOnly Property
MessageId() As
String Die Nachrichtenklasse, z.B. "02". |
Message Number() |
Public ReadOnly Property
MessageNumber() As
String Die Nachrichtennummer, z.B. "100". |
Message Parameter1() |
Public ReadOnly Property
MessageParameter1Id() As
String Parameter 1 in der Nachricht |
Message Parameter2() |
Public ReadOnly Property
MessageParameter1Id() As
String Parameter 2 in der Nachricht |
Message Parameter3() |
Public ReadOnly Property
MessageParameter1Id() As
String Parameter 3 in der Nachricht |
Message Parameter4() |
Public ReadOnly Property
MessageParameter1Id() As
String Parameter 4 in der Nachricht |
MessageText() |
Public
ReadOnly
Property
MessageText() As
String Der Nachrichtentext. |
MessageType() |
Public
ReadOnly
Property
MessageType() As
String Falls eine Nachricht auf dem aktuellen Screen ausgegeben wird, den Nachrichtentype "E" für Error, "I" für Information, "W" für Warning. Andernfalls "". |
New() |
Public
Sub
New(ByVal
ConnectionString As
String,
ByVal
LogonClient As
String,
ByVal LogonUser As String, ByVal LogonPassword As String, ByVal LogonLanguage As String) Nur nötig, falls Sie ohne GuiXT-Bezug arbeiten, denn mit GuiXT bezieht sich das GUI Scripting immer auf das aktuelle SAP GUI Window und Sie erhalten das sapguisession-Objekt durch den Aufruf guixt.sapguisession().
Legt ein Objekt der Klasse
guinet.sapguisession mit den Parametern für den nachfolgenden Logon()
an. |
NewSession() |
Public
Function
NewSession(ByVal
tcode As
String)
As
sapguisession Startet einen neuen SAP GUI Modus mit der angegebenen Transaktion |
ReadGrid() |
Public
Function ReadGrid(ByVal
dt As
DataTable, Optional
ByVal index
As
Integer = 0)
As
Boolean Einlesen der Inhalte des aktuellen Grid Control in ein VB.NET Objekt der Klasse System.Data.DataTable. Es werden die Spalten gelesen, für die in der DataTable gleichnamige Spalten existieren. Sollte mehr als ein Grid Control in dem Screen existieren, können Sie die Nummer als Index mitgeben. |
ReadCombo Box() |
Public
Function
ReadComboBox(ByVal
dt As
DataTable, ByVal
name As
String)
As
Boolean Einlesen der Inhalte einer Combobox in ein VB.NET Objekt der Klasse System.Data.DataTable. Die Schlüssel werden in die erste Spalte eingelesen, die Texte in die zweite Spalte. |
ReadTable() |
Public
Function ReadTable(ByVal
dt As
DataTable, Optional
ByVal
tabname As
String =
"")
As
Boolean Einlesen der Inhalte eines Table Control in ein VB.NET Objekt der Klasse System.Data.DataTable. Es werden die Spalten gelesen, für die in der DataTable gleichnamige Spalten existieren. Als "tabname" können Sie den technischen Namen der Tabelle angeben. |
ReadTree() |
Public
Function ReadTree(ByVal
dt As
DataTable, Optional
ByVal
nodekey As
String =
"",
Optional
ByVal index
As
Integer = 0,
Optional
ByVal depth
As
Integer = 100000)
As
Boolean Einlesen der Inhalte eines Tree in VB.NET Objekt der Klasse System.Data.DataTable. Folgende Spalten werden gefüllt, falls sie in der DataTable existieren:
Optional können Sie mitgeben, ab welchem Knoten "nodekey" ein Teilbaum gelesen werden soll, den Index 0,1,2 falls es mehrere Trees gibt, und die Tiefe bis zu der die Baumstruktur aufgelöst werden soll. |
ScreenId() |
Public
ReadOnly
Property
ScreenId() As
String Liefert den aktuellen Programmnamen und Dynpronummer, z.B. "SAPMV45A.0100"
|
ScreenTitle() |
Public
ReadOnly
Property
ScreenTitle() As
String Liefert den aktuellen Titel, z.B. "Kundenauftrag anlegen: Einstieg"
|
SetField() |
Public
Sub SetField(ByVal
name As
String,
ByVal value
As
String)
Setzt den Inhalt eines
Eingabefeldes, einer Checkbox, eines Radiobuttons oder einer Combobox.
Als "name" nennen Sie den technischen Namen. Beispiel:
|
SetLicense() |
Public
Function
SetLicense(ByVal
license As
String)
As
Boolean Falls Sie guinet.dll in einem eigenen VB.NET Programm ohne GuiXT-Bezug verwenden, müssen Sie vor dem Logon einen gültigen Lizenzschlüssel setzen. Die "GuiXT Controls" Komponente umfaßt bereits diese Lizenz; den Lizenzschlüssel erhalten Sie von Synactive. |
SetGridCell() |
Public
Sub SetGridCell(ByVal
row As
Integer,
ByVal
colname As
String,
ByVal value
As
String,
Optional
ByVal index
As
Integer = 0) Setzt den Inhalt einer Zelle in einem Grid Control. |
SetTableCell() |
Public
Sub SetTableCell(ByVal
row As
Integer,
ByVal
colname As
String,
ByVal value
As
String)
Public
Sub
SetTableCell(ByVal
tabname As
String,
ByVal row
As
Integer,
ByVal colname
As
String,
ByVal value
As
String)
Setzt den Inhalt einer Zelle in einem Table Control. Mit der ersten Variante können Sie arbeiten, falls nur eine Tabelle in dem Screen existiert. |
SelectTable Row() |
Public
Sub SelectTableRow(ByVal
row As
Integer)
Public Sub SelectTableRow(ByVal tabname As String, ByVal row As Integer) Selektiert eine Tabellenzeile. Mit der ersten Variante können Sie arbeiten, falls nur eine Tabelle in dem Screen existiert. Die Tabellenzeile wird, falls erforderlich, in den sichtbaren Ausschnitt der Tabelle gescrollt. |
TableCell Exists() |
Public
Function TableCellExists(ByVal
row As
Integer,
ByVal colname
As
String, Optional
ByRef g
As GuiComponent =
Nothing)
As
Boolean Public Function TableCellExists(ByVal tabname As String, ByVal row As Integer, ByVal colname As String, Optional ByRef g As GuiComponent = Nothing) As Boolean Prüft, ob eine bestimmte Tabellenzelle existiert. Optional wird die Tabellenzelle als Objekt der Klasse GuiComponent zur Verfügung gestellt. Die angegebene Tabellenzeile wird, falls erforderlich, in den sichtbaren Ausschnitt der Tabelle gescrollt. |
Komponente | GuiXT + Controls |