[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jun 2004
    Beiträge
    46

    RPG aus Java aufrufen

    Hallo zusammen,

    gibt es eine Möglichkeit aus Java ServiceProgramme bzw. Module aufzurufen??

    Danke
    LG
    Vicky

  2. #2
    Registriert seit
    Dec 2002
    Beiträge
    301
    Über die Toolbox für Java. Hier der Link.

    http://publib.boulder.ibm.com/infoce...hh/spgcall.htm
    Frank Hildebrandt

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Allerdings können nur Programme (OPM/ILE) und keine Service-Programme oder Module aufgerufen werden.
    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

  4. #4
    Registriert seit
    Dec 2002
    Beiträge
    301
    Die Klasse bei meinem ersten Posting erlaubt auch den Zugriff auf Serviceprogramme. Alternativ kann man noch über PCML den Aufruf steuern. Die Klasse hierfür befindet sich auch in der Toolbox. Hier der Link. http://publib.boulder.ibm.com/infoce...rzahh/pcml.htm
    Frank Hildebrandt

  5. #5
    Registriert seit
    Dec 2002
    Beiträge
    301
    Noch ein kleiner Hinweis. Wenn man beim Befehl CRTBNDRPG bzw. CRTRPGMOD den Parameter PGMINFO(*PCML) angibt, dann kann man sich das PCML-Dokument generieren lassen, welches die Parameterliste des Programms/Serviceprograms beschreibt. Da spart man sich eine Menge Arbeit.
    Frank Hildebrandt

  6. #6
    Registriert seit
    Jun 2004
    Beiträge
    46
    Danke für die Tipps....

    ich habe nun folgenes Problem:

    Code:
     
    ....
    ServiceProgramCall sPGMCall=
    new ServiceProgramCall(system, "QSYS/BASOBJSTD/SPE01S", parameterList);
    
    sPGMCall.setProcedureName("SPE01N02");
    ...
    Wenn ich das Programm ausführe bekomme ich folgende Fehlermeldung:
    Code:
     
    
    com.ibm.as400.access.IllegalPathNameException: QSYS/BASOBJSTD/SPE01S: Object not in QSYS file system.
    
    at com.ibm.as400.access.QSYSObjectPathName.parse(QSYSObjectPathName.java:879)

    Serviceprogramm . . . . . . . . . . . . : SPE01S
    Bibliothek . . . . . . . . . . . . . . : BASOBJSTD
    Eigner . . . . . . . . . . . . . . . . . : BASPGMR
    Serviceprogrammattribut . . . . . . . . : RPGLE
    Detail . . . . . . . . . . . . . . . . . : *BASIC



    Wo liegt mein Problem??

    Danke Euch!

    Vicky

  7. #7
    Registriert seit
    Dec 2002
    Beiträge
    301
    Der Pfadname ist falsch. Versuch den mal.
    QSYS.LIB/BASOBJSTD.LIB/SPE01S.SRVPGM
    Frank Hildebrandt

  8. #8
    Registriert seit
    Jun 2004
    Beiträge
    46
    super danke für den Tip:

    Code:
    /QSYS.LIB/BASOBJSTD.LIB/SPE01S.SRVPGM
    Hab noch ne Frage :-) Beim Ausführen bekomme ich ne fehlermeldung (Dezimalfehler). Gibts ne Möglichkeit dass man etwas mehr an Infos bekommt??

    Code:
    System.out.println(messageList[i].getText());

  9. #9
    Registriert seit
    Dec 2002
    Beiträge
    301
    Dann hast Du die auszutauschenden Parameter nicht richtig konvertiert. Unter dem folgenden Link befindet sich die Rubrik
    "Data conversion and description". Da wird alles erklärt.

    http://publib.boulder.ibm.com/infoce...hh/spgcall.htm
    Frank Hildebrandt

  10. #10
    Registriert seit
    Jun 2004
    Beiträge
    46
    hab was neues!!!

    Code:
    Zeiger für angegebene Position nicht gesetzt.
    Wie komme ich an mehr Infos und etwas detaillierte Fehlermeldung

  11. #11
    Registriert seit
    Dec 2002
    Beiträge
    301
    Noch mehr Infos? Die Meldungen, die Du bis jetzt gepostet hast deuten klar auf Probleme bei der Übergabe der Parameter hin. Ich schlage vor, Du postest den Teil aus Deinem Java Programm, der für den Aufruf des Serviceprogramms zuständig ist, inklusive der Aufbereitung der Parameter und zusätzlich noch die Beschreibung der Prozedurenschnittstelle der Prozedur des Serviceprogramms, welche Du aufrufst. Dann kann man sicher mehr sagen.
    Frank Hildebrandt

  12. #12
    Registriert seit
    Jun 2004
    Beiträge
    46
    In RPG wird das Service-Programm folgendermassen aufgerufen:

    Code:
    SPE01N01(RC:SRDNR:SRNR)
    RC=Rückcode (0 wenn alles OK is, 1 Fehler)
    SRDNR und SRNR sind gepackte Zahlen

    Code:
    AS400Bin4 bin4Converter = new AS400Bin4();
    
            
            ProgramParameter[] parameterList=new ProgramParameter[3];
            parameterList[0]=new ProgramParameter(bin4Converter.toBytes(0));
            parameterList[1]=new ProgramParameter(bin4Converter.toBytes(400));
            parameterList[2]=new ProgramParameter(bin4Converter.toBytes(10002575));
            AS400 system=new AS400("xxx");
            system.setUserId("xxx");
            system.setPassword("xxx");
            ServiceProgramCall sPGMCall=new ServiceProgramCall(system, "/QSYS.LIB/BASOBJSTD.LIB/SPE01S.SRVPGM", parameterList);
            sPGMCall.setProcedureName("SPE01N01");
                
            
                if (sPGMCall.run() != true){
                    AS400Message[] messageList = sPGMCall.getMessageList();
                    for (int i = 0; i < messageList.length; ++i){    
                        System.out.println(messageList[i].getText());
                    }
                }
    Was ich noch nicht ganz verstehe ist folg:
    Code:
    sPGMCall.setReturnValueFormat(ServiceProgramCall.RETURN_INTEGER);
    Es gibt nur Integer und void. Wie ist es wenn ich eine Zeichenkette, einen Datumswert oder eine Dezimalzahl zurückbekomemn soll??

    LG
    Vicky

Similar Threads

  1. ILE RPG aus Stored Procdure aufrufen
    By pfpk0997 in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 15-11-06, 09:40
  2. Rpg to java
    By Badener in forum NEWSboard Java
    Antworten: 5
    Letzter Beitrag: 13-07-06, 17:09
  3. Aufruf von Java Methode aus RPG
    By codierknecht in forum NEWSboard Java
    Antworten: 7
    Letzter Beitrag: 23-03-05, 08:31
  4. Java Programm aus ILE RPG aufrufen
    By PGMR in forum NEWSboard Java
    Antworten: 10
    Letzter Beitrag: 10-02-05, 10:33
  5. Java Programm aus ILE RPG aufrufen
    By PGMR in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 02-02-05, 13:10

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •