View Full Version : CL -Abfrage erstellen
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
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
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
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.
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
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
Danke für eure Hilfe!!!!!! Ich werd mich umgehend in meinem Testlabor verschanzen ;-)
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