[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2007
    Beiträge
    69

    PDF-Dokumente aus Ordner löschen

    Hallo,

    wer kann einen Tipp geben?

    Habe folgendes Problem:

    Es sind in einem Ordner PDF-Dokumente gespeichert.

    Diese sollen nach einem bestimmten Zeitraum z. B. < Tagesdatum - 1 Monat gelöscht werden. Die Löschung soll automatisiert laufen. (SHEDULER)
    Im Jobplan soll ein CLP aufgerufen werden.

    Ich kenne den Befehl DLTDLO mit dem man Dokumente löschen kann.

    Was ich nicht kenne ist, wie kann ich die einzelnen Dokumente innerhalb des Ordners lesen vom 1 bis zum letzten Dokument.
    Wenn ich das Dokument gelesen habe muss ich den Vergleich mit dem Änderungsdatum
    machen, ob eine Löschung erfolgen soll. Was muss ich machen für den Vergleich.

    Hat das schon jemand gemacht und kann mir Hilfestellung (Source) geben.
    Danke.

  2. #2
    Registriert seit
    Dec 2004
    Beiträge
    203
    Hallo und guten Morgen,

    Wenn Du das IFS meinst würde ich eher ein kleines c# pgm vorschlagen.
    Dies auf einem Server ablegen und dort scedulen ...

    Gruß,
    Ralf

  3. #3
    Registriert seit
    Jun 2009
    Beiträge
    316
    PGM PARM(&PFAD)
    DCLF FILE(DSPDOCFIL)
    DCL VAR(&PFAD) TYPE(*CHAR) LEN(30)
    DCL VAR(&BISDAT) TYPE(*CHAR) LEN(6)
    DCL VAR(&BISJUL) TYPE(*CHAR) LEN(7)
    DCL VAR(&DOCDAT) TYPE(*CHAR) LEN(7)
    DCL VAR(&BISJUN) TYPE(*DEC) LEN(7 0)
    DCL VAR(&DOCDAN) TYPE(*DEC) LEN(7 0)

    DSPFLR FLR(&PFAD) TYPE(*DOC) OUTPUT(*OUTFILE) +
    OUTFILE(DSPDOCFIL) OUTMBR(*FIRST *REPLACE)

    TAATOOL/ADDDAT DAYS(-365) TOVAR(&BISDAT)

    CVTDAT DATE(&BISDAT) TOVAR(&BISJUL) FROMFMT(*JOB) +
    TOFMT(*LONGJUL) TOSEP(*NONE)
    CHGVAR VAR(&BISJUN) VALUE(&BISJUL)

    START: RCVF
    MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ENDE))
    CVTDAT DATE(&LASTRV) TOVAR(&DOCDAT) FROMFMT(*DMY) +
    TOFMT(*LONGJUL) TOSEP(*NONE)
    MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(START))
    CHGVAR VAR(&DOCDAN) VALUE(&DOCDAT)
    IF COND(&DOCDAN *LE &BISJUN) THEN(DO)
    DLTDLO DLO(&DOCNAM) FLR(&FLRNAM)
    MONMSG MSGID(CPF0000)
    ENDDO
    GOTO CMDLBL(START)

    ENDE: CLRPFM FILE(DSPDOCFIL)
    ENDPGM


    Das gabs vor langer Zeit mal

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ich nehme mal an, dass die PDF's im IFS und zwar nicht im QDLS (wegen Namensgebung) liegen.
    Somit scheiden DLO-Befehle aus.
    Hilfreich ist hier die QSH und der Befehl "find".
    "find" findet nach verschiedenen Kriterien Dokumente und führt "-exec {}" auf das Dokument aus.
    Dies kann natürlich der "rm"-Befehl sein.

    Seit neuestem gibt es SQL-Funktionen/Prozeduren, die eine Liste von IFS-Dokumenten ausgeben können. Hier kann man dann das CMD-Objekt "DEL" anwenden.
    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

  5. #5
    Registriert seit
    Jan 2007
    Beiträge
    905
    Hi,

    Ich nehm mal an, Du bist des englischen mächtig. Dann kann ich dir das Tutorial von Scott Klement an's Herz legen. Darin findest Du alles was für die Verarbeitung von IFS Files nötig ist.

    https://www.scottklement.com/rpg/ifs_ebook/index.html

    PDF:
    https://www.scottklement.com/rpg/ifs.../ifs_ebook.pdf
    kf

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Warum immer so kompliziert?
    http://www.ibm.com/support/knowledge...m_i_61&lang=de
    Da gibts auch Beispiele.
    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
    Jun 2009
    Beiträge
    316
    Ich frage mich warum AK1 den Befehl DLTDLO angibt, mit dem kann man doch nichts im IFS veranstalten.
    Ich denke AK1 meint doch QDLS!

    Ausser dem kann man im Befehl DLTDLO zusätzliche Parameter angeben, mit dem man einschränkt was man löschen will.

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Du kannst Dir natürlich auf mit RTVDIRINF entsprechende Outfiles erstellen und diese dann z.B. mit SQL verarbeiten.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wie immer, es gibt 1000 Wege, aber nur 1 ist der küzeste.
    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

  10. #10
    Registriert seit
    Aug 2004
    Beiträge
    60
    Also ich habe das auch über QSH gelöst:
    STRQSH CMD('find /home/XYZ -name *.PDF -ctime +31 -exec rm {} \;')

    Das rufe ich direkt aus dem Jobsceduler auf - ohne CL und löscht alle PDF Dateien älter als 31 Tage.

Similar Threads

  1. IFS und Linux-Ordner mappen
    By sargejogi in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 26-02-15, 18:52
  2. AS400 Ordner als Netzlaufwerk verbinden
    By ensöianer in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 26-01-15, 13:05
  3. Move in IFS-Ordner
    By Joe in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 11-04-14, 17:05
  4. Ordner sichern ???
    By Koelch400 in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 02-10-02, 14:06
  5. Spool automatisch in PC-Ordner übertragen
    By Linus in forum IBM i Hauptforum
    Antworten: 13
    Letzter Beitrag: 21-12-01, 09:01

Berechtigungen

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