Die Übertragung von IFAS-Elementen zu Elementen im Dokumentenmanagementsystem (DMS)
Zurück
Übersicht der Batch-Job-Themen:
- Funktionaler Ablauf & grundlegende Übertragungsregeln
- Die Zuordnung von IFAS Elementen zu Elementen im DMS
- Zurücksetzen der Testumgebung
- Berichte / Statistiken
- Konfiguration des Batch-Jobs
- Ausführungszeit des des Batch-Jobs konfigurieren
- - Beispiel-Konfiguration
- Installation des Batch-Jobs auf dem Tomcat
Der funktionale Ablauf des BatchJobs
Anhand von Datenbankabfragen wird ermittelt welche Elemente aus IFAS nach HeDok übertragen werden müssen. Das Kriterium ist der Status. Ist der Status auf '1' gesetzt, sind die Daten nach HeDok zu übertragen. Bei der Übertragung werden die erforderlichen Zwischenebenen bei Bedarf erzeugt. Für eine Tätigkeit wird also der Vorgang und die Betriebsstätte in HeDok angelegt, falls diese noch nicht vorhanden sind. Wenn ein Element erfolgreich in HeDok angelegt wurde, wird die Zuordnung in cmis_mapping gespeichert und der Status wird auf '2' gesetzt. Ist die Erstellung nicht erfolgreich, wird der Status nicht geändert und die Übertragung wird beim nächsten Durchlauf erneut versucht.
Grundlegende Übertragungsregeln:
Schreiben werden immer im Rahmen eines Vorgangs bzw. einer Tätigkeit übertragen.
Das heißt: es existiert kein Schreiben ohne eine Tätigkeit. Übertragen wird sobald ein Element auf abgeschlossen gesetzt wird.
Wird ein Schreiben übertragen, werden die erforderlichen übergeordneten Elemente (Vorgang, Akte) im DMS erstellt.
Wird ein Vorgang abgeschlossen, werden alle untergeordneten Elemente abgeschlossen und in das DMS übertragen.
Posteingänge werden nach einer Zuordnung zu einem Vorgang übertragen.
Die Zuordnung von IFAS-Elementen zu Elementen im DMS
Mapping: IFAS-Daten nach HeDok
Betriebsstätte
Eine Betriebstätte entspricht einer Akte (Typ ccd:processinstance1) in HeDok.
HeDok CMIS Bezeichnung IFAS Aktenbezeichnung Cmis:name Betriebsstätten-Nummer Akteninhalt CS6 Name der BS, Betriebsstätten-Nummer Bemerkung CS2 Anschrift der BS Aufbewahrungsdauer {Udc3} Defaultwert (999)
Folgende Werte werden beim Erstellen der Tätigkeit von HeDok automatisch vergeben:
Vorgang
- Erstelldatum
- Aktenplaneintrag
Der Vorgang wird unterhalb der zugeordneten Betriebsstätte angelegt.
Ein Vorgang in IFAS entspricht einem Vorgang (Typ ccd:processinstance3) in HeDok.
HeDok CMIS Bezeichnung IFAS Name Cmis:name Betriebsstätten-Nummer Akteninhalt CS6 GZ Behärde Bemerkung CS2 Bemerkung zum Vorgang Historie CS3 GZ Behärde Bearbeitet von CD3 Datum des Vorgangs Aufbewahrungsdauer {Udc3} Aufbewahrungsdauer in Jahren (falls nicht gesetzt: Default 5 Jahre)
Tätigkeit
Eine Tätigkeit wird als PDF Dokument unterhalb des zugeordneten Vorgangs erstellt. Eine Tätigkeit in IFAS entspricht einem internen Dokument (Typ ccd:documnent3) in HeDok. Der Inhalt des PDF Dokuments entspricht dem PDF das erzeugt wird, wenn der zugehörige Menüpunkt beim Bearbeiten der Tätigkeit ausgewählt wird.
HeDok CMIS Bezeichnung IFAS Name Cmis:name Bezeichnung vom Datum angelegt
Schreiben
Ein Schreiben wird als Dokument unterhalb des zugeordneten Vorgangs erstellt. Der Typ des Schreibens in HeDok wird folgendermaßen zugeordnet:Der Betreff (CS6) und der Name (cmis:name) werden auf den Namen des Schreibens (ohne Pfadangabe) gesetzt.
- Angehängte Dokumente zu Tätigkeiten ccd:document3
- Ausgehendes Schreiben ccd:document1
- Posteingang ccd:document2
- Default cmis:document
Gegebenenfalls wird der Name gekürzt. Die maximale Länge für Name in HeDok sind 20 Zeichen.
Übertragung von Schreiben / angehängten Dateien / Übersichtsdokumente zu Vorgängen, Poststücken, Tätigkeiten zu Dateien im Vorgang im DMS
- Betriebsstätten-/Vorgangs-/Tätigkeitsübersicht
IFAS DMS Bemerkung Datum der Betriebsstätte, des Vorgangs, der Tätigkeit Briefdatum Bearbeiter Ersteller Bemerkung der Betriebsstätte, des Vorgangs, der Tätigkeit Betreff
angehängte Datei
IFAS DMS Bemerkung Datum der Datei Briefdatum Bearbeiter Ersteller Dateiname Betreff
Poststück
IFAS DMS Bemerkung Ein- bzw. Ausgangsdatum Briefdatum Bearbeiter Ersteller PO Akz Betreff
Zurücksetzen der Testumgebung
Um die HeDok Testumgebung wieder in den ursprünglichen Zustand (bevor Daten nach HeDok übertragen wurden) zu versetzen sind folgende Schritte erforderlich:In der Tabelle cmis_mapping wird die Zuordnung der IFAS Elemente zu den entsprechenden Elementen im HeDok gespeichert.
- Löschen der durch den Batchjob erstellten Elemente in HeDok
- In der IFAS Datenbank die Zuordnungstabelle cmis_mapping leeren
- Löschen der Felder cmis_object_id und cmis_instanz in der Tabelle bs_dok
- den Status der nach HeDok übertragenen Elemente (Vorgänge, Tätigkeiten, Schreiben etc.) von nach HeDok übertragen auf abgeschlossen zurücksetzen
Die Felder ifas_key und ifas_type bestimmen das IFAS Element. In cmis_object_id wird die Objekt-Id des zugehörigen Elementes in HeDok gespeichert. Nach dem Löschen der Daten in HeDok ist diese Tabelle komplett zu leeren.
Für die Schreiben wird die Zuordnung zu den HeDok Elementen nicht in cmis_mapping gespeichert. Hier ist die Objekt-Id in der Spalte cmis_object_id zu dem jeweiligen Schreiben abgelegt. Für alle nach HeDok übertragenen Dokumente sind die Spalten cmis_object_id und cmis_instanz zu leeren. Damit wieder erkannt werden kann ob eine Übertragung nach HeDok erforderlich ist, muss der Status für alle übertragenen Elemente (Vorgänge, Tätigkeiten, Schreiben) auf den Wert abgeschlossen zurückgesetzt werden.
Folgende Datenbankkommandos können zum zurücksetzen der Daten in der IFAS Datenbank nach dem Löschen in HeDok verwendet werden.
Achtung die Daten werden endgültig gelöscht/zurückgesetzt. Die Kommandos also nur in der Testumgebung verwenden.
delete * from cmis_mapping;
update bs_dok set status = 1, cmis_object_id = null, cmis_instanz = null where status = 2 and gueltig_bis = 0;
update vorgang set status = 1 where status = 2 and gueltig_bis = 0;
update ia set status = 1 where status = 2 and gueltig_bis = 0;
update po set status = 1 where status = 2 and gueltig_bis = 0;
Berichte / Statistiken
Innerhalb des Update/Download-Bereiches zum Thema HeDok stehen 2 Berichte zur Verfügung, die eine Auswertung über die zuletzt übertragenen Daten ermöglicht.
Unter anderem als anschauliche Chart-Grafik, wie nachfolgend abgebildet:
![]()
Die Berichte Statistik der an HeDok uebertragenen Daten und Chart-Statistik der an HeDok uebertragenen Daten können über die folgende Seite herunter geladen werden.
HeDok-Berichts-Download.
Übertragung von Vorgangs-Informationen zu Metadaten des Vorgangs im DMS
IFAS HeDok-Akte Bemerkung Vorgangsart (neu) Vorgangsinhalt Pos. 1 Rechtsquelle (neu) Vorgangsinhalt Pos. 2 Betreff (neu) Bemerkungen Datum der Tätigkeit Vorgangsinhalt Pos.3;
Erstelldatum = TransferdatumAz. / Gz. Historie GZ besser wäre ein neues Feld PE / Beginn (neu) Bearbeitung von optional Zust. SB (neu) Ersteller Wenn nicht möglich: Bemerkungen Pos.4 mit Vortext Zuständiger Sachbearbeiter: Aufbewahrungsfrist (neu) Aufbewahrungsfrist 5 Jahre und Klappmenü (variabel in Abh. von Vorgangsart / Rechtsquelle in IFAS sowie der Verfügung sdV (= Status des Vorganges)
IFAS Dokumentenmanagementsystem Betriebsstätte Akte Betriebsstätten-Übersicht PDF in der Akte mit der Betriebsstätten-Übersicht Vorgang der Vorgang Tätigkeit PDF im Vorgang mit dem Ausdruck der Tätigkeit an der Tätigkeit angehängte Dateien Dateien zum Vorgang Posteingang PDF im Vorgang mit dem Ausdruck des Posteingangs an einen Posteingang angehängte Dateien Dateien zum Vorgang Postausgang PDF im Vorgang mit dem Ausdruck des Postausgangs an einen Postausgang angehäte Dateien Dateien zum Vorgang
Übertragung von Betriebsstätten-Informationen zu Metadaten der Akte im DMS
BKReg Ermächtigungen HeDok-Akte Bemerkung Name und Vorname Name und Vorname Akteninhalt BT-Nummer BT-Nummer Akteninhalt PLZ PLZ Bemerkungen Ort Ort Akteninhalt - Geschäftszeichen aus HeDok - Aktenplaneintrag gemäß Kap. 6.1 - Aufbewahrungsdauer 999 Jahre und Klappmenü
Konfiguration des Batch-Jobs
Die Konfigurationsdateien für den Batchjob wurden aus dem Verzeichnis für die Webanwendung in ein externes Verzeichnis verschoben. Das bringt Vorteile beim Aktualisieren der Webanwendung, da die Konfiguration nicht beim Aktualisieren der Webanwendung überschrieben wird.
Die Konfigurationsdateien werden im Verzeichnis C:\ifas\hedok erwartet. Um die Umgebung entsprechend vorzubereiten ist die Zip-Datei hedok.zip in das Verzeichnis c:\ifas zu entpacken.
Die Verbindung zur Datenbank erfolgt über die JDBC Schnittstelle. Die Werte für DATABASE_CONNECT, UID und PWD sind in der Datei ndat.dft anzupassen. Die integrierte Anmeldung des MS SQL Servers wird nicht unterstützt.
In der standard.cnf wird das Vorlagenverzeichnis für den Batchjob gesetzt. Hier ist das Verzeichnis mit den mitgelieferten Vorlagen anzugeben (c:\ifas\Vorlagen\ifas), da für den Export nach PDF angepasste Vorlagen benötigt werden.
Ausführungszeit für den Batch-Job konfigurieren
Die Zeiten zu denen der Batchjob ausgeführt werden soll, werden in der Datei ifas_jobs.xml festgelegt. Hier ist die Zeile mit dem Element cron-expression entscheidend. Das Format entspricht dem auf Unix Systemen verwendeten crontab.
<cron-expression> 0 30 9,11 * * ?</cron-expression>
Das Beispiel startet den Job jeden Tag jeweils um 09:30 und 11:30.
Beispiel-Konfiguration des Batch-Jobs
Auszug aus der Datei standard.cnf:
# ƒile = c:\ifas\HeDok\standard.cnf 16.07.2014 11:45:00
DBSCHICHT=NdatJdbc
DBNAME=IFAS
#CMIS_BATCH_VORGANG_WHITELIST="79/2017"
NDATPATH=c:/ifas/HeDok
#NDAT_RMI_PORT=1099
#HEDOK_AUTOABSCHLUSS_TESTLAUF=1
# DB Puffer abschalten
MAX_DB_PUFFER=0
# Texte explizit setzen
#TEXTE=c:/ifas/bin/texte
Die Datei ndat.dft zur Konfiguration der Datenbankverbindung:
[IFAS]
ndat-type=ndat-jdbc
DATABASE_DRIVER=com.microsoft.sqlserver.jdbc.SQLServerDriver
DATABASE_CONNECT=jdbc:sqlserver://vm-mssql-2012.duisburg.kisters.de;databaseName=IFAS-Hessen;
lock_table_stmt=NULL
lock_table_test1=Could not position
lock_table_test2=Cannot lock table
lock_table_test3=Cannot read system catalog (systables).
lock_table_test4=Could not do a physical-order read to fetch next row.
db_set0=SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
db_lock_time=30
#pwd_crypt=1
UID=sa
PWD=secret
#rmi_trace_port=1099
#dbtrace=$catalina_base/logs/ndat_ifas-tomcat.dbg
stack_trace_classes=de.kisters.tools, de.kisters.ifas
dbtime=2
db_malloc=1
count_distinct=0
nullable=0
transaction=1
multi_connect=2
Die Datei ifas_jobs.xml - zur Konfiguration der auszuführenden Jobs
<?xml version='1.0' encoding='utf-8'?>
<!-- Job Definitions for IFAS -->
<job-scheduling-data xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd"
version="1.8">
<schedule>
<job>
<name>HeDok Job</name>
<group>IFAS</group>
<description>Job zum übertragen von IFAS-Daten nach HeDok</description>
<job-class>de.kisters.ifas.dmstransfer.hedok.HeDokJob</job-class>
<job-data-map>
<entry>
<key>KONFIGDIR</key>
<value>c:/ifas/HeDok</value>
</entry>
</job-data-map>
</job>
<job>
<name>AutoAbschliessen Job</name>
<group>IFAS</group>
<description>Job zum automatischen abschließen von IFAS Vorgängen und Tätigkeiten nach vorgegebener Zeit</description>
<job-class>de.kisters.ifas.dmstransfer.hedok.AutoAbschlussJob</job-class>
<job-data-map>
<entry>
<key>KONFIGDIR</key>
<value>c:/ifas/HeDok</value>
</entry>
</job-data-map>
</job>
<trigger>
<cron>
<name>HeDokTrigger</name>
<group>IFAS_TRIGGER</group>
<job-name>HeDok Job</job-name>
<job-group>IFAS</job-group>
<!-- Angaben wie bei cron -->
<!-- s. http://www.quartz-scheduler.org/documentation/quartz-2.2.x/tutorials/tutorial-lesson-06 -->
<!-- Sekunden Minuten Stunden Tag Monat Wochentag -->
<!-- hier Montags bis Freitags zwischen 06:00 und 20:00 jeweils zu vollen Stunde -->
<!-- <cron-expression>0 0 6-20 * * MON-FRI</cron-expression> -->
<cron-expression>0 46 16 * * ?</cron-expression>
</cron>
</trigger>
<trigger>
<cron>
<name>AutoAbschlussTrigger</name>
<group>IFAS_TRIGGER</group>
<job-name>AutoAbschliessen Job</job-name>
<job-group>IFAS</job-group>
<!-- hier täglich um 23:00 -->
<cron-expression>0 45 16 * * ?</cron-expression>
</cron>
</trigger>
</schedule>
</job-scheduling-data>
Die Datei quartz.properties - die Konfigurationsdatei für den Scheduler
org.quartz.scheduler.instanceName=IfasScheduler
org.quartz.scheduler.skipUpdateCheck=true
#org.quartz.threadPool.makeThreadsDaemons=true
#org.quartz.scheduler.makeSchedulerThreadDaemon=true
org.quartz.threadPool.threadCount=1
org.quartz.plugin.jobInitializer.class: org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin
org.quartz.plugin.jobInitializer.fileNames: c:/ifas/hedok/ifas_jobs.xml
org.quartz.plugin.jobInitializer.failOnFileNotFound: true
org.quartz.plugin.jobInitializer.scanInterval: 600
org.quartz.plugin.jobInitializer.wrapInUserTransaction: false
Die Datei log4j.properties - zur Konfiguration des Loggings
log4j.rootLogger=ERROR, CONSOLE
# Appenders
log4j.appender.HEDOK=org.apache.log4j.DailyRollingFileAppender
log4j.appender.HEDOK.File=${catalina.base}/logs/hedok.log
log4j.appender.HEDOK.Append=true
log4j.appender.HEDOK.Encoding=UTF-8
# Roll-over the log once per day
log4j.appender.HEDOK.DatePattern='.'yyyy-MM-dd'.log'
#log4j.appender.HEDOK.layout = org.apache.log4j.EnhancedPatternLayout
#log4j.appender.HEDOK.layout.ConversionPattern = %d [%t] %-5p %c{3.}(%L) %x - %m%n
log4j.appender.HEDOK.layout = org.apache.log4j.PatternLayout
log4j.appender.HEDOK.layout.ConversionPattern = %d [%t] %-5p %c{3} %x - %m%n
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=WARN
log4j.appender.CONSOLE.Encoding=CP1252
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c{3} %x - %m%n
# Loggers
log4j.logger.de.kisters.ifas.dmstransfer.hedok=DEBUG, HEDOK
#log4j.additivity.de.kisters.ifas.hedok=false
log4j.logger.org.quartz=WARN, HEDOK
#log4j.additivity.org.quartz=false
log4j.logger.org.apache.cxf=WARN, HEDOK
log4j.logger.org.apache.chemistry.opencmis=WARN, HEDOK
log4j.additivity.org.apache.chemistry.opencmis=false
Installation des Batch-Jobs auf dem Tomcat
Die Programmdateien für den Batchjob werden als war-Datei ausgeliefert. Um die Dateien auf dem tomcat zu installieren, wird die war-Datei über die Verwaltungsoberfläche des tomcat auf den Server übertragen.
In der Standardinstallation ist auf der Startseite ein Link zur Verwaltungsoberfläche eingetragen.
Zum übertragen der war-Datei die Datei auswählen und anschließend mit Deploy die Übertragung starten. Die Webanwendung wird auf den Server übertragen, entpackt und automatisch gestartet. Nach Abschluss der Übertragung existiert eine zusätzliche Webanwendung hedok.
Ist die Webanwendung bereits auf dem Server vorhanden, ist sie zunächst zu stoppen und anschließend mit undeploy vom Server zu entfernen. Danach kann die Webanwendung erneut installiert werden.
Log-Dateien für den Batch-Job
Die Logdateien befinden werden im log Verzeichnis der tomcat Installation abgelegt. Die Aktionen des Batchjob werden in der Datei hedok.log protokolliert. Für den Testbetrieb ist zusätzlich die Ndat-Debug Datei aktiviert (ndat_ifas-tomcat.dbg).