31 lines
1.7 KiB
Groovy
31 lines
1.7 KiB
Groovy
//Dieses Skript stellt Dokumente aus dem Papierkorb wieder her.
|
|
//Ausgeführt wird dieses Skript per d.3 server interface, zuvor muss das SQL-Statement angepasst werden. Das SQL-Statement muss die Dokumenten-IDs der wiederherzustellenden Dokumente liefern.
|
|
//Es muss ein Benutzer "scriptUser" angegeben werden, der volle Rechte für die entsprechenden Dokumente hat. (Um den Aktenplan anzutriggern)
|
|
|
|
import com.dvelop.d3.server.Document
|
|
import com.dvelop.d3.server.core.D3Interface
|
|
import com.dvelop.d3.server.exceptions.SQLException
|
|
import com.dvelop.d3.server.exceptions.D3Exception
|
|
String scriptName = getClass().getName()
|
|
|
|
// d.3 User which executes the restore and check of the folder schemes
|
|
String scriptUser = "d3_groovy"
|
|
final def maxRows = 3000
|
|
|
|
//Einzelne Dokumente/Akten anhand der ID
|
|
//def resultSet = d3.sql.executeAndGet("select doc_id from doc_recycler where doc_id = 'DocumentsToBeRestored'", maxRows)
|
|
|
|
//oder anhand Metadaten (hier dok_dat_feld_3 = Aktenzeichen) aus dem Papierkorb
|
|
def resultSet = d3.sql.executeAndGet("select doc_id, delete_date, delete_user from doc_recycler where to_char(delete_date, 'MM-DD-YYYY') = to_char(sysdate, 'MM-DD-YYYY') and delete_user = 'd3_async' and db_tables_data like '%\"dok_dat_feld_3\": \"A-000004-2022\"%'")
|
|
resultSet.each{
|
|
try {
|
|
d3.log.info ("Restoring document with ID " + it.doc_id)
|
|
d3.call.restore_from_history (0, it.doc_id, '');
|
|
|
|
d3.log.info ("Checking folder scheme for document with ID " + it.doc_id)
|
|
Document myDoc = d3.archive.getDocument(it.doc_id, scriptUser)
|
|
myDoc.checkFolderScheme(scriptUser)
|
|
} catch (D3Exception e) {
|
|
d3.log.error("Error checking folder scheme " + e.getMessage())
|
|
}
|
|
} |