deleteDocuments.groovy hinzugefügt
This commit is contained in:
112
_Vorlagen/Groovy-Skripte/deleteDocuments.groovy
Normal file
112
_Vorlagen/Groovy-Skripte/deleteDocuments.groovy
Normal file
@@ -0,0 +1,112 @@
|
||||
import com.dvelop.d3.server.Document
|
||||
import com.dvelop.d3.server.DocumentType
|
||||
import com.dvelop.d3.server.User
|
||||
import com.dvelop.d3.server.ValueSet
|
||||
import com.dvelop.d3.server.Validation
|
||||
import com.dvelop.d3.server.core.D3
|
||||
import com.dvelop.d3.server.core.D3Interface
|
||||
import com.dvelop.d3.server.exceptions.SQLException
|
||||
import com.dvelop.d3.server.exceptions.D3Exception
|
||||
import java.lang.annotation.*
|
||||
import java.sql.SQLWarning;
|
||||
import java.sql.Timestamp
|
||||
|
||||
|
||||
/*
|
||||
Skript zum Löschen von Dokumenten
|
||||
Folgende Konfigurationsparameter sollten vorher im d.3 angedacht werden, insofern die Dokumente auch physikalisch gelöscht werden sollen
|
||||
DELETE_DOCS_ELAPSED_AUTO (Dokumente logisch löschen)
|
||||
DELETE_DOCS_ELAPSED_PHYSICAL (Dokumente physikalisch löschen)
|
||||
DELETE_DOCS_ELAPSED_SEC_STORAGE (Dokumente vom Sekundärspeicher löschen, falls im Einsatz)
|
||||
RECYCLE_STORAGE_PERIOD (Verweildauer im Papierkorb)
|
||||
*/
|
||||
|
||||
// #################################################################################
|
||||
// Konfigurationsbereich
|
||||
// #################################################################################
|
||||
// Pflichtfelder:
|
||||
// --------------
|
||||
def DokumentArt = "('DVFVA', 'DSFVA', 'AFOND', 'AVFVA', 'AMAND', 'AFVA', 'AKUND', 'ASFVA')" // Dokumentarten, entspricht SQL-Where In ...
|
||||
int LoeschModus = 2 // 1 = erzeuge d3l-Datei, 2 = Dokumente Loeschen
|
||||
|
||||
// Optionale Felder
|
||||
// ----------------
|
||||
// Falls leer, im Format <Feldname> = "" angeben, dann wird ueber das Feld nicht eingeschränkt,
|
||||
def ImportDatum = "" // Dokumente >= Import-Datum gem. DB-Tabelle phys_datei, Spalte datum_einbring
|
||||
// Format: DD.MM.YYYY
|
||||
def ImportBenutzer = "" // d.3 Benutzerkürzel, optional
|
||||
def StammGPNummer = "" // Stamm-GP-Nummer
|
||||
|
||||
// Pfade
|
||||
// -----
|
||||
def LogPfad = "D:\\d3log\\DokumenteLoeschen\\"
|
||||
def LogDateiName = "DokumenteLoeschen"
|
||||
def LinkDateiName = "DokumenteLoeschenLink"
|
||||
|
||||
// #################################################################################
|
||||
// Ende Konfigurationsbereich
|
||||
// #################################################################################
|
||||
|
||||
d3.log.info("Starte Lösch-Skript für Dokumentarten: " + DokumentArt)
|
||||
d3.log.info("ImportDatum >= " + ImportDatum)
|
||||
d3.log.info("ImportBenutzer = " + ImportBenutzer)
|
||||
d3.log.info("StammGPNummer = " + StammGPNummer)
|
||||
|
||||
def LogDatei = new File(LogPfad + LogDateiName + ".log")
|
||||
LogDatei.append("\n\rStarte Löschen von Dokumenten ")
|
||||
|
||||
def LinkDatei = new File(LogPfad + LinkDateiName + ".d3l")
|
||||
|
||||
int countDeleted = 0
|
||||
|
||||
if (LoeschModus == 1)
|
||||
{
|
||||
LinkDatei.write("idlist")
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// SQL Abfrage zusammensetzen
|
||||
def SQLWhere = "where kue_dokuart in " + DokumentArt
|
||||
if (ImportDatum)
|
||||
{
|
||||
SQLWhere = SQLWhere + " and datum_einbring >= to_date('" + ImportDatum + "', 'DD.MM.YYYY')"
|
||||
}
|
||||
if (ImportBenutzer)
|
||||
{
|
||||
SQLWhere = SQLWhere + " and besitzer = '" + ImportBenutzer + "'"
|
||||
}
|
||||
if (StammGPNummer)
|
||||
{
|
||||
SQLWhere = SQLWhere + " and dok_dat_feld_3 = '" + StammGPNummer + "'"
|
||||
}
|
||||
|
||||
def resultset = d3.sql.executeAndGet("""select fs.doku_id
|
||||
from firmen_spezifisch fs
|
||||
inner join phys_datei pd on (fs.doku_id = pd.doku_id)""" + SQLWhere)
|
||||
if (resultset.size() > 0)
|
||||
{
|
||||
d3.log.info (resultset.size() + " Dokumente zum Löschen ermittelt.")
|
||||
LogDatei.append("\n\r" + resultset.size() + " Dokumente zum Löschen ermittelt.")
|
||||
|
||||
// Ergebnis durchlaufen und Dokumente / Akten aktualisieren
|
||||
resultset.each
|
||||
{
|
||||
if (LoeschModus == 1)
|
||||
{
|
||||
LinkDatei.append("\n" + it.get("doku_id"))
|
||||
}
|
||||
else if (LoeschModus == 2)
|
||||
{
|
||||
LogDatei.append("\n" + it.get("doku_id") + " wird gelöscht.")
|
||||
d3.call.document_delete("TestdokumenteLoeschen", true, true, it.get("doku_id"), "", false)
|
||||
countDeleted++
|
||||
d3.log.info(countDeleted + " von " + resultset.size() + " Dokumente geloescht.")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
d3.log.error ("Dokumente loeschen: Fehler in Script aufgetreten!");
|
||||
}
|
||||
Reference in New Issue
Block a user