-
Java Programm aus ILE RPG aufrufen
Hallo,
ich habe folgendes Problem:
Habe ein ILE RPG Programm geschrieben, welches einen Java XML Parser mit dem Dateipfad als Parameter aufruft.
Das Java Programm liest das XML Dokument in ein Array ein und soll es dem ILE RPG Programm zurückliefern, damit ich den Inhalt weiterverarbeiten kann.
Mein Problem daran ist wie definiere ich den Prototypen für das Java Programm(wegen Array) und wie ist dann der Aufruf?
Habe schon verzweifelt in Dokus gesucht aber nichts gefunden.
Könnte mir jemand weiterhelfen?? oder ein Beispiel Posten??
Vielen Dank
-
Hallo,
sowas mache ich zwar nicht, Java aus RPG über JNI aufrufen und rate auch davon ab, aber das mit dem Array, das wird wohl nix werden, das müsste ja in dem RPG dann dynamisch deklariert und verwaltet werden und ob das geht, das bezweifel ich eher.
Das müsste man wohl über eine Objekt Deklaration und weiter Aufrufe machen; aber was soll das ganze eigentlich? Damit bist du doch genauso weit wie vorher und das zerlegen in Zeilen kriegt man eher in RPG hin, als das analysieren des XML. Was hast du denn wirklich vor?
mfg
Dieter Bender
Zitat von PGMR
Hallo,
ich habe folgendes Problem:
Habe ein ILE RPG Programm geschrieben, welches einen Java XML Parser mit dem Dateipfad als Parameter aufruft.
Das Java Programm liest das XML Dokument in ein Array ein und soll es dem ILE RPG Programm zurückliefern, damit ich den Inhalt weiterverarbeiten kann.
Mein Problem daran ist wie definiere ich den Prototypen für das Java Programm(wegen Array) und wie ist dann der Aufruf?
Habe schon verzweifelt in Dokus gesucht aber nichts gefunden.
Könnte mir jemand weiterhelfen?? oder ein Beispiel Posten??
Vielen Dank
-
Zitat von BenderD
Hallo,
sowas mache ich zwar nicht, Java aus RPG über JNI aufrufen und rate auch davon ab, aber das mit dem Array, das wird wohl nix werden, das müsste ja in dem RPG dann dynamisch deklariert und verwaltet werden und ob das geht, das bezweifel ich eher.
Das müsste man wohl über eine Objekt Deklaration und weiter Aufrufe machen; aber was soll das ganze eigentlich? Damit bist du doch genauso weit wie vorher und das zerlegen in Zeilen kriegt man eher in RPG hin, als das analysieren des XML. Was hast du denn wirklich vor?
mfg
Dieter Bender
Hallo,
eigentlich habe ich nichts weiter vor als ne XML Datei aus dem IFS einzulesen.
Problem ist das in der ankommende XML-Datei- die Tags so gestaltet sind, dass die alle in einer Zeile stehen und für CPYTOSTMF die Zeile zu lang ist.
Hättest du noch ne andere Idee?
-
Hallo,
Zitat von PGMR
Hallo,
eigentlich habe ich nichts weiter vor als ne XML Datei aus dem IFS einzulesen.
Problem ist das in der ankommende XML-Datei- die Tags so gestaltet sind, dass die alle in einer Zeile stehen und für CPYTOSTMF die Zeile zu lang ist.
Hättest du noch ne andere Idee?
nein, mehrere:
- was hältst du von CPYFRMSTMF ENDLINFMT(*FIXED)
- oder von lesen des Streamfiles mit C-Apis aus RPG (dazu gabs letztes Jahr Artikel von mir im Midrange Magazin und gibt es Service Programme auf meiner Open Source Seite und bei Thomas auf der tools400 ebenso)
- wie wärs mit dem XML Parser API (siehe ebenfalls bei Thomas Raddatz)
- ...
allerdings würde ich auch mal drüber nachdenken, was passiert, wenn das XML irgendwo Schrott ist!!!
mfg
Dieter Bender
-
Hallo PGMR,
kann Hr. Bender nur zustimmen.
versuchs mal mit den C-APIs, funktioniert wunderbar.
Bei uns läuft in bestimmten Bereichen der Datenaustausch
auch per XML Dateien. Das einlesen bzw ausgeben ist
mit den C APIs kein Problem.
Und schon ist die Mietze am fliegen.
(ups, war ja ein Spruch von nem JAVA Dozenten)
-
Zitat von sim
Hallo PGMR,
kann Hr. Bender nur zustimmen.
versuchs mal mit den C-APIs, funktioniert wunderbar.
Bei uns läuft in bestimmten Bereichen der Datenaustausch
auch per XML Dateien. Das einlesen bzw ausgeben ist
mit den C APIs kein Problem.
Und schon ist die Mietze am fliegen.
(ups, war ja ein Spruch von nem JAVA Dozenten)
Mit den C APIs habe ich es auch schon probiert, hat auch funktioniert bin leider nach längerem Experimentieren daran gescheitert, das sie Umlaute nicht umgesetzt werden(auch wenn ich CCSID angebe.
Ich werde mich mal mit den Service Programmen von tools400 beschäftigen...
-
Hi,
poste mal deine Parameter vom open, irgendwas machst du da verkehrt
Dieter Bender
Zitat von PGMR
Mit den C APIs habe ich es auch schon probiert, hat auch funktioniert bin leider nach längerem Experimentieren daran gescheitert, das sie Umlaute nicht umgesetzt werden(auch wenn ich CCSID angebe.
Ich werde mich mal mit den Service Programmen von tools400 beschäftigen...
-
-
Zitat von PGMR
Mit den C APIs habe ich es auch schon probiert, hat auch funktioniert bin leider nach längerem Experimentieren daran gescheitert, das sie Umlaute nicht umgesetzt werden(auch wenn ich CCSID angebe.
Ich werde mich mal mit den Service Programmen von tools400 beschäftigen...
Hallo PGMR,
hier hab ich mal ein kleines Beispiel wie du die Umsetzung machen kannst. Wie gesagt, wir machen auch XML Ein und Ausgabe und es funktioniert ohne Probleme.
// Von EBCEDIC nach ANSI (Windows) umwandeln
// ohne Euro Zeichen
...
...
when zeichensatz = 'EbAn';
UmgesetzteDaten =
qdcxlate (anzBytes : daten : 'Q273A05A5U' : 'QUSRSYS' );
// Euro Zeichen umsetzen
daten = %xlate(x'C7':x'80':daten);
...
...
sim
-
Hallo,
Zitat von PGMR
* //Open File! If error, FileOpen return '-1'
c eval File = %trim(pFileName) + x'00'
c eval ofl=O_RDONLY+O_TEXTDATA
c eval mode = S_IRUSR
c eval codep = 273
c eval FileOpen = open(%add
(File penflags
c :mode:codepage)
c eval FileOpen = open(%addr(File) fl)
Kannst du den Fehler erkennen??
der erste open sollte klappen, der zweite geht wohl in den Wind, weil das File schon open ist (denke ich mir), wenn die CCSID der Datei korrekt ist, dann wird ohne Angabe geöffnet, was bei Textdata automatisch konvertiert.
Mit anderen Worten: prüfe ob der Inhalt der Konstanten O_RDONLY und O_TXTDATA richtig ist und lass den ersten open weg.
mfg
Dieter Bender
-
Das kann der read bereits selber, da ist wahrscheinlich auch der open verkehrt. Beim erstellen kann es noch sein, dass die korrekte CCSID vergeben werden muss, wenn da gemapte Laufwerke im Spiel sind. Die CCSID für Windows sollte hier irgendwo im AS400 Forum zu finden sein.
mfg
Dieter Bender
Zitat von sim
Hallo PGMR,
hier hab ich mal ein kleines Beispiel wie du die Umsetzung machen kannst. Wie gesagt, wir machen auch XML Ein und Ausgabe und es funktioniert ohne Probleme.
// Von EBCEDIC nach ANSI (Windows) umwandeln
// ohne Euro Zeichen
...
...
when zeichensatz = 'EbAn';
UmgesetzteDaten =
qdcxlate (anzBytes : daten : 'Q273A05A5U' : 'QUSRSYS' );
// Euro Zeichen umsetzen
daten = %xlate(x'C7':x'80':daten);
...
...
sim
Similar Threads
-
By Vicky-B in forum NEWSboard Java
Antworten: 17
Letzter Beitrag: 06-05-08, 11:05
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By pfpk0997 in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 15-11-06, 09:40
-
By PGMR in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 02-02-05, 13:10
-
By alex in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 06-08-02, 07:13
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