PDA

View Full Version : CL -Abfrage erstellen



Jelu1
13-04-05, 10:30
Hallo!
Ich habe ein kleines (oder größeres) Problem. Mit CL-Programmierung habe ich mich noch nicht so intensiv befasst, weil ich noch ein kompletter Neuling im iSeries-Sektor bin.
...man möge mir verzeihen ;-))

Folgendes! Ich habe eine Bibliothek SICH erstellt in der kopierte Objekte gesichert werden. Jetzt möchte ich ein CL schreiben, welches mir die Objekte löscht, die länger als 14 Tage in der Bibliothek "rumliegen". Vieleicht kann mir ja jemand erklären was der Reihe nach zu tun ist oder besser noch einen Quellcode schreiben.

Gruss
Jelu1

Bruno Jakob
14-04-05, 06:53
Mit dem CL-Befehl

DSPOBJD OBJ(SICH/*ALL) OBJTYPE(*FILE) OUTPUT(*OUTFILE) OUTFILE(QTEMP/DATEI)

kannst du Informationen über die Objekte in eine Datei ausgeben. Da steht auch das letzte Änderungs- und Verwendungsdatum.

Die Datei kannst du dann auslesen und die Dateien, die deinen Kriterien entsprechen mit DLTF löschen.

Bruno

Jelu1
14-04-05, 10:07
Die Daten auslesen ist kein Problem, aber ich möchte nicht erst nachsehen welches Objekt die Kriterien erfüllt sondern ein CL schreiben, welches beim Ausführen die Werte automatisch abfragt und selbstständig die Objekte entfernt.

Ich denk mal, dass dies wahrscheinlich nicht so schwer sein kann aber leider fehlt mir noch das Wissen über die CL-Programmierung.

Jelu

Pikachu
14-04-05, 10:56
Hallo Jelu!

Sieh mal hier, so kannst du die einzelnen Datensätze einer Datei im CL-Programm lesen:

http://www.rlpforen.de/showthread.php?t=5949

Viele Grüße
Jürgen

Fuerchau
14-04-05, 10:57
Dann mach es doch so wie Bruno es darstellt.
Mit DSPOBJD in eine Datei ausgeben und diese dann per CLP lesen. Dies kann das Programm alles selber machen.

Jelu1
14-04-05, 11:34
Dann mach es doch so wie Bruno es darstellt.
Mit DSPOBJD in eine Datei ausgeben und diese dann per CLP lesen. Dies kann das Programm alles selber machen.
....ja genau das will ich ja. das Problem ist nur, ich weiß nicht wie ich es erstelle.
Das Auslesen mit DSPJOBD hab ich ja hinbekommen und jetzt fehlt mir nur noch der nächste Schritt.

Bruno Jakob
14-04-05, 12:30
Der nächste Schritt ist das Löschen der ausgewählten Dateien. Und das geht, wie schon erwähnt, mit dem CL-Befehl DLTF. Und der sieht so aus:

DLTF FILE(SICH/DIEDATEI).

Anstatt DIEDATEI setzt du hier eine CL-Variable ein.

Bruno

malzusrex
14-04-05, 13:04
Na, da will ich doch mal nicht so sein

Hier das CL-Proggie


pgm (&Lib &VglDat)

dclf xxobjd /* WorkDatei für DSPOBJD */
dcl &tt *char 2 /* Tag aus ErstellDatum */
dcl &mm *char 2 /* Monat aus ErstellDatum */
dcl &jj *char 2 /* Jahrg aus ErstellDatum */
dcl &CrtDat *char 6 /* ErstellDatum JJMMTT */
dcl &VglDat *char 6 /* VergleichsDatum zum löschen */
dcl &Lib *char 10 /* Bibliothek */

DspObjD Obj(&lib/*all) +
ObjType(*all ) +
Detail(*Basic) +
OutPut(*OutFile) +
OutFile(qtemp/xxobjd) /* ObjektD in WorkFile */

LOOP: rcvf /* Lesen der Datei */
monmsg cpf0864 exec( goto WEITER )

chgvar &tt ( %sst( &odcdat 3 2) ) /* Aufbereiten des Datum */
chgvar &mm ( %sst( &odcdat 1 2) )
chgvar &jj ( %sst( &odcdat 5 2) )
chgvar &CrtDat ( &jj *cat &mm *cat &tt )

If (&CrtDat < &VglDat) then(do)

If ( &odobtp = '*PGM' ) then(do)
dltpgm &odlbnm/&odobnm
EndDo
If ( &odobtp = '*FILE' ) then(do)
dltpgm &odlbnm/&odobnm
EndDo

EndDo

goto LOOP

WEITER:
endpgm


zum umwandeln muss die Datei XXOBJD vorhanden sein. am besten du du gibst auf einen zeile folgendes cmd ein

DSPOBJD sich/*all *all *basic output(*outfile) outfile(qtemp/xxobjd)

dann stellst du dein PDM so ein, das du interactiv wandelst.

CL-Proggie wandeln.

aufruf des cl mit

Call CL_DLTOBJ ('SICH' '050331')

Dabei muss dein Proggi CL_DLTOBJ heissen. Der 1. Parm ist die Lib um die es geht und der 2.Parm ist das Datum ab dem <= gelöscht werden soll.


tschau Ronald

Jelu1
14-04-05, 13:08
Danke für eure Hilfe!!!!!! Ich werd mich umgehend in meinem Testlabor verschanzen ;-)

Joe
16-04-05, 00:21
Hallo.

Alter Kaffee, wieder mal aufgebrüht:

Ich habe vor "langer Zeit" als die AS/400 (so hiess die damals)
auf den Markt kam für sehr viel Geld (DM)diverse Schulungen besucht
und dabei sehr viel erfahren. (Danke RSB , Bender etc.)
(Hoffentlich nicht ausge*****)

Liege ich mit meiner Einstellung total daneben oder ist heute "usus"
die benötigten Informationen einfach per Mouseclick auf's Handy
zu holen um als "Laie" eine doch relativ anspruchsvolle AS/400(Iseries),(i5???)
zu verwalten?


Jede Schelte an den : --> joe