Vorlagen ergänzt
This commit is contained in:
102
_Vorlagen/Groovy-Skripte/automaticRelease.groovy
Normal file
102
_Vorlagen/Groovy-Skripte/automaticRelease.groovy
Normal file
@@ -0,0 +1,102 @@
|
||||
import com.dvelop.d3.server.core.D3Interface
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
D3Interface d3 = getProperty("d3");
|
||||
d3.log.info("Start Skript: Automatische Freigabe");
|
||||
|
||||
/**
|
||||
* ----------------------Start Initialisierung----------------------------------------------
|
||||
*/
|
||||
|
||||
int returnCode;
|
||||
String currentDB;
|
||||
final String BEARBEITUNG = "DOC_STAT_PROCESSING";
|
||||
final String FREIGABE = "DOC_STAT_RELEASE";
|
||||
final String PRUEFUNG = "DOC_STAT_VERIFICATION";
|
||||
def docuIdList = [];
|
||||
def dtsList = [];
|
||||
|
||||
/**
|
||||
* ----------------------Ende Initialisierung-----------------------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
* ----------------------Konfigurationsbereich allgemein------------------------------------
|
||||
*/
|
||||
|
||||
//Zeitintervall (Tage) für die automatische Freigabe
|
||||
int daysOff = 14;
|
||||
|
||||
//Angabe der relevanten Dokumentart-Kürzel
|
||||
dtsList = ["KRDOK"];
|
||||
|
||||
|
||||
//Angabe des ausführenden Benutzers
|
||||
def d3User = "dvelop";
|
||||
|
||||
/**
|
||||
* ----------------------Ende Konfigurationsbereich allgemein-------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
* ----------------------Konfigurationsbereich SQL-------------------------------------------
|
||||
*/
|
||||
|
||||
def dtsString = String.join("','", dtsList);
|
||||
d3.log.info("Dokumentart(en): ${dtsString}");
|
||||
|
||||
//Datumsgrente ermitteln
|
||||
def date = new SimpleDateFormat("dd.MM.yyyy").format(new Date() - daysOff);
|
||||
d3.log.info("Datumsgrenze: ${date}");
|
||||
|
||||
//Prüfung des Datenbank-Servers
|
||||
String dbServer = d3.config.value("db_server");
|
||||
d3.log.info("Datenbank: ${dbServer}");
|
||||
|
||||
if(dbServer == "ORAC" || dbServer == "DB2") {
|
||||
currentDB = "to_date('${date}','DD.MM.YYYY')";
|
||||
}
|
||||
|
||||
if(dbServer == "MSQL") {
|
||||
currentDB = "CONVERT(DATETIME, '${date}', 104)";
|
||||
}
|
||||
String sqlStm = """select firmen_spezifisch.doku_id as dokId from phys_datei
|
||||
inner join firmen_spezifisch on (firmen_spezifisch.doku_id = phys_datei.doku_id)
|
||||
where dokuart in ( '${dtsString}' )
|
||||
and logi_verzeichnis in ('Be', 'Pr')
|
||||
and last_update_attr <= ${currentDB}""";
|
||||
|
||||
d3.log.info("SQL: ${sqlStm}");
|
||||
|
||||
def resultset = d3.sql.executeAndGet(sqlStm);
|
||||
|
||||
docuIdList = resultset.collect{ it.dokId };
|
||||
|
||||
/**
|
||||
* ----------------------Ende Konfigurationsbereich SQL---------------------------------------
|
||||
*/
|
||||
|
||||
for(String id : docuIdList)
|
||||
{
|
||||
// Hole aktuellen Status des Dokuments
|
||||
def currentDoc = d3.archive.getDocument(id, d3User );
|
||||
def docStatus = currentDoc.getStatus();
|
||||
|
||||
d3.log.info("Aktuelle ID: ${id}");
|
||||
|
||||
if(docStatus.toString() == BEARBEITUNG || docStatus.toString() == PRUEFUNG)
|
||||
{
|
||||
returnCode = currentDoc.transfer("Freigabe", "", "Automatischer Statustransfer", false, 0, "");
|
||||
|
||||
if(returnCode != 0)
|
||||
{
|
||||
d3.log.error("Statustransfer 'Freigabe' für DokID: ${id} ist fehlgeschlafen! Fehlercode: ${returnCode}");
|
||||
} else {
|
||||
d3.log.info("Statustransfer 'Freigabe' für DokID: ${id} war erfolgreich!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
d3.log.info("Ende Skript: Automatische Freigabe");
|
||||
Reference in New Issue
Block a user