112 lines
4.2 KiB
Groovy
112 lines
4.2 KiB
Groovy
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!");
|
|
} |