-
Webservice über PHP aus einer COBOL Anwendung
Hallo,
vergangenen Freitag wurde folgende Aufgabenstellung an mich herangetragen:
Aus einer COBOL-Anwendung soll ein PHP mit n Parametern aufgerufen werden, das sich dann mit diesen Parametern mit einem WEB-Service verbindet und von diesem eine Antwort erhält, welche wieder in das COBOL-PGM muss.
Habe keine Erfahrung mit PHP und soll das asap lösen können. Für jeden Denkanstoss bzw. Links zu Literatur oder einfaches Beispiel wäre ich dankbar.
LG
Andreas
Ein AS/400 Dinosaurier since 1989
-
Der Aufgabensteller gehört erschlagen .
PHP ist eine Scriptsprache, die auf einem Web-Server läuft.
Du müsstest also per Socket-API (und das ist schon nicht einfach) einen Web-Service aufrufen der das PHP-Script startet, das wiederum einen Web-Service aufruft und dir anschließend das Ergebnis zurückliefert.
Da wäre es gleich besser, per Socket den Web-Service direkt abzufragen.
Alternativ könnte ein vorgestartetes PHP-Script (und da weiß ich nicht, ob das überhaupt geht) auf deinem WEB-Server (auf der AS/400) auf einer DTAQ lauern, von deinem COBOL per QSNDDTAQ den Auftrag erhalten und über eine 2. DTAQ (per QRCVDTAQ) das Ergebnis zurückliefern.
Hierbei ist zu beachten, dass ggf. ja mehrere parallele Abfragen laufen könnten und somit ein Keyed-DTAQ mit z.B. JobNr. als Key zu verwenden wäre.
Ein Direktaufruf von PHP ohne eine Serverinstanz (z.B. Zend) wird wohl nicht möglich sein.
-
Hallo,
danke für die Antwort. Zend Server wurde bei uns auf Anordnung meiner Chefs bereits installiert und daher würde ich gerne einen Weg finden, wie ich das direkt über die AS400 handeln kann.
Andreas
Ein AS/400 Dinosaurier since 1989
-
Weitere Alternative: das Cobol-Programm ruft ein RPGLE-Programm auf welches den Web-Service-Request ausführt - nativ, ohne PHP, ohne Zend-Server...
HTTP API
http://www.scottklement.com/presenta...%20HTTPAPI.pdf
-
 Zitat von RobertMack
Hallo,
das ist für mich leider der letzte Ausweg, da ich der Dinosaurierer auf der AS400 bei uns bin und meine Chefs aus der sogenannten neuen Welt stammen. Daher bevorzugen Sie bei uns die PHP Geschichte, auch wenn keiner von uns Erfahrung damit hat
Andreas
Ein AS/400 Dinosaurier since 1989
-
Soweit ich das gesehen habe, gibt es keine Möglichkeit direkt auf den Zend-Server zuzugreifen.
Mann kann zwar mit den i5-Klassen (Zusatzlibrary) auf AS/400-Objekte zugreifen aber umgekehrt geht das nicht (ist ja auch eigentlich nicht die Absicht).
Die Dokumentation von Zend weist auf "AutoLoader" hin, mit dem man wohl PHP-Scripts direkt vorab laden kann.
In wie weit diese in eigenen Threads/Jobs laufen können ohne den Zendcore zu behindern weiß ich nicht, muss man wohl mal nachlesen.
Wenn dann das Batch-Script läuft, kannst du per i5-Funktion auf DTAQ's zugreifen und eine Kommunikation aufbauen.
Eine andere Chance sehe ich nicht.
-
Ein PHP-Script kannst du ganz einfach über die QSH aufrufen.
Code:
/usr/local/Zend/Core/bin/php -f /home/mein_script.php
Wenn du Parameter an das Script übergeben möchtest schaut das dann so aus:
Code:
/usr/local/Zend/Core/bin/php -f /home/mein_script.php "erster Wert" "das ist jetzt der zweite Wert"
In PHP sind dann diese Parameter in der globalen Variable (Array) $argv.
Einen "Returnvalue" gibt es jedoch nicht. Da musst du dann schaun, wie weiter arbeitest. Du könntest z.B. in PHP ein Cobol-Programm mit Parameter aufrufen, dass die Verarbeitung weiter führt.
-
 Zitat von andreaspr@aon.at
Ein PHP-Script kannst du ganz einfach über die QSH aufrufen.
Code:
/usr/local/Zend/Core/bin/php -f /home/mein_script.php
Wenn du Parameter an das Script übergeben möchtest schaut das dann so aus:
Code:
/usr/local/Zend/Core/bin/php -f /home/mein_script.php "erster Wert" "das ist jetzt der zweite Wert"
In PHP sind dann diese Parameter in der globalen Variable (Array) $argv.
Einen "Returnvalue" gibt es jedoch nicht. Da musst du dann schaun, wie weiter arbeitest. Du könntest z.B. in PHP ein Cobol-Programm mit Parameter aufrufen, dass die Verarbeitung weiter führt.
Das ist dann mein größeres Problem, da ich das ganze aus einer Onlineanwendung aufrufen muss(Vertragsanlage) und ich brauche den Returnvalue für die weiter Vorgehensweise im Online-PGM für Abbruch oder weitermachen
Andreas
Ein AS/400 Dinosaurier since 1989
-
Wenn das dann so einfach ist, geht auch die Rückgabe per STDOUT.
Per PHP gibt es sicherlich die Möglichkeit, auf STDOUT was auszugeben (Echo o.ä.).
STDOUT kann per OVRDBF in eine PF umgeleitet werden, diese kann man dann natürlich einlsen.
-
 Zitat von nico1964
Das ist dann mein größeres Problem, da ich das ganze aus einer Onlineanwendung aufrufen muss(Vertragsanlage) und ich brauche den Returnvalue für die weiter Vorgehensweise im Online-PGM für Abbruch oder weitermachen
Das geht ja um viele Ecken. Wie sollen denn die genauen Aufrufwege sein?
-
 Zitat von Pikachu
Das geht ja um viele Ecken. Wie sollen denn die genauen Aufrufwege sein?
1. COBOL -PGM Vertragsanlage online
2. im CHECK des DSPF Aufruf des PHP mit n Parametern
3. PHP verbindet sich mit WebService und erhält eine Antwort
4. Antwort zurück in COBOL anwendung
5. Cobol weitermachen oder nicht....
Andreas
Ein AS/400 Dinosaurier since 1989
-
Dann hast du ja jetzt alles was du brauchst, allerdings so ganz ohne CLP wird es wohl nicht gehen (weil das einfacher ist).
Du kannst natürlich alles per
77 MyCmd pic x(1000).
77 MyCmdLen pic s9(10)V9(5) comp-3 value 1000.
CALL "QCMDEXC" using MyCmd MyCmdLen
In MyCmd musst du dann die Kommandos per "String ... " zusammenschustern.
string "OVRDBF ..." into MyCmd
call "QCMDEXC" ...
string "/usr/... """ delimited by size
Parm1 delimitd by space
""" """ delimited by size
Parm2 delimitd by space
"""" delimited by size
into MyCmd
call "QCMDEXC" ...
open Input MyStdout
...
close MyStdout
Similar Threads
-
By Hellena Smejda in forum Archiv NEWSblibs
Antworten: 0
Letzter Beitrag: 22-04-11, 05:20
-
By Xanas in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 12-01-07, 07:32
-
By schatte in forum NEWSboard Programmierung
Antworten: 19
Letzter Beitrag: 10-01-07, 11:32
-
By Xanas in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 13-12-06, 13:38
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks