[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Oct 2017
    Beiträge
    14

    Workdatei CL / RPG Free

    Guten Morgen zusammen,
    ich mache gerade meine ersten Schritte in der Programmierung und bin auf eine Gegebenheit gestossen bei der ich nicht recht weiter weiss.

    Es handelt sich um insgesamt zwei Programme. Beim Ersten werden insgesamt 14 Werte in der Maske erfasst. Beim Bestaetigen wird das Druckprogramm aufgerufen und die Ausgabe erfolgt. Soweit so gut.

    Nun kommen wir zur Gegebenheit die mich verzweifeln laesst. Bei uns werden Programme immer mit einem CL aufgerufen und Druckausgaben mit einem zweiten CL, welches im ersten aufgerufen wird, angestossen. Nun habe ich mir zwei dieser CLs besorgt und diese fuer meine Anliegen mit besten Wissen, welches nicht vorhanden ist, angepasst.

    Leider bin ich auf etwas gestossen was mein bisheriges Wissen uebersteigt: WORKDATEI
    Diese wird im ersten CL erstellt, im ersten RPGLE gefuellt, an das erste CL zurueckgegeben und im zweiten CL und zweiten RPGLE verarbeitet. Und genau bei der Uebergabe vom ersten RPGLE in das erste CL weiss ich nicht wie man das modisch korrekt loest..

    Ueber eine Erklaerung wuerde ich mich sehr freuen, da es hier wahrscheinlich wieder an einer Kleinigkeit scheidert, schon viel probiert wurde und ich den Wald vor lauter Baeumen nicht sehe.

    Gerechtfertigte Kritik am Beitrag ist erwuenscht.
    Gerechtfertigte Kritik an den Gegebenheiten ist unerwuenscht..

    Mit freundlichen Gruessen
    Jo

  2. #2
    Registriert seit
    Jun 2001
    Beiträge
    1.973
    Moin, und Willkommen im Forum!

    Außer den Umlauten vermisse ich eine konkrete Frage.

    mit
    wie man das modisch korrekt laesst
    kann ich nix anfangen!
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  3. #3
    Registriert seit
    Oct 2017
    Beiträge
    14
    Die eigentliche Frage ist wie ich das ganze Umsetzen muss:

    Soll ich den alten Weg gehen, dass die Workdatei im CL erstellt wird ?
    Wenn ja, wie binde ich das korrekt im RPGLE ein, verarbeite dieses und gebe es zurück ?

    Kann man das ganze mit einer Header Datei lösen und als Datenstruktur an das CL zurückgeben ?

    Da hier einfach das Wissen beschränkt ist, ist die Frage dementsprechend schwammig gestellt..

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    1.973
    Was ist deine Work Datei?

    Eine Extern (DDS / SQL) beschriebene Datei, die NICHT Physikalisch auf dem System ist, und die du im CL mit CRTPF erstellst?
    Dann baucht das erstellen des RPGPGM's ein CL, das diese Datei für die Umwandlung z.B. nach Qtemp erzeugt.

    Oder eine Physikalisch vorhandene Datei, die du mit CRTDUPOBJ in eine Arbeitsdatei X#JJMMTTLfnr o.ä. duplizierst. (oder CPYF einer leeren Datei)
    Dann kannst du mit EXTFILE und EXTDESC im RPG auf die Basis Datei verweisen.

    Oder eine intern beschriebene Datei die per OVRDBF zu gewiesen wird.
    Da braucht dein RPG nix besonderes.


    Wieso willst du eine DS hin und her geben? Und was bedeutet in dem Zusammenhang Header Datei
    Wenn dein RPG die Datei schreibt sind die Daten auf der Platte, jedes andere PGM kann sie lesen und drucken!
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  5. #5
    Registriert seit
    Nov 2003
    Beiträge
    2.304
    Was gibt's schon? Was ist neu?

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Stelle dochmal die gefundenen Stellen als Code zur Verfügung und wir können dir dann erklären wie und warum es funktioniert und sicherlich 1001 Alternativen aufzeigen.
    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

  7. #7
    Registriert seit
    Oct 2017
    Beiträge
    14
    Nachdem ich mich jetzt noch ein bisschen eingelesen und die Fragen nachvollzieht habe, möchte ich mich mit zwei Möglichkeiten genauer beschäftigen:

    1. CRTPF
    Zuerst erstelle ich mit CRTPF die 1024 Zeichen lange Datei WKDAV001.
    Danach wird der DLTF WKDAV001 und erneut der CRTPF WKDAV001 in das CL eingebaut.

    2.QTEMP
    Hier wollte ich mit Hilfe von SQL eine Tabelle in der QTEMP erstellen, diese im Programm füllen und im zweiten RPGLE wieder auslesen.

    Ich glaube mein Fehler liegt in der Deklaration der File im RPG und wie ich diese zum weiterarbeiten aufrufe und nutze:

    dcl-f DAVWRK keyed extfile('WKDAV001');
    dcl-ds LCLDAVWRK extname('WKDAV001') end-ds;

    Mir würde auch erstmal ein Link zu einer Erklärung reichen.
    Workdatei erstellen, Workdatei im Programm einbinden, bearbeiten, wegschreiben

    Da ich bis jetzt nur mit Schablonen und Unwissen gearbeitet habe sind meine Fragen so schwammig formuliert.

    Besten Dank !

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Du darfst CRTPF und CREATE TABLE für ein und dieselbe Datei nicht mischen.
    Wenn du eine TABLE erstellst, so solltest du die auch mit SQL und nicht per dcl-f bearbeiten.

    Wenn du eine CRTPF ohne eine Quelle machst (1 Satz, 1 Feld) so ist diese vom Typ binär!
    Hinzu kommt, dass sowohl Dateiname, als auch der Formatname und der Feldname identisch sind.
    Da in RPG ein Name vom Typ immer identisch sein muss, geht das so nicht.
    Desweiteren ist diese Datei niemals "keyed".

    Beim CREATE TABLE ist Dateiname und Formatname i.d.R. identisch, den Feldnamen musst du ja angeben. Zeichenfelder sich vom Typ (CHAR, VARCHAR, ...) und nicht binär.
    Solange du keinen Primary Key angibst, ist auch die TABLE nie "keyed".

    RPG unterscheidet zwischen Datei und Formatname und meckert das bei Gleichheit an.
    Dafür gibt es Rename-Anweisungen im RPG im dcl-f.
    Das selbe gilt dann für den Feldnamen, der ebenso umbenannt werden muss.
    Wie das nun in fully-free geht, weiß ich nicht.

    Ansonsten empfehle ich dir die Programmierhandbücher zu studieren, online gibts die leider nur in englisch.
    https://www.ibm.com/support/knowledg...e/pdftable.htm

    Da musst du dann mal nach RPG suchen.
    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

  9. #9
    Registriert seit
    Nov 2003
    Beiträge
    2.304
    Wenn es das doch alles schon gibt, warum machst du das dann nicht genauso?

    Zitat Zitat von JGreim Beitrag anzeigen
    Bei uns werden Programme immer mit einem CL aufgerufen und Druckausgaben mit einem zweiten CL, welches im ersten aufgerufen wird, angestossen. Nun habe ich mir zwei dieser CLs besorgt und diese fuer meine Anliegen mit besten Wissen, welches nicht vorhanden ist, angepasst.

    Leider bin ich auf etwas gestossen was mein bisheriges Wissen uebersteigt: WORKDATEI
    Diese wird im ersten CL erstellt, im ersten RPGLE gefuellt, an das erste CL zurueckgegeben und im zweiten CL und zweiten RPGLE verarbeitet. Und genau bei der Uebergabe vom ersten RPGLE in das erste CL weiss ich nicht wie man das modisch korrekt loest..

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von JGreim Beitrag anzeigen
    Leider bin ich auf etwas gestossen was mein bisheriges Wissen uebersteigt: WORKDATEI
    Diese wird im ersten CL erstellt, im ersten RPGLE gefuellt, an das erste CL zurueckgegeben und im zweiten CL und zweiten RPGLE verarbeitet. Und genau bei der Uebergabe vom ersten RPGLE in das erste CL weiss ich nicht wie man das modisch korrekt loest..
    ... da wird nix zurück gegeben! Die Workdatei wird (vermutlich) in QTEMP erstellt, damit existiert sie nur für den Job, dann schreibt das erste Programm da rein und das zweite liest und druckt. Modisch korrekt, was immer man darunter versteht, macht es keinen Sinn ein Programm 1:1 umzubimsen. Kleine Änderungen macht man ohne Aufhübscherei, bei mittleren Änderungen könnte man das maschinell nach Freeformat konvertieren (dafür gibt es Tools) und dann ändern, bei größeren Änderungen schmeißt man weg und schreibt neu, wobei man Redesign des Ablaufs nicht vergessen sollte.

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

  11. #11
    Registriert seit
    Oct 2017
    Beiträge
    14
    Zitat Zitat von BenderD Beitrag anzeigen
    ... da wird nix zurück gegeben! Die Workdatei wird (vermutlich) in QTEMP erstellt, damit existiert sie nur für den Job, dann schreibt das erste Programm da rein und das zweite liest und druckt.
    Diesen Ablauf habe ich mittlerweile nachvollzogen und ist in genau dieser Form gewünscht.

    Zitat Zitat von BenderD Beitrag anzeigen
    Kleine Änderungen macht man ohne Aufhübscherei, bei mittleren Änderungen könnte man das maschinell nach Freeformat konvertieren (dafür gibt es Tools) und dann ändern, bei größeren Änderungen schmeißt man weg und schreibt neu, wobei man Redesign des Ablaufs nicht vergessen sollte.
    Die Programme wurden auf der grünen Wiese in **free geschrieben und funktionierten auch einwandfrei, da ich hier das Druckprogramm als Prototyp übergegeben habe.

    Zitat Zitat von BenderD Beitrag anzeigen
    ....wobei man Redesign des Ablaufs nicht vergessen sollte.
    Und jetzt kommen wir zum Ablauf, der bei uns verlangt, dass das ganze mit einem CL gesteuert wird. In dem CL werden Bibliothekslisten gesetzt, die Workdatei erstellt, der Eintrag in der Aktivprüfung gepflegt und das eigentliche Programm gestartet.

    Ich glaube das Problem liegt im erstellen der Workfile und wie ich diese im **free RPG einbinde und bearbeite.

  12. #12
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von JGreim Beitrag anzeigen
    Ich glaube das Problem liegt im erstellen der Workfile und wie ich diese im **free RPG einbinde und bearbeite.
    Eine einfache Variante ist:
    - ein Template in der passenden Lib der Applikation (leere Datei per DDS oder SQL erstellen)
    - die leere Datei in den Programmen als extern beschriebene Datei einbinden
    - im CL per CRTDUPOBJ oder CPYF das Template in die QTEMP erstellen
    - anschließend OVRDBF auf Jobebene, der auf die Datei in der QTEMP zeigt

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

Similar Threads

  1. RPG-Code in Free
    By Wavum in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 12-07-16, 11:27
  2. %dec in free-rpg ??
    By Gimli in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 11-03-03, 11:16
  3. Free RPG??
    By DEVJO in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 05-03-03, 08:18
  4. Free - RPG
    By Gimli in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-03-03, 10:47
  5. Free-RPG
    By Gimli in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 03-03-03, 11:23

Tags for this Thread

Berechtigungen

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