[NEWSboard IBMi Forum]
Seite 3 von 5 Erste ... 2 3 4 ... Letzte
  1. #25
    Registriert seit
    Dec 2009
    Beiträge
    314
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Hast du denn einen C-Compiler?
    Außerdem weist diese Lösung auf einen direkten Call zum Webservice hin und nicht auf einen Aufruf von PHP.

    Und ob die angegebenen C-Funktionen innerhalb des C-Programmes verfügbar sind muss wohl auch noch geprüft werden.

    Ich denke, PHP ist für dich noch leichter zu erlernen als C/C++.
    Vielleicht kann dir ja einer das PHP-Script zur Verfügung stellen, so dass du nur noch den Aufruf brauchst.
    Den C-Compiler haben wir, aber das macht die Sache nicht einfacher. Vielleicht findet sich ja jemand der mir so ein Script zur Verfügung stellen kann.
    Sonst muss ich es halt alleine versuchen.
    Andreas
    Ein AS/400 Dinosaurier since 1989

  2. #26
    Registriert seit
    Dec 2009
    Beiträge
    314
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Hast du denn einen C-Compiler?
    Außerdem weist diese Lösung auf einen direkten Call zum Webservice hin und nicht auf einen Aufruf von PHP.

    Und ob die angegebenen C-Funktionen innerhalb des C-Programmes verfügbar sind muss wohl auch noch geprüft werden.

    Ich denke, PHP ist für dich noch leichter zu erlernen als C/C++.
    Vielleicht kann dir ja einer das PHP-Script zur Verfügung stellen, so dass du nur noch den Aufruf brauchst.
    Also ich habe jetzt den Weg mit den C-Routinen ausprobiert. Das Ergebnis ist auch schon da, leider nicht lesbar für mich.
    Aufruf --->
    CALL PROCEDURE "get_procedure_stub" USING BY VALUE PSZENDPOINT
    RETURNING INTO STUB

    CALL PROCEDURE "scoringOperation" USING
    BY VALUE STUB
    BY VALUE BONITAET
    RETURNING INTO BONITAETW

    move bonitaetw to bonitaetw1

    Anzeige im Debugger von bonitaetw1-->
    EVAL BONITAETW1
    BONITAETW1 =
    ....5...10...15...20...25...30...35...40...45...50 ...55...60
    1 ' aØ µ BÆåÓ °Ø ­Xè¼ü ç 7Óü '
    61 ' Ø ç h Ø ­Xè¼©Ø '
    121 '­Xè¼ÖØ ­Xè¼½Ø Ep `Ø Ep l '
    181 '  h '
    241 'Ø ­X輩  ­Xè¼ÖØ Dú_¯3YØ Dú_¯'
    301 '3YøØ Dú_¯3Y Ø =}n + '
    361 ' Ø 5Bu)  Ø 1ó-3ë °Ø 1ó-3ë ¢ '
    421 ' Ø 1ó-3ë Ø   '
    481 'SCORETEMP '

    Kann mir das jemand übersetzen, oder auf den richtigen Weg helfen. Ich vermute mal, das hat was mit den Parametern zu tun.
    Andreas
    Ein AS/400 Dinosaurier since 1989

  3. #27
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Ich nehme mal an, die Daten werden in UTF-8-Format übergeben.

    Um eine Umwandlung in UNICODE bzw. SBCS 273 zu erreichen benötigst du nun die C-Routinen iconv().

    Ggf. reicht auch eine Definition von Language-Variablen (den Typ weiß ich im Moment nicht) mit CCSID 1208, die du dann in eine normale X-Variable überträgst.
    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. #28
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Probier mal innerhalb vom STRDBG:

    F1=Hilfe und dann weiter zu "eval".

    und von den dort angegebenen Möglichkeiten dann mal:

    EVAL variable :u 100

    oder

    EVAL variable :w 100

  5. #29
    Registriert seit
    Dec 2009
    Beiträge
    314
    So am Freitag habe ich es endlich geschafft. Mit den C-Procedures funtkioniert das tadellos, wenn man weiß wie man damit umgehen muss. Richtig Übergabe der Parameter und schon funktiert der ganze Haufen.
    Andreas
    Ein AS/400 Dinosaurier since 1989

  6. #30
    Registriert seit
    Dec 2009
    Beiträge
    314
    Zitat Zitat von nico1964 Beitrag anzeigen
    So am Freitag habe ich es endlich geschafft. Mit den C-Procedures funtkioniert das tadellos, wenn man weiß wie man damit umgehen muss. Richtig Übergabe der Parameter und schon funktiert der ganze Haufen.
    Jetzt habe ich nur mehr ein kleineres Problem, wo ich mangels C-Kenntnissen scheitere.

    Ich muss an die C-Funktion folgendes überbgeben:

    01 BONITAET.
    05 QUELLSYSTEM PIC X(03).
    05 FILLER PIC X VALUE X'00'.
    05 ANTRAGSNUMMER PIC X(10).
    05 FILLER PIC X VALUE X'00'.
    05 ANTRAGSTYP PIC X(07).
    05 FILLER PIC X VALUE X'00'.
    05 GVK-NUMMER PIC X(08).
    05 FILLER PIC X VALUE X'00'.
    05 KUND-TAB.
    10 KUNDENNR PIC X(10).
    10 FILLER PIC X VALUE X'00'.
    10 KUNDESEIT PIC X(10).
    10 FILLER PIC X VALUE X'00'.
    10 KUNDENTYP PIC X.
    10 FILLER PIC X VALUE X'00'.
    ..
    ..
    ..
    10 UWRBONITAET-TAB.
    15 UWRPD PIC 9V9(8) COMP-4.
    15 FILLER PIC X VALUE X'00'.
    15 UWRSCORE PIC 9(10) COMP-4.
    15 FILLER PIC X VALUE X'00'.
    15 UWRRATING PIC X(02).
    15 FILLER PIC X VALUE X'00'.
    15 UWRRATTYP PIC X(02).
    15 FILLER PIC X VALUE X'00'.
    15 UWRRATMOD PIC X(04).
    15 FILLER PIC X VALUE X'00'.
    15 UWRRATMODV PIC X(05).
    15 FILLER PIC X VALUE X'00'.
    15 UWRRATDAT PIC X(10).
    15 FILLER PIC X VALUE X'00'.
    Meine Frage ist, wie bastle ich den Aufruf.
    Andreas
    Ein AS/400 Dinosaurier since 1989

  7. #31
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Dazu müsstest du auch mal die C-Funktion posten.
    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

  8. #32
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Du mußt vermutlich jeden Parameter einzeln übergeben und deshalb den jeweiligen Wert und sein abschließendes NULL-Zeichen zusammenfassen. Probier's mal so:

    ...
    04 QUELLSYSTEM-NULL.
    05 QUELLSYSTEM PIC X(03).
    05 FILLER PIC X VALUE X'00'.

    04 ANTRAGSNUMMER-NULL.
    05 ANTRAGSNUMMER PIC X(10).
    05 FILLER PIC X VALUE X'00'.

    04 ANTRAGSTYP-NULL.
    05 ANTRAGSTYP PIC X(07).
    05 FILLER PIC X VALUE X'00'.
    ...

    CALL ...
    USING
    QUELLSYSTEM-NULL
    ANTRAGSNUMMER-NULL
    ANTRAGSTYP-NULL
    ...

  9. #33
    Registriert seit
    Dec 2009
    Beiträge
    314
    Das ist ja mein Problem, die C-procedure erwartet einen Paramert mit PIC X Value '00' getrennt. Das funktioniert auch bis zur
    05 KUND-TAB.
    Wie gebe ich die an????? In der C-procedure wird ein ARRAY erwartet, welches wieder durch PIC X Value '00' getrennt ist.
    Andreas
    Ein AS/400 Dinosaurier since 1989

  10. #34
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Zeig uns mal die Parameterdefinition dieser C-Prozedur.

  11. #35
    Registriert seit
    Dec 2009
    Beiträge
    314
    Zitat Zitat von Pikachu Beitrag anzeigen
    Zeig uns mal die Parameterdefinition dieser C-Prozedur.
    Das hört sich einfacher an, als es der Fall ist. Ich habe ein elendlanges .wsdl, aus dem dann die einzelnen C-procedures genieriert wurden. Aufgerufen, wird dann die Hauptfunktion, der ich alle Parameter übergeben soll.
    Und dann soll ich einen maximal 5 Parameter zurückbekommen.
    Andreas
    Ein AS/400 Dinosaurier since 1989

  12. #36
    Registriert seit
    Dec 2009
    Beiträge
    314
    Zitat Zitat von Pikachu Beitrag anzeigen
    Zeig uns mal die Parameterdefinition dieser C-Prozedur.
    Aber ich versuche das mal

    Der erste Aufruf:

    typedef struct BonitaetRequestTypeTag {
    quellsystemType quellsystem;
    xsdc__string quellsystemAntragsnummer;
    antragstypType antragstyp;
    xsdc__string gvKNummer;
    kundeRqType_Array* kundeRq;
    } BonitaetRequestType;

    Aufruf darin kundeRqType

    typedef struct kundeRqTypeTag {
    xsdc__string kundennummer;
    xsdc__long* kundeSeit;
    kundentypType kundentyp;
    xsdc__string strasse;
    xsdc__string plz;
    xsdc__string hausnummer;
    xsdc__string land;
    xsdc__string ort;
    kreditfaehigkeitType kreditfaehigkeit;
    xsdc__date* kreditfaehigkeitDatum;
    mahnstufeType mahnstufeAktuell;
    mahnstufeType mahnstufeHoechste;
    xsdc__date* mahnstufeHoechsteDatum;
    bonitaetType* uwrBonitaet;
    bonitaetType* saBonitaet;
    bonitaetType* gwbBonitaet;
    bonitaetType* externalBonitaet;
    xsdc__string gvKRatingverbundKundennummer;
    xsdc__double* gvKRatingverbundGewicht;
    kompetenzUWRType kompetenzUWR;
    personRqType* person;
    firmaRqType* firma;
    vertragRqType_Array* vertragRq;
    } kundeRqType;
    und darin dann wieder einzelne Aufrufe.

    Wie gesagt, diesen Aufruf schaffe ich noch-->
    Call Procedure Bonitaet
    quellsystemType quellsystem;
    xsdc__string quellsystemAntragsnummer;
    antragstypType antragstyp;
    xsdc__string gvKNummer;
    Aber wenn ich die nächsten Parameter mitschicken will, habe ich ein Problem.
    Und das ganze noch aus COBOL und nicht RPG
    Andreas
    Ein AS/400 Dinosaurier since 1989

Similar Threads

  1. v4 of PHP Toolkit can be downloaded from AURA
    By Hellena Smejda in forum Archiv NEWSblibs
    Antworten: 0
    Letzter Beitrag: 22-04-11, 05:20
  2. Dekleration Cobol <-> RPG
    By Xanas in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 12-01-07, 07:32
  3. Programmbibliothek in einem Cobol oder CL Programm ermitteln
    By schatte in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 10-01-07, 11:32
  4. Cobol <> RPGLE
    By Xanas in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 13-12-06, 13:38
  5. Cobol
    By Uli Müller in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 09-11-06, 09:21

Berechtigungen

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