Anmelden

View Full Version : Erstellen eines CL´s für dspdire/addire



Techniker
09-08-06, 08:58
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.

:rolleyes: Mit freundlichen
Grüßen der Techniker

kuempi von stein
09-08-06, 10:33
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

Techniker
09-08-06, 10:57
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ß.
:confused:

kuempi von stein
09-08-06, 11:08
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.

Fuerchau
09-08-06, 12:03
Naja, und die Schleife geht ganz einfach:

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

ADDDIRE
goto Lesen

Ende:
ENDPGM

Techniker
09-08-06, 12:20
Also,

vielen vielen Dank.

War echt nicht schwer, läuft super!

:) :) :) :) :)