//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()) } }