|
Funktion | Mit der Call-Anweisung können Sie aus einem GuiXT Skript oder einem InputScript heraus eine Funktion aufrufen.
Die Funktion kann entweder lokal (am Frontend) als dll-Funktion vorliegen (z.B. in VC++ implementiert), oder Sie rufen eine in ABAP geschriebene Funktion auf dem Applikationsserver auf. In diesem Fall wird die Remote Function Call Technologie (RFC) zum Aufruf des Funktionsbausteins eingesetzt. Zu beachten: Die Call-Anweisung über RFC setzt die Komponente “InputAssistant” voraus. | ||
Beispiele | Call "ImgName" dll="guiexits" In="&F[Material]" Out="Datei"
Call "ImgName" In="&F[Material]" Out="MatFileName" Im ersten Fall wird lokal die dll-Funktion ImgName aufgerufen. Im zweiten Fall wird über RFC der Funktionsbaustein ImgName im R/3 aufgerufen. | ||
Format | RFC Aufruf Altes Format: Neues Format: Call "Funktionsname" Destination="dest" In.Name1="Par1" In.Name2="Par2" ... Out.Name1="Par1" Out.Name2="Par2"... Table.Name1="tab1" Table.Name2="tab2" ... ... dll Aufruf Zu beachten: Zur Zeit ist die Gesamtzahl der Parameter (In + Out + Table) auf maximal 20 begrenzt | ||
Zusatzoptionen |
| ||
Format | RFC Aufruf Altes Format: Neues Format: Call "Funktionsname" Destination="dest" In.Name1="Par1" In.Name2="Par2" ... Out.Name1="Par1" Out.Name2="Par2"... Table.Name1="tab1" Table.Name2="tab2" ... ... dll Aufruf Zu beachten: Zur Zeit ist die Gesamtzahl der Parameter (In + Out + Table) auf maximal 20 begrenzt | ||
Ausgabeparameter | Die Ausgabeparameter des Call können in der Form &[name] in allen nachfolgenden Skriptzeilen angesprochen werden. Beispiel: Call "ImgName" In="&[Material]" Out="MatFileName" | ||
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 255 Zeichen. Bitte achten Sie darauf, in dem Skript genügend viele Parameter anzugeben, sonst greift die dll-Funktion auf eine ungültige Adresse zu. Einige nützliche dll-Funktionen können Sie sich auf unserer dll-download-Seite besorgen | ||
RFC Aufruf | Parameterübergabe Es gibt hierfür 2 Varianten. Entweder arbeiten Sie mit Positionsparametern (ohne Nennung eines Namens): Call "funktionsname" In="Par1" In="Par2" ... Out="Par1" Out="Par2" ... In diesem Fall müssen die Importing-Parameter des Funktionsbausteins mit In1, In2, … benannt sein, die Exporting-Parameter mit Out1, Out2,… (R/3 Funktionsbibliothek, Transaktion SE37). Tables-Parameter sind dann nicht möglich. Oder Sie arbeiten mit benannten Parametern: Call "funktionsname" In.Name1="Par1" In.Name2="Par2" ... Out.Name1="Par1" Out.Name2="Par2" ... Table.Name1="tab1" Table.Name2="tab2" In diesem Fall können die Namen der Parameter Name1, Name2, … beliebig sein. Restriktionen
Aus Ihrem eigenen Funktionsbaustein können selbstverständlich beliebige andere Funktionsbausteine aufgerufen werden. Handhabung von Tabellen
Beispiel: Aufruf eines BAPI als RFC Call “BAPI_USER_GET_DETAIL” In.Username="&[_user]“ Out.LogonData="UserLogonData” Danach steht in der Variablen &[UserGroup] die Benutzergruppe zur Verfügung. Erläuterung (vergleichen Sie die Schnittstellendefinition in Transaktion SE37):
Beispiel: Anzeige zusätzlicher Daten über RFC Beispiel: RFC-Aufruf aus einem InputScript | ||
Aufruf in anderen Systemen | Es ist möglich, Funktionen in anderen Systemen (R/3 oder auch R/2) aufzurufen. Verwenden Sie hierzu den Parameter Destination=… Die dort angegebene Destination muss in der Datei saprfc.ini beschrieben sein, vergleichen Sie bitte die SAP-Dokumentation zum RFC. Die Datei saprfc.ini liegt entweder in dem SAP- Workdirectory oder eine Umgebungsvariable RFC_INI benennt die Datei.
Hierdurch können Sie sehr leicht Informationen aus weiteren Systemen in die R/3 Bilder integrieren. | ||
Tips & Tricks |
|