[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Mar 2009
    Beiträge
    7

    Question Listendaten RPG --> Java

    Hallo liebe RPG Spezialisten,

    eine Frage aus dem Java Lager. Wir haben eine Lösung welche SQL Abfragen in schicke Excelreports konvertieren kann. Auf der Anwenderseite kam das Begehren auf auch die Ausgabe von RPG Programmen (mit komplexer Businesslogik) in schicken Exceltabellen zu bekommen.

    Ich habe mich etwas umgesehen und mir sind folgende Ansätze eingefallen:

    1. Physische Datei
    Man bau die RPG Programme so um das Sie unter der Angabe einer Jobnummer in eine physische Datei schreiben.
    Vorteil:
    Klares Datenformat, einfach auszulesen und kann zur Not per JOIN einfach mit weiteren Daten angereichert werden.

    2. DataQ
    Man sendet die Ergebnisse als DataQEntry wobei da bei großen Auswertungen glaube ich nicht so super toll ist.

    3. Spoolfile analysieren
    Man liest ein Spoolfile aus und hofft das derjenige der da reinschreibt sich auch an die vereinbarte Schnittstelle hält.

    4. Stored Procedure
    Habe im Netz einen interessanten Artikel gefunden wie man aus einem RPG Programm eine SP macht.
    Siehe: Midrange Programmer, OS/400 Edition,
    Allerdingt wird bei diesem Beispiel nur ein Wert zurückgegeben. Hier als gleich die Frage. Kann man mit SPs aus RPG auch eine ganze Liste an Werten zurückgeben?.
    Zweite Frage: Wird man von einem Admin erschossen weil die SPs die RPG Programme interaktiv callen oder läuft das dann auch wie SQL als prestarted Job?

    Nun meine Hauptfrage an die AS400 Gurus:
    Was macht denn am meißten Sinn? Gibt es noch andere Ansätze um Listendaten aus RPG in Java zu bekommen? Wir suchen auch nicht die Lösung die aus informationstechnischer Sicht die beste ist, sondern das beste Verhälntis zwischen Kotzen und Nutzen aufweist. Natürlich sollte die Lösung trotzdem so stabil sein das man ab und zu auch etwas schlaf bekommt.

    Ich freue mich auf Ihre Anregungen.

    Freundliche Grüße

    Michael Haufler

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... naja, die Grundfrage ist zunächst einmal was diese RPG Programme jetzt denn für Ausgaben machen und von wo die neuen Auswertungen aufgerufen werden sollen.


    D*B

    Zitat Zitat von scireum_mha Beitrag anzeigen
    Hallo liebe RPG Spezialisten,

    eine Frage aus dem Java Lager. Wir haben eine Lösung welche SQL Abfragen in schicke Excelreports konvertieren kann. Auf der Anwenderseite kam das Begehren auf auch die Ausgabe von RPG Programmen (mit komplexer Businesslogik) in schicken Exceltabellen zu bekommen.

    Ich habe mich etwas umgesehen und mir sind folgende Ansätze eingefallen:

    1. Physische Datei
    Man bau die RPG Programme so um das Sie unter der Angabe einer Jobnummer in eine physische Datei schreiben.
    Vorteil:
    Klares Datenformat, einfach auszulesen und kann zur Not per JOIN einfach mit weiteren Daten angereichert werden.

    2. DataQ
    Man sendet die Ergebnisse als DataQEntry wobei da bei großen Auswertungen glaube ich nicht so super toll ist.

    3. Spoolfile analysieren
    Man liest ein Spoolfile aus und hofft das derjenige der da reinschreibt sich auch an die vereinbarte Schnittstelle hält.

    4. Stored Procedure
    Habe im Netz einen interessanten Artikel gefunden wie man aus einem RPG Programm eine SP macht.
    Siehe: Midrange Programmer, OS/400 Edition,
    Allerdingt wird bei diesem Beispiel nur ein Wert zurückgegeben. Hier als gleich die Frage. Kann man mit SPs aus RPG auch eine ganze Liste an Werten zurückgeben?.
    Zweite Frage: Wird man von einem Admin erschossen weil die SPs die RPG Programme interaktiv callen oder läuft das dann auch wie SQL als prestarted Job?

    Nun meine Hauptfrage an die AS400 Gurus:
    Was macht denn am meißten Sinn? Gibt es noch andere Ansätze um Listendaten aus RPG in Java zu bekommen? Wir suchen auch nicht die Lösung die aus informationstechnischer Sicht die beste ist, sondern das beste Verhälntis zwischen Kotzen und Nutzen aufweist. Natürlich sollte die Lösung trotzdem so stabil sein das man ab und zu auch etwas schlaf bekommt.

    Ich freue mich auf Ihre Anregungen.

    Freundliche Grüße

    Michael Haufler
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.245
    Bevor du unnötig viel Geld für eigene Entwicklungen ausgibst google mal nach Compleo.
    Software: Compleo Suite - Spooldateien Spooldatei-Management Spoolmanagement
    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. #4
    Registriert seit
    Mar 2009
    Beiträge
    7
    Danke für den Tip, aber Spoolfiles finde ich jetzt nicht wirklich prickelnd. (Zweizeilige Ausgabe, werden gerne mal abgeändert usw. usw.. Mir reichen da die Erfahrungen aus ein paar COLD Projekten)

    Wir haben ja bereits eine Softwarelösung mit der ich physische bzw. SQL Abfragen sehr schön visualisieren kann. ( Willkommen bei scireum ). Von dor aus (Java / JT400) würden auch die Programme aufgerufen.

    Es handelt sich um klassische Listprogramme. (Lieferscheinprüfprotokoll, Kundenrabattlisten, Statistiken) Sie kennen das ja bestimmt ;-).

    D.h. seither ist das so: Programm wird aufgerufen. Benutzer bekomm eine Parameterauswahl präsentiert, die gibt er ein, zwei mal F13 und los gehts. Dann kommt entweder ein Screen oder es purzelt etwas aus dem Drucker.

    Wir möchten das jetzt eben abändern auf. Weboberfläche, Parametereingabe inkl hierarischer Berechtigungssteuerung. Programm nudelt, liefert seine Daten an Java. Java formatiert, gruppiert, rechnet Zwischensummen usw. usw., macht ein Excel daraus und schickt das per Mail an den User.
    Den Java Teil haben wir bereits. Es geht jetzt nur noch darum vorne das RPG anzuflanschen. Daher die Frage an die RPG Profis wie man das am intelligentesten macht, denn es gibt ja mehrere Wege.

    Am meißten interessiert mich das mit Stored Procedures, kann man hier auch mehrere Sätze (Liste) zurückgeben?

    mfg

    Michael Haufler

  5. #5
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Hallo,

    Du kannst aus RPG bzw. SQLRPG ja ein Resultset mit mehreren Ergebniszeilen zurückgeben. Du musst die Stored Procedure dann auch entsprechend definieren (z.B. mit "dynamic result sets 1"). Dieses Resultset kannst Du dann in Deiner Java-Anwendung verarbeiten.

    Die SQLRPG-Anweisung würde ungefähr so aussehen, wobei RESULT ein Array ist und Z der Indexzähler.

    Code:
    C/EXEC SQL                                     
    C+   SET RESULT SETS ARRAY :RESULT FOR :Z ROWS 
    C/END-EXEC
    Frage noch: Wie kommt man denn an das "scireum query modul" ? Ich habe nirgends eine Download-Möglichkeit gefunden. Ich würde das gerne mal testen.

    Gruß,
    KM

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Frontend ist also Java basiert, Backend ist (teils) vorhandene RPG Funktionalität, an Informationen gehen eine Handvoll Parameter hin und es kommt letztlich ein Resultset zurück.
    Hört sich in der Tat auf den ersten Ton nach stored Procedure mit ResultSet Rückgabe an... Der Reihe nach:
    - Aufruf und Parameter Übergabe:
    pro stoPro:
    - einfach zu implementieren (create Procedure... das wars)
    - Aufruf über Database Server (JDBC Treiber reicht, kein sonstiges Toolbox Gedöns, ConnectionPools etc. einfach verwendbar
    contra stoPro:
    - konzeptionelles verbiegen von Datenbank

    Rückgabe ResultSet
    contra stoPro:
    - RPG hat keine bis stark limitierte dynamische Speicherverwaltung (letztlich hängt da eine statische Größe eines Arrays dahinter, das allenfalls erst während des Programmablaufs mit Speicher hinterlegt wird)
    - man wird Beta Tester eines Features, das nicht wirklich genutzt wird
    - ich würde da pragmatisch in dem RPG Ham das ResultSet in eine Table (mit generiertem Namen) stellen und den Tablenamen zurückgeben.

    Von der Architektur her, kann man die Erstellung der Table (eventuell eben auch aus dem bisher erstellten Spool) in eine RPG Funktion kapseln und wenig an der bisherigen Mimik ändern.

    Die Schnittstelle zwischen Java und RPG könnte man ebenfalls in einer generischen Java Schicht als WebService maskieren.

    D*B


    Zitat Zitat von scireum_mha Beitrag anzeigen
    Danke für den Tip, aber Spoolfiles finde ich jetzt nicht wirklich prickelnd. (Zweizeilige Ausgabe, werden gerne mal abgeändert usw. usw.. Mir reichen da die Erfahrungen aus ein paar COLD Projekten)

    Wir haben ja bereits eine Softwarelösung mit der ich physische bzw. SQL Abfragen sehr schön visualisieren kann. ( Willkommen bei scireum ). Von dor aus (Java / JT400) würden auch die Programme aufgerufen.

    Es handelt sich um klassische Listprogramme. (Lieferscheinprüfprotokoll, Kundenrabattlisten, Statistiken) Sie kennen das ja bestimmt ;-).

    D.h. seither ist das so: Programm wird aufgerufen. Benutzer bekomm eine Parameterauswahl präsentiert, die gibt er ein, zwei mal F13 und los gehts. Dann kommt entweder ein Screen oder es purzelt etwas aus dem Drucker.

    Wir möchten das jetzt eben abändern auf. Weboberfläche, Parametereingabe inkl hierarischer Berechtigungssteuerung. Programm nudelt, liefert seine Daten an Java. Java formatiert, gruppiert, rechnet Zwischensummen usw. usw., macht ein Excel daraus und schickt das per Mail an den User.
    Den Java Teil haben wir bereits. Es geht jetzt nur noch darum vorne das RPG anzuflanschen. Daher die Frage an die RPG Profis wie man das am intelligentesten macht, denn es gibt ja mehrere Wege.

    Am meißten interessiert mich das mit Stored Procedures, kann man hier auch mehrere Sätze (Liste) zurückgeben?

    mfg

    Michael Haufler
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Mar 2009
    Beiträge
    7

    Thumbs up

    @KM @BenderD
    Vielen Dank für die Infos. Das hat mir wirklich weiter geholfen.

    Ich glaube wir nehmen SPs, das schöne ist auch das man dann kein aufwändiges Jobhandling braucht. Da die meißten Listen als Papier ausgegeben wurden kommen da ja auch keine Mio Sätze zurück.

    @KM
    Stimmt wir haben keine downloadbare Demo da man das System schon ein wenig konfigurieren muß bis es läuft. (Das ganze läuft ja in einem Application Server).
    Bei Interesse kann ich aber sehr gerne eine unverbindliche kostenlose Demo anbieten. z.B. per Teamviewer direkt am Arbeitsplatz.
    Bitte rufen Sie mich doch hierzu einfach am Montag an oder senden Sie mir eine Email. (Kontaktdaten hier: Willkommen bei scireum )

    mfg

    Michael Haufler

Similar Threads

  1. Migation RPG --> Java
    By anwenderi5 in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 14-01-09, 12:29
  2. RPG aus Java aufrufen
    By Vicky-B in forum NEWSboard Java
    Antworten: 17
    Letzter Beitrag: 06-05-08, 11:05
  3. Rpg to java
    By Badener in forum NEWSboard Java
    Antworten: 5
    Letzter Beitrag: 13-07-06, 17:09
  4. Antworten: 3
    Letzter Beitrag: 06-06-06, 15:57
  5. Java Programm aus ILE RPG aufrufen
    By PGMR in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 02-02-05, 13:10

Berechtigungen

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