[NEWSboard IBMi Forum]

Thema: SAP API's

  1. #1
    Registriert seit
    Nov 2008
    Beiträge
    11

    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.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Nov 2008
    Beiträge
    11
    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.



  4. #4
    Registriert seit
    Nov 2003
    Beiträge
    2.307

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Nov 2008
    Beiträge
    11
    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

  1. SAP und i-series
    By Wuntvor in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 06-07-06, 21:22
  2. SQL CLI Apis: Datenbankverindung trennen
    By sim in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 30-08-04, 07:30
  3. Hyperion unterstützt SAP Solutions und SAP Netweaver
    By Kirsten Steer in forum Archiv NEWSblibs
    Antworten: 0
    Letzter Beitrag: 02-06-04, 14:28
  4. Antworten: 0
    Letzter Beitrag: 02-06-04, 07:58
  5. SAP auf der iSeries/400
    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
  •