-
Externe Java Procedur / Parameterübergabe
Hallo,
In meiner neuen Aufgabe muss (darf) ich Java-Classen in RPG-Programm einbinden. Das funktioniert an sich einwandfrei und ist nicht so schwer wie sich anhört, jetzt habe ich aber bei zwei classen folgendes problem: Der kompiler streikt schon mit der meldung *RNF5406 Aufruf hat weniger Parameter übergeben als laut Prototyp erforderlich sind. Die codierung sieht wie folgt aus:
Variablen:
d InputStream s O CLASS(*JAVA
d :'java.io.FileInputStream ')
d POI_FS s O CLASS(*JAVA
d :'org.apache.poi.poifs.filesystem.-
d POIFSFileSystem')
d CurInpStream s like(InputStream)
Procedur:
D new_POI_FS PR like(POI_FS)
d EXTPROC(*JAVA
D :'org.apache.poi.poifs.filesystem.-
D POIFSFileSystem'
D :'*CONSTRUCTOR')
D InpStream like(InputStream)
Und der Aufruf selbst:
CurFs = new_POI_FS(CurInpStream);
Kann mir jemand einen Tip geben?
Vielen Dank
Roman
-
Objekt 1. Parameter
Hallo,
kann es sein, dass mit den JAVA-Methoden Objetke bearbeitet werden müssen?
Wenn ja, muss das entsprechende Objekt zuerst durch Aufruf der Constructor-Methode instantiiert werden.
Abschliessend muss das Objekt als 1.Parameter übergeben werden.
Im Prototyp wird das Objekt allerdings nicht hinterlegt.
Birgitta
-
Hallo Roman,
bei mir sieht das ganze so aus:
Prototypen:
* new POIFSFileSystem (InputStream) - FileSystem CONSTRUCTOR --------
D createfs PR O ExtProc(*JAVA
D :'org.apache.poi.poifs.filesystem-
D .POIFSFileSystem'
D :*CONSTRUCTOR)
D Class(*JAVA
D :'org.apache.poi.poifs.filesystem-
D .POIFSFileSystem')
D inpFile O Class(*JAVA
D :'java.io.InputStream')
* new FileInputStream(String file) - FileInputStream CONSTRUCTOR ----
D FileInputStream...
D PR O ExtProc(*JAVA
D :'java.io.FileInputStream'
D :*CONSTRUCTOR)
D Class(*JAVA
D :'java.io.FileInputStream')
D file O Class(*JAVA:'java.lang.String')
Aufruf:
is = FileInputStream(tfileName);
fs = createfs(is);
Das funktioniert bei mir. Kannst es ja mal mit Deinem Code vergleichen.
Gruß,
KM
-
Da sträubt sich ja alles. Warum Java-Funktionen, wenn es entsprechende C-Funktionen gibt ? Die sind allemal leichter einzubinden und erheblich performanter (der riesige Overhead und die ganze ständige Typumwandlung entfallen dabei).
Diese FileStream-Funktionen deuten für mich auf IFS-Zugriffe hin, die in C-Funktionen wesentlich leichter zu realisieren sind.
-
hallo,
vielen dank, leider kenne ich keine c-funktionen, die excel lesen, verändern und dann ausgeben. falls es aber welche gibt - her damit, werde sehr dankbar. bin auch der meinung, dass man immer versuchen soll mit einfachen mitteln zu arbeiten.
mfg roman
-
@Fuerchau
Hier geht es um die Verarbeitung von Excel-Tabellen. Erkläre mir doch bitte mal wie Du das mit Deinen C-Funktionen machen willst ???? Das würde mich dann schon mal interessieren.
KM
-
@KM
DAS geht ja nicht aus DIESEM sondern aus einem anderen Beitrag hervor
Deshalb:
Bitte nicht immer neue Beträge erstellen, wenn der andere noch nicht abgeschlossen ist. Sonst geht der Zusammenhang verloren (wie mir ja passiert).
Und was diese Excel-Lösung angeht: warum wird diese dann nicht komplett in Java gemacht (mit SQL auf die DB), als diesen Mischmasch mit RPG ?
Das würde wesentlich weniger problemanfällig und, denke ich, auch performanter als dieses ständige hin und her !!!
-
@Fuerchau
OK, ich gebe zu, dass man nicht unbedingt wissen kann, dass sich POI hauptsächlich mit der Verarbeitung von Excel-Tabellen und Word-Dokumenten beschäftigt. Aber dann solltest Du auch solche Bemerkungen wie "Da sträubt sich ja alles" besser bleiben lassen, wenn Du nicht weißt worum es geht.
Du hast vollkommen Recht, dass es sauberer und deutlich performanter wäre, wenn man das komplett in Java machen würde. Aber die Frage bezog sich nun mal auf RPG+Java. Und Roman scheint es da wohl genauso zu gehen wie mir, dass nämlich fast sämtliche Applikationen auf der iSeries in RPG laufen und man natürlich dazu verleitet wird Bausteine von anderen Programmiersprachen mit einzubinden, wenn schon die Möglichkeit besteht. Aber das soll jeder für sich selbst entscheiden. Wer aus der RPG-Welt kommt, tut sich halt recht schwer gleich komplett auf Java umzusteigen.
Gruß,
KM
-
Hallo,
diese Probleme sind im wesentlichen von dem Hersteller des Systems zu verantworten und weniger von den beteiligten Programmierern.
IBM hat in den RPG Compiler einen Mechanismus eingebaut, der halt nur fast funktioniert, aber relativ einfach zu benutzen ist, bietet aber andererseits nur Work arounds an, was die Java Integration angeht.
Java hat eine komplette Palette an Standardwegen zur Einbindung von heterogenen Komponenten und zur universellen Verwendung von Java Komponenten. Ob CORBA, WebServices oder Message driven Beans, da ist alles da, aber die AS400 darf oder kann das nicht, oder nur in Verbindung mit teurer Software (MQ Series) und die Dokumentationslage ist grausam: dicke Wälzer über Toolbox und WebsFear, Fehlanzeige über RPG und offene Standards!. Und das enge vernähen von RPG und Java wird von führenden Köpfen der RPG Fraktion auch noch als der wahre Jakob verkauft.
mfg
Dieter Bender
Zitat von Fuerchau
Und was diese Excel-Lösung angeht: warum wird diese dann nicht komplett in Java gemacht (mit SQL auf die DB), als diesen Mischmasch mit RPG ?
Das würde wesentlich weniger problemanfällig und, denke ich, auch performanter als dieses ständige hin und her !!!
-
also ich werde mich vom fenster stürzen - ich mache es ganauso und bei mir geht es halt nicht. könnte sein, dass das ein compilerproblem ist? sonst noch ideen.
Ansonsten vielen dank,
mfg roman
-
hallo birgitta,
danke für deinen tip, leider ist das nicht so. das sind beide prototypen zum erstellen eines objekts, aber alle beide haben parameter. es sind bei den classen mehrere constructors möglich, halt ohne und mit parametern, ich schätze mal, dass das problem daran liegt. solltest du noch eine idee haben, bitte um mitteilung, bin an grenze der verzweiflung.
noch mal vielen dank
roman
-
Hallo,
das hilft meistens auch nicht...
Compilerproblem eher nicht, eher Problem von der Sorte: mit Brille wär das nicht passiert. Vielleicht solltest du mal das Programm so klein wie möglich machen und dann das Compile Listing posten.
mfg
Dieter Bender
Zitat von roko
also ich werde mich vom fenster stürzen - ich mache es ganauso und bei mir geht es halt nicht. könnte sein, dass das ein compilerproblem ist? sonst noch ideen.
Ansonsten vielen dank,
mfg roman
Similar Threads
-
By TARASIK in forum IBM i Hauptforum
Antworten: 21
Letzter Beitrag: 30-03-11, 13:48
-
By Muchi in forum NEWSboard Java
Antworten: 2
Letzter Beitrag: 07-11-06, 11:00
-
By GraueEminenz in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 18-07-06, 09:05
-
By woki in forum NEWSboard Java
Antworten: 3
Letzter Beitrag: 06-06-06, 15:57
-
By usafft in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 25-04-06, 07:23
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