[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2006
    Beiträge
    195

    Web Service consumieren

    Hallo * all,

    ich habe eine wsdl-Datei bekommen und muss darüber webservice ansprechen. Das Programm habe ich fertig aber wo soll ich die IP -Adresse von dem WebService eintragen ?

    Danke

  2. #2
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Hallo svit,
    ich weiß nicht, ob ich deine Frage richtig verstanden habe. Du musst zum konsumieren des Webservice eine entsprechende url aufrufen. Um das in RPG machen zu können, musst du eine API benutzen, die dir die HTTP-Kommunikation erlaubt.

    Wir nutzen da eine Lib, die Scott Klement zur Verfügung stellt.

    Der Code für das Konsumieren sieht bei uns dann ungefähr so aus:
    Code:
    url = 'http://hallo.dv.local:8090+
                      /ProxyService/ProxyService.svc';
    
    
           SOAP =
           ' +
               +
                 +
                  ' + %trim(P#_Service) + ' +
                  '  + P#_SrvParm + ' +
                  BVS +
                  Xbba39 +
                 +
               +
            ';
    
    
           HTTP_setCCSIDs(1208: 0);  // CCSID 1208 = UTF-8
    
    
           rc = http_url_post_xml(url
                             : %addr(SOAP) + 2
                             : %len(SOAP)
                             : *NULL
                             : %paddr(Incoming)
                             : %addr(String)
                             : P#_TimeOut
                             : HTTP_USERAGENT
                             : 'text/xml; charset=utf-8'
                             : G#SoapAction);
    
           if (rc <> 1);
              P#SCode = Nein;
              P#_Result = 'ReturnCode(9999 Web-Service funktioniert nicht)';
           else;
              P#SCode = Ja;
              P#_Result = String;
           endif;
    Dieter

  3. #3
    Registriert seit
    May 2006
    Beiträge
    195
    Hallo Dieter,

    ist es nicht so, dass ab 6.1 man ohne API auskommen kann?

  4. #4
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Ich wüsste nicht, welche RPG Befehle es gibt, die das können. Möglicherweise gibt es eine Möglichkeit über embedded SQL. Das weiß ich im Moment aber nicht.

    Dieter

  5. #5
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Wir haben das mit APIs gemacht, Hier der Link zu Scott Klements Seite:
    http://www.scottklement.com/presentations

  6. #6
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Hier ist noch ein interessantes Handbuch über den IBM Integrated Webservice Server. Möglicherweise geht das damit einfacher.
    http://www-03.ibm.com/systems/resour...Client_new.pdf

  7. #7
    Registriert seit
    May 2006
    Beiträge
    195
    ich habe aus WSDL durch QSH- Befehl:
    wsdl2ws.sh -o/xxxx/getxxx
    -lrpg
    -s/qsys.lib/meilib.lib/getxxx.srvpgm
    file:///home/Webservice/xxxService.wsdl
    eine SRVPGM erstellt
    dann ein Bindeverzeichniss mit QAXIS10CC angelegt. und in das Programm eingebunden.

    im Programm habe ich sofort alle Methoden zur Verfügung:

    SQl - bla-bla......



    if stub_create_IxxxImportTourService(WSStub); WsRequest.Importxxx_Ref.array = SQLBuffer;
    if stub_op_Import(WSStub:WsRequest:WsResponse);
    else ;
    dsply 'Fehler: CSMTOUR' 'QSYSOPR';
    endif;
    stub_destroy_IxxxService(WSStub);
    endif ;

    Wenn ich das richtig verstehe muss ich nur die richtige IP Adresse irgendwo eintragen und dann soll alles funktionieren.
    Eventuell bei der SRVPRG Erstellung:
    wsdl2ws.sh -o/xxxx/getxxx
    -lrpg
    -s/qsys.lib/meilib.lib/getxxx.srvpgm
    HTTP://IP-Adresse:Port/Webservice/xxxService.wsdl

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Du kannst Dir auch mal den folgenden Artikel anschauen:
    Invoking web services using RPG proxy

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  9. #9
    Registriert seit
    May 2002
    Beiträge
    1.121
    Wenn icn mal nach anderen Beispielen im Netz gehe,
    dann müsstte in WSStub.endpoint deine URL rein.
    Und wenn es Blank ist, dann sollte die adresse in der WSDL selber stehen

    Gruß
    Ronald

Similar Threads

  1. Call Programm vs. Service-PGM
    By malzusrex in forum NEWSboard Programmierung
    Antworten: 17
    Letzter Beitrag: 15-11-13, 11:21
  2. AS/400 Service Functions
    By MKnoll in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 19-11-02, 15:21
  3. Click, See - Get Service von ORBIS
    By Kirsten Steer in forum Archiv NEWSblibs
    Antworten: 0
    Letzter Beitrag: 06-06-02, 09:27
  4. Service Direktor
    By MichaZ in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 06-08-01, 21:54
  5. IBM Service Suite
    By tomski in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 14-12-00, 21:16

Berechtigungen

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