[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Dec 2005
    Beiträge
    111

    Erstellen eines CL´s für dspdire/addire

    Guten Morgen,
    ich habe zurzeit das Problem, daß ich gerne die WRKDIRE von einer Kiste auf eine andere bekommen möchte.

    Es gibt dafür zwei wege die mir bekannt sind.

    1. Ich Restore die qaok*, qaof* und die qaoz*

    2. Ich rufe den Befehl DSPDIRE *outfile auf. Dann schreibe ich ein CL das mir die Daten aus dem outfile zieht und per ADDDIRE erstellt.

    Erstens möchte ich nicht. Aus ganz verschieden Gründen.

    Aber zweitens fände ich super. Allerdings weiß ich nicht wie ich so ein CL erstellen soll. Nunja ich weiß schon wie ich ein CL erstelle, aber eben nicht in diesem speziellen fall.

    Ich habe mir natürlich schon gedanken über das wie gemacht, aber vileicht hat von euch ja schon einer das CL mal geschrieben. Es wird ja nicht zum erstenmal besprochen!

    Falls nicht wäre ich für eine unterstüzung bei der erstellung sehr dankbar.

    Mit freundlichen
    Grüßen der Techniker

  2. #2
    Registriert seit
    Aug 2004
    Beiträge
    923
    Zitat Zitat von Techniker
    2. Ich rufe den Befehl DSPDIRE *outfile auf. Dann schreibe ich ein CL das mir die Daten aus dem outfile zieht und per ADDDIRE erstellt.

    Erstens möchte ich nicht. Aus ganz verschieden Gründen.

    Aber zweitens fände ich super. Allerdings weiß ich nicht wie ich so ein CL erstellen soll. Nunja ich weiß schon wie ich ein CL erstelle, aber eben nicht in diesem speziellen fall.

    Ich habe mir natürlich schon gedanken über das wie gemacht, aber vileicht hat von euch ja schon einer das CL mal geschrieben. Es wird ja nicht zum erstenmal besprochen!

    Falls nicht wäre ich für eine unterstüzung bei der erstellung sehr dankbar.
    Moin moin,

    Na ja, SOO ganz profan ist das nicht.
    Wie ein CL grundsätzlich aussieht kannst Du ganz gut in dem Listing von Holger erkennen.
    Hier http://www.rlpforen.de/showthread.php?p=42357#post42357

    Das Problem ist nur folgendes:
    Du kannst im CL immer nur mit EINER Datei arbeiten.
    In Deinem Fall wäre das die Datei, die Du im CL einliest.
    Was Dir da nun fehlt ist ja, die dann eingelesenen Daten auch wieder abzuspeichern (in eine andere Datei, welche Du später wieder ausliest) und/oder zu benutzen (für den ADDDIRE oder so).
    Wenn Du also im CL den ADDIRE benutzen willst, bist Du ja eventuell auf der falschen Maschine.
    Eine Möglichkeit wäre, den Ausdruck von DSPDIRE *outfile per SNDNETSPLF auf die andere Maschine zu schicken, dann dort per CL einzulesen und im CL den ADDIRE abzusetzen.
    ODER Du machst das auf der Ursprungsmaschine und schickst nur nen Text (MSG) rüber zur anderen und machst nen Programm um den Text da einzulesen und zu verarbeiten.
    ODER Du machst nen zweites Programm auf der Ursprungsmaschine welches die eingelesenen Daten annimmt und abspeichert und die File schickst Du dann rüber zur neuen Maschine und arbeitest die dann per Programm da ab
    ODER Du machst statt nen CL gleich nen RPG (um mehr als eine File (1xinput,1xoutput) gleichzeitig bearbeiten zu können...
    ODER..
    ODER...

    Ich denke Du merkst wo ich hinwill.

    kuempi

  3. #3
    Registriert seit
    Dec 2005
    Beiträge
    111
    Zitat Zitat von kuempi von stein
    Das Problem ist nur folgendes:
    Du kannst im CL immer nur mit EINER Datei arbeiten.
    In Deinem Fall wäre das die Datei, die Du im CL einliest.
    Was Dir da nun fehlt ist ja, die dann eingelesenen Daten auch wieder abzuspeichern (in eine andere Datei, welche Du später wieder ausliest) und/oder zu benutzen (für den ADDDIRE oder so).
    Wenn Du also im CL den ADDIRE benutzen willst, bist Du ja eventuell auf der falschen Maschine.

    kuempi
    Hi,

    ja das hört sich doch schon mal gut an.
    Ich würde es mir so in etwa vorstellen.

    Ich bringe den outfile auf das richtige system und rufe dann das CL auf, welches mir den outfile ausliest und dann per adddire die Einträge erstellt.

    Dazu müsste ich nur wissen wie!

    Also,
    1. wie kann ich den outfile auslesen
    2. müsste ich da nicht irgendwie eine Schleife generieren
    3. wie bekomme ich die ausgelesenen werte dann in den ADDDIRE rein

    Das ist viel ich weiß.

  4. #4
    Registriert seit
    Aug 2004
    Beiträge
    923
    Na schau Dir mal das Beispiel von Holger an!

    Du must nur im CL Deine File die Du produziert hast im DCLF angeben.
    Lesen Satzweise sequentiell dann mit RCVF.
    Wenn CPF0864 kommt dann ist Dateiende.
    Und die einzelnen Felder Deiner Outfile kannst Du im CL ganz normal wie andere Variabeln ansprechen, das ist durch den DCLF schon getan.
    Ich glaube Du must nichtmal die einzelnen Felder mehr declarieren mit DCL.

    Versuchs mal einfach ist easy...

    k.

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Naja, und die Schleife geht ganz einfach:

    Lesen:
    RCVF
    MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ENDE))

    ADDDIRE
    goto Lesen

    Ende:
    ENDPGM
    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

  6. #6
    Registriert seit
    Dec 2005
    Beiträge
    111
    Also,

    vielen vielen Dank.

    War echt nicht schwer, läuft super!


Similar Threads

  1. verschlüsseltes zip erstellen ?
    By I0N in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 09-01-09, 17:38
  2. Teildatei erstellen
    By Jabs in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 12-12-06, 07:59
  3. WSCST-Quelle erstellen
    By Jörg Schmidt in forum NEWSboard Drucker
    Antworten: 7
    Letzter Beitrag: 03-08-06, 08:56
  4. Netzwerkdrucker erstellen bleibt auf SND stehen
    By jojoschluckfirma in forum NEWSboard Drucker
    Antworten: 3
    Letzter Beitrag: 27-07-06, 06:10
  5. Grafik-Dateien erstellen
    By KM in forum NEWSboard Java
    Antworten: 3
    Letzter Beitrag: 08-06-06, 09:09

Berechtigungen

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