-
SAP API's
Hallo zusammen,
SAP liefert für System i ein Serviceprogramm LIBRFC mit API's für die Realisierung von remote function calls. Ich suche dafür eine brauchbare Dokumentation mit Parameterangaben usw. für ILE RPG. Es kursieren diverse Beschreibungen im Web die sich alle mit C++ befassen. Hat jemand einen Tipp?
Danke für jeden Hinweis und viele Grüße.
-
Dazu muss es doch erst mal eine Beschreibung der API's dieser Serviceprogramme von SAP geben.
Nun liegt es an dir, aus den C-Aufrufen entsprechende ILERPG-Prototypen zu stricken.
Stell mal einfach so eine Deklaration (Beschreibung) des SAP-Aufrufes hier rein, mal sehen, wie dann der Prototyp für RPG aussehen müsste.
-
Kein Problem, z.B. C:
ITAB_H ItCreate(char * name,
unsigned leng,
unsigned occu,
unsigned memo);
Call sieht so aus:
ITAB_H handle;
void * ptr;
handle = ItCreate(“MyTable”, myTableSize, 0,0);
Hierfür sieht die RPG Definition dann aber so aus:
D TabName S 31A
D TabNameP S 16* INZ(%ADDR(TabName))
D Leng S 10U 0 INZ(0)
D Occu S 10U 0 INZ(0)
D Memo S 10U 0 INZ(0)
d ITabH S 16* INZ(*NULL)
DItCreate PR * EXTPROC('ItCreate')
D PARM1 LIKE(TabNameP) value
D PARM2 LIKE(Leng) value
D PARM3 LIKE(Occu) value
d PARM4 LIKE(Memo) value
// anlegen der internen Tabelle
TabName = 'TAB1' + NULL;
Leng = 20;
Occu = 2;
Memo = 0;
ITabH = ItCreate(TabNameP:Leng:Occu:Memo);
Ich kenne mich in C überhaupt nicht aus. Was mich stutzig macht, ist schon mal, dass der Tabellenname in C wohl als String übergeben wird, in RPG aber der Zeiger auf den Namen. Die RPG Zeilen sind aus einem Beispielsprogramm zitiert.
-
-
Für die diversen Parameter gibt es auch entsprechungen.
Wichtig ist beim Prototyp folgendes:
Parameter ohne "*" bzw. "&" werden als "Value" übergeben, Strings können als "CONST OPIONS(*STRING)" definiert werden.
Der Prototyp sieht dann ganz einfach sos aus:
DItCreate PR * EXTPROC('ItCreate')
D PARM1 256 value options(*string)
D PARM2 10U value
D PARM3 10U value
d PARM4 10U value
Da die Funktion mit "*" wohl einen Pointer zurückgibt, muss auch das Ziel als Pointer angegeben werden:
D Handle *
der Aufruf dann einfach:
Handle = ItCreate('TAB1': 20: 2: 0);
Wichtig ist ggf. noch, ob es bei anderen Funktionen zur Verwendung des Handles kommt. In diesem Fall ist der Pointer auch als "value" zu übergeben, sonst wird die Adresse des Pointers verwendet:
DFunction PR * EXTPROC('Function')
D PARM1 * value
PS:
Parameter als Value bzw. Const können beim Aufruf direkt angegeben werden und bedürfen keiner Hilfsvariablen. Das macht die Sache dann leichter lesbar.
-
Danke Euch, das erklärt Einiges. Dann werde ich mir anhand des Links für die andern API's die Parameter RPG konform umschreiben.
Wäre natürlich schöner wenn es da eine passende Beschreibung für die System i API's gäbe.
Similar Threads
-
By Wuntvor in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 06-07-06, 21:22
-
By sim in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 30-08-04, 07:30
-
By Kirsten Steer in forum Archiv NEWSblibs
Antworten: 0
Letzter Beitrag: 02-06-04, 14:28
-
By Kirsten Steer in forum NEWSboard SAP
Antworten: 0
Letzter Beitrag: 02-06-04, 07:58
-
By vogeste0 in forum NEWSboard SAP
Antworten: 4
Letzter Beitrag: 15-04-02, 08:56
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks