Funktion |
Mit der
Call
-Anweisung
können Sie aus einem GuiXT Script oder einem InputScript heraus eine Funktion
aufrufen. Es kann sich entweder um einen in ABAP implementierten
Funktionsbaustein handeln, der über die SAP-RFC-Schnittstelle aufgerufen
wird, oder eine lokal (am Frontend) als dll-Funktion z.B. in VC++
implementierte Funktion.
Zu beachten: Die Call -Anweisung über RFC setzt die Komponente "InputAssistant" voraus. Weitere Funktionen (wie automatische Formatkonvertierung, Bündelung von Aufrufen) bietet die "Open Call" Schnittstelle von GuiXT, siehe unten. |
|||||||||||||||||||||||||||
Beispiele |
Call "BAPI_USER_GET_DETAIL" in.USERNAME="MEYER " out.LOGONDATA="UserLogonData" Der Funktionsbaustein "BAPI_USER_GET_DETAIL" wird aufgerufen. Call "ImgName" dll="utilities.dll" in="&F[Material]" out="Datei" Die Funktion "ImgName" der dll-Datei "utilities.dll" wird lokal aufgerufen. |
|||||||||||||||||||||||||||
Format |
RFC Aufruf
Call "Funktionsname" in.Name1="value1" in.Name2="value1" ... out.Name1="vname1" out.Name2="vname2"... table.Name1="tab1" table.Name2="tab2" ... Zu beachten:
dll Aufruf
|
|||||||||||||||||||||||||||
Alternatives Format: OpenCall Schnittstelle |
Call
"Funktionsname"
export.Name1="vname1"
export.name2="vname2"
...
import.Name3="vname3"
import.Name3
"vname4"
....
Zu beachten:
Bei der Umstellung bestehender Call-Anweisungen auf die Open Call Schnittstelle bitte beachten:
|
|||||||||||||||||||||||||||
Format der OpenCall Schnittstelle für ABAP OO Remote Method Call |
Call
"classname.methodname"
object="objname"
export.name1="vname1"
export.name2="vname2"
...
import.Name3="vname3"
import.name4="vname4"
....
Ruft die Methode "methodname" des angegeben Objekts. Das Objekt muss
der Klasse "classname" angehören. Falls object= nicht angegeben ist,
wird eine statische Methode der KLasse aufgerufen. Beispiel: GuiXT
|
|||||||||||||||||||||||||||
Zusatzoptionen |
|
|||||||||||||||||||||||||||
Weitere Zusatzoptionen
für den Fall der Open Call Schnittstelle |
|
|||||||||||||||||||||||||||
RFC Aufruf |
Parameterübergabe Call "funktionsname" in.Name1="value1" in.Name2="value2" ... out.Name1="vname1" out.Name2="vname2" ... table.Name1="tab1" table.Name2="tab2" Restriktionen
Handhabung von Tabellen
Beispiel 1: GuiXT
Danach steht in der Variablen V[UserGroup] die Benutzergruppe zur Verfügung. Erläuterung (vergleichen Sie die Schnittstellendefinition in Transaktion SE37):
Beispiel 2: GuiXT
|
|||||||||||||||||||||||||||
dll-Aufruf |
Die Funktion wird bei z.B. 2 IN und 3 OUT-Parametern vom Typ
__declspec(dllexport) int funcname(char* p1, char* p2, char* p3, char* p4, char* p5)
definiert. Alle Parameter (in= und out=)
werden in der angegebenen Reihenfolge übergeben. Die maximale Länge jedes
einzelnen Strings beträgt 4000 Zeichen. Bitte achten Sie darauf, in dem
Script genügend viele Parameter anzugeben, sonst greift die dll-Funktion
auf eine ungültige Adresse zu.
Beispiel 1: Call "alphanum" Fügt vorangestellte 0000... zu einem numerischen Feld hinzu. Parameter:
Aufruf: Call "alphanum" dll="guixtstring.dll" in="&[Material]" in="8" out="NumMaterial" Beispiele für Ergebnisse:
Beispiel 2: Call "StripQuotationMarks" Entfernt die Anführungszeichen von einem String. Typischerweise werden beim Generieren von ASCII Textdateien doppelte Anführungszeichen um die Zeichen gelegt. In SAP ERP sind diese Anführungszeichen unerwünscht. Parameter:
Beispiel: Call "StripQuotationMarks" dll="guixtstring.dll" in="&[QMaterial]" out="SMaterial"
Kompilierte DLL und Visual Studio Beispielprojekt
Sie können die DLL sowie den Quellcode herunterladen und frei verwenden
oder auch erweitern. Bitte beachten Sie, dass Sie richtige Zielplattform
im Projekt auswählen je nach dem, ob Sie für die 32bit oder 64bit
Version von GuiXT bzw. dem SAP GUI erstellen möchten.
Download Visual Studio Projekt Download guixtstring.dll (32bit) Download guixtstring.dll (64bit) |
|||||||||||||||||||||||||||
Tipps & Tricks |
|
|||||||||||||||||||||||||||
Komponente |
GuiXT +
InputAssistant Fall dll: nur GuiXT nötig |