PDA

View Full Version : Webservice über PHP aus einer COBOL Anwendung



Seiten : 1 2 [3] 4 5 6

andreaspr@aon.at
04-04-12, 09:59
Wenn ich deine Aufgabenstellung richtig verstanden habe, willst du ja ein bestehendes WebService aufrufen und keinen WebService erstellen oder??

nico1964
04-04-12, 10:02
Wenn ich deine Aufgabenstellung richtig verstanden habe, willst du ja ein bestehendes WebService aufrufen und keinen WebService erstellen oder??
Ich will nur aufrufen mit nnn parametern und bekomme dann entweder einen wert zw. 0,0000 und 1,000 oder ist möglich oder nicht möglich zurück. Dann soll mein COBOL entscheiden was es weiter unternimmt.

nico1964
04-04-12, 10:05
Wenn ich deine Aufgabenstellung richtig verstanden habe, willst du ja ein bestehendes WebService aufrufen und keinen WebService erstellen oder??
bin da drüber gestolpert
c - How do I call a web service from iSeries COBOL? - Stack Overflow (http://stackoverflow.com/questions/8568679/how-do-i-call-a-web-service-from-iseries-cobol)
und drum mein letztes posting

Fuerchau
04-04-12, 11:53
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.

nico1964
04-04-12, 12:00
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 :rolleyes: der mir so ein Script zur Verfügung stellen kann.
Sonst muss ich es halt alleine versuchen.

nico1964
18-04-12, 11:21
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.

Fuerchau
18-04-12, 12:46
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.

Pikachu
18-04-12, 13:11
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

nico1964
23-04-12, 07:26
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.

nico1964
23-04-12, 10:00
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.