587 lines
20 KiB
Groovy
587 lines
20 KiB
Groovy
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
|
|
import groovy.transform.Field
|
|
|
|
D3Interface d3 = getProperty("d3");
|
|
|
|
def prg = "migration_akte.groovy";
|
|
def version = "0.1";
|
|
def kunde = "Dr. Kleeberg & Partner GmbH";
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
// debug = 0 => es finden Änderungen am Datenbestand statt
|
|
// debug = 1 => es finden keine Änderungen am Datenbestand statt
|
|
@Field debug = 0;
|
|
|
|
|
|
|
|
// In welcher Tabelle soll nach den zu erstellenden Akten gesucht werden?
|
|
@Field zieltabelle = "mig_beratungsakte";
|
|
|
|
|
|
// Konfiguration der Aktenartkürzel
|
|
@Field dokuart_sammelakte = "ABESA";
|
|
@Field dokuart_hauptakte = "ABERB";
|
|
@Field dokuart_oberregisterakte = "ABERO";
|
|
@Field dokuart_registerakte = "ABERA";
|
|
|
|
|
|
|
|
// der hier konfigurierte Wert wird verwendet, wenn kein sonstiger Hauptaktenname gefunden wird.
|
|
@Field standard_hauptaktenname = "Beratungsakte";
|
|
|
|
|
|
// DDF 1 / ADM_Aktentyp aus der Aktenart ADM_Verwaltung Mandantenakte (AVMNT) - mit diesem Schlüssel werden die benötigten (Ober-)Register aus den Stammdaten in der Aktenart AVMNT ermittelt.
|
|
@Field aktenschluessel = "Beratungsakte";
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
|
|
def debugtext;
|
|
|
|
switch (debug)
|
|
{
|
|
case 0:
|
|
debugtext = "ausgeschaltet";
|
|
break;
|
|
default:
|
|
debugtext = "eingeschaltet (keine Aenderungen am Datenbestand)";
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
xlog( d3, 4, "************************************************" );
|
|
xlog( d3, 4, "* Programm : " + prg );
|
|
xlog( d3, 4, "* Version : " + version );
|
|
xlog( d3, 4, "* Kunde : " + kunde );
|
|
xlog( d3, 4, "* geschrieben von : calb / d.velop AG" );
|
|
xlog( d3, 4, "* (c) d.velop AG" );
|
|
xlog( d3, 4, "************************************************" );
|
|
|
|
|
|
xlog( d3, 4, "Parameter: " );
|
|
xlog( d3, 4, "* DEBUG : " + debugtext );
|
|
xlog( d3, 4, "* Aktenart Sammelakte : " + dokuart_sammelakte );
|
|
xlog( d3, 4, "* Aktenart Hauptakte : " + dokuart_hauptakte );
|
|
xlog( d3, 4, "* Aktenart Oberregisterakte : " + dokuart_oberregisterakte );
|
|
xlog( d3, 4, "* Aktenart Registerakte : " + dokuart_registerakte );
|
|
xlog( d3, 4, "* Zieltabelle : " + zieltabelle );
|
|
xlog( d3, 4, "* Standard-Hauptaktenname : " + standard_hauptaktenname );
|
|
xlog( d3, 4, "* Aktenschluessel : " + aktenschluessel );
|
|
|
|
|
|
|
|
|
|
xlog( d3, 4, "************************************************" );
|
|
|
|
|
|
|
|
|
|
def sqlQuery = "select top (100) id,ddf1,ddf48,ddf10,ddf21,ddf22,ddf25,ddf37,ddf42,ddf60,ddf69 from " + zieltabelle + " where fehler is null and doku_id is null and id >= 7000 and id < 14000 ";
|
|
|
|
treffer = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
xlog( d3, 4, " Es wurden " + treffer.size() + " Treffer gefunden." );
|
|
xlog( d3, 4, "************************************************" );
|
|
|
|
if ( treffer.size() > 0 )
|
|
{
|
|
for ( i = 0; i < treffer.size(); i++ )
|
|
{
|
|
// Prüfung, ob die Mandantnummer in der Aktennummer zu der Mandantnummer aus der Tabelle passt - andernfalls Fehler.
|
|
|
|
def mandantnr_aus_aktennr = treffer[ i ].ddf10.substring( 0, 5 );
|
|
|
|
//JFEL toString eingefügt, da der Vergleich sonst scheitert.
|
|
//if ( mandantnr_aus_aktennr == treffer[ i ].ddf1 )
|
|
if ( mandantnr_aus_aktennr == treffer[ i ].ddf1.toString() )
|
|
{
|
|
// Es wird eine neue Hauptakte erstellt
|
|
|
|
def newDocfield_1, newDocfield_2, newDocfield_10, newDocfield_13, newDocfield_21, newDocfield_22, newDocfield_25, newDocfield_37, newDocfield_42, newDocfield_60 = [ ], newDocfield_69 = [ ];
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": setze Mandantennummer DDF1 : [" + treffer[ i ].ddf1 + "]" );
|
|
|
|
//JFEL toString eingefügt
|
|
//newDocfield_1 = treffer[ i ].ddf1;
|
|
newDocfield_1 = treffer[ i ].ddf1.toString();
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": setze Aktennummer DDF10 : [" + treffer[ i ].ddf10 + "]" );
|
|
newDocfield_10 = treffer[ i ].ddf10;
|
|
|
|
if ( treffer[ i ].ddf21 )
|
|
{
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": setze Aktenname DDF21 : [" + treffer[ i ].ddf21 + "]" );
|
|
newDocfield_21 = treffer[ i ].ddf21;
|
|
}
|
|
else
|
|
{
|
|
xlog( d3, 3, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Aktenname wurde nicht gefunden. Setze Standardbezeichnung '" + standard_hauptaktenname + "'." );
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": setze Aktenname DDF21 : <" + standard_hauptaktenname + ">" );
|
|
newDocfield_21 = standard_hauptaktenname;
|
|
}
|
|
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": setze physischer Aufbewahrungsort DDF22 : [" + treffer[ i ].ddf22 + "]" );
|
|
newDocfield_22 = treffer[ i ].ddf22;
|
|
|
|
if ( treffer[ i ].ddf25 )
|
|
{
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": setze Geschaeftsfuehrer DDF25 : [" + treffer[ i ].ddf25 + "]" );
|
|
newDocfield_25 = treffer[ i ].ddf25;
|
|
}
|
|
else
|
|
{
|
|
def STATEMENT = "select dok_dat_feld_25 from firmen_spezifisch where kue_dokuart = 'AMAND' and dok_dat_feld_1 = '" + newDocfield_1 + "'";
|
|
def treffer_STATEMENT = d3.sql.executeAndGet( (String) STATEMENT );
|
|
|
|
if ( treffer_STATEMENT.size() > 0 )
|
|
{
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": setze Geschaeftsfuehrer DDF25 aus M.-Akte : [" + treffer_STATEMENT[ 0 ].dok_dat_feld_25 + "]" );
|
|
newDocfield_25 = treffer_STATEMENT[ 0 ].dok_dat_feld_25;
|
|
}
|
|
else
|
|
{
|
|
xlog( d3, 3, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Es konnte kein Wert für Geschaeftsfuehrer / DDF25 gefunden werden." );
|
|
}
|
|
}
|
|
|
|
if ( treffer[ i ].ddf37 )
|
|
{
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": setze Auftragsverantwortlicher DDF37 : [" + treffer[ i ].ddf37 + "]" );
|
|
newDocfield_37 = treffer[ i ].ddf37;
|
|
}
|
|
else
|
|
{
|
|
def STATEMENT = "select dok_dat_feld_37 from firmen_spezifisch where kue_dokuart = 'AMAND' and dok_dat_feld_1 = '" + newDocfield_1 + "'";
|
|
def treffer_STATEMENT = d3.sql.executeAndGet( (String) STATEMENT );
|
|
|
|
if ( treffer_STATEMENT.size() > 0 )
|
|
{
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": setze Auftragsverantwortlicher DDF37 aus M.-Akte: [" + treffer_STATEMENT[ 0 ].dok_dat_feld_37 + "]" );
|
|
newDocfield_37 = treffer_STATEMENT[ 0 ].dok_dat_feld_37;
|
|
}
|
|
else
|
|
{
|
|
xlog( d3, 3, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Es konnte kein Wert für Auftragsverantwortlicher / DDF37 gefunden werden." );
|
|
}
|
|
}
|
|
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": setze Briefkopf DDF42 : [" + treffer[ i ].ddf42 + "]" );
|
|
newDocfield_42 = treffer[ i ].ddf42;
|
|
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": setze Unique-ID Migration DDF48 : [" + treffer[ i ].ddf48 + "]" );
|
|
newDocfield_48 = treffer[ i ].ddf48;
|
|
|
|
// Postempfänger
|
|
if ( treffer[ i ].ddf60 )
|
|
{
|
|
def splitted_str_array = treffer[ i ].ddf60.split( ';' );
|
|
for ( int j = 0; j < splitted_str_array.length; j++ )
|
|
{
|
|
def filler = " ";
|
|
if ( j >= 10 )
|
|
{
|
|
filler = "";
|
|
}
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Setze Postempfaenger DDF60 / " + filler + j + " : [" + splitted_str_array[ j ] + "]" );
|
|
newDocfield_60[ j ] = splitted_str_array[ j ];
|
|
}
|
|
}
|
|
|
|
|
|
// Berechtigter:
|
|
if ( treffer[ i ].ddf69 )
|
|
{
|
|
def splitted_str_array = treffer[ i ].ddf69.split( ';' );
|
|
for ( int j = 0; j < splitted_str_array.length; j++ )
|
|
{
|
|
def filler = " ";
|
|
if ( j >= 10 )
|
|
{
|
|
filler = "";
|
|
}
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Setze Berechtigter DDF69 / " + filler + j + " : [" + splitted_str_array[ j ] + "]" );
|
|
newDocfield_69[ j ] = splitted_str_array[ j ];
|
|
}
|
|
}
|
|
|
|
|
|
// Prüfung, ob zu dieser Hauptakte eine passende Sammelakte existiert
|
|
// Falls ja: Übernahme der Mandantenstammdaten der entsprechenden Akte
|
|
// Falls nein: Fehler in DB eintragen und Abbruch der Verarbeitung dieses Treffers
|
|
|
|
sqlQuery = "select doku_id, dok_dat_feld_1, dok_dat_feld_2, dok_dat_feld_13 from firmen_spezifisch where kue_dokuart = '" + dokuart_sammelakte + "' and dok_dat_feld_1 = '" + treffer[ i ].ddf1 + "'";
|
|
|
|
ergebnis = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( ergebnis.size() > 0 )
|
|
{
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": setze Mandantenname DDF2 : [" + ergebnis[ 0 ].dok_dat_feld_2 + "]" );
|
|
newDocfield_2 = ergebnis[ 0 ].dok_dat_feld_2;
|
|
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": setze Mandantengruppennummer DDF13 : [" + ergebnis[ 0 ].dok_dat_feld_13 + "]" );
|
|
newDocfield_13 = ergebnis[ 0 ].dok_dat_feld_13;
|
|
|
|
// Akte mit Stammdaten und Infos aus der Tabelle "zieltabelle" erstellen
|
|
// Registerstruktur unterhalb ebenfalls erstellen
|
|
|
|
Document newDoc = d3.archive.newDocument();
|
|
newDoc.type = dokuart_hauptakte;
|
|
|
|
newDoc.status = Document.DocStatus.DOC_STAT_PROCESSING;
|
|
newDoc.editor = "dvelop";
|
|
|
|
newDoc.field[ 1 ] = newDocfield_1;
|
|
newDoc.field[ 2 ] = newDocfield_2;
|
|
newDoc.field[ 10 ] = newDocfield_10;
|
|
newDoc.field[ 13 ] = newDocfield_13;
|
|
newDoc.field[ 21 ] = newDocfield_21;
|
|
newDoc.field[ 22 ] = newDocfield_22;
|
|
newDoc.field[ 25 ] = newDocfield_25;
|
|
newDoc.field[ 37 ] = newDocfield_37;
|
|
newDoc.field[ 42 ] = newDocfield_42;
|
|
newDoc.field[ 48 ] = newDocfield_48;
|
|
|
|
for ( int i = 0; i < newDocfield_60.size(); i++ )
|
|
{
|
|
newDoc.field[ 60 ][ i + 1 ] = newDocfield_60[ i ];
|
|
}
|
|
|
|
for ( int i = 0; i < newDocfield_69.size(); i++ )
|
|
{
|
|
newDoc.field[ 69 ][ i + 1 ] = newDocfield_69[ i ];
|
|
}
|
|
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": =============================" );
|
|
|
|
//Pruefung ob die anzulegende Akte ggf. schon im System angelegt wurde
|
|
sqlQuery = "select doku_id from firmen_spezifisch where kue_dokuart = '" + dokuart_hauptakte + "' and dok_dat_feld_1 = '" + newDocfield_1 + "' AND dok_dat_feld_10 = '" + newDocfield_10 + "'";
|
|
ergebnis = d3.sql.executeAndGet( (String) sqlQuery );
|
|
if ( ergebnis.size() > 0 ) {
|
|
fehler( d3, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Aktenanlage [" + newDoc.field[ 10 ] + "] nicht durchgefuehrt da die Akte bereits existiert, doku_id: " + ergebnis[ 0 ].doku_id, (int) treffer[ i ].id );
|
|
continue;
|
|
}
|
|
|
|
def aktenanlage_erfolgreich = true;
|
|
|
|
if ( debug == 0 )
|
|
{
|
|
try
|
|
{
|
|
newDoc = d3.archive.importDocument( newDoc );
|
|
}
|
|
catch ( D3Exception e )
|
|
{
|
|
fehler( d3, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Akte [" + newDoc.field[ 10 ] + "] konnte nicht erzeugt werden: " + e.message, (int) treffer[ i ].id );
|
|
aktenanlage_erfolgreich = false;
|
|
}
|
|
|
|
if ( aktenanlage_erfolgreich )
|
|
{
|
|
// sichern der erzeugten Doku-ID
|
|
if ( debug == 0 )
|
|
{
|
|
sqlQuery = "update " + zieltabelle + " set doku_id = '" + newDoc.id + "' where id = " + treffer[ i ].id;
|
|
d3.sql.execute( sqlQuery );
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Aktenanlage [" + newDoc.field[ 10 ] + "] erfolgreich, doku_id: [" + newDoc.id + "]" );
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Keine Aktenanlage fuer [" + newDoc.field[ 10 ] + "] (Debug-Modus eingeschaltet)." );
|
|
}
|
|
|
|
|
|
if ( aktenanlage_erfolgreich )
|
|
{
|
|
|
|
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": =============================" );
|
|
|
|
//////////////////////////////////////////
|
|
// Ebene unterhalb der Hauptakte anlegen
|
|
// Dokumentart: Hauptakten-Oberregisterakte, darin alle in den Stammdaten angelegten Oberregister
|
|
|
|
sqlQuery = "select distinct dok_dat_feld_2 from firmen_spezifisch where kue_dokuart = 'AVMNT' and dok_dat_feld_1 = '" + aktenschluessel + "'";
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
resultRows.each
|
|
{
|
|
//xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": erstelle Oberregister-Akte: [" + it.dok_dat_feld_2 + "]" );
|
|
|
|
Document newDocOReg = d3.archive.newDocument();
|
|
|
|
newDocOReg.type = dokuart_oberregisterakte;
|
|
|
|
newDocOReg.status = Document.DocStatus.DOC_STAT_PROCESSING;
|
|
newDocOReg.editor = "dvelop";
|
|
|
|
newDocOReg.field[ 1 ] = newDocfield_1;
|
|
newDocOReg.field[ 2 ] = newDocfield_2;
|
|
newDocOReg.field[ 3 ] = it.dok_dat_feld_2; // Oberregister
|
|
newDocOReg.field[ 10 ] = newDocfield_10;
|
|
newDocOReg.field[ 13 ] = newDocfield_13;
|
|
newDocOReg.field[ 21 ] = newDocfield_21;
|
|
newDocOReg.field[ 25 ] = newDocfield_25;
|
|
newDocOReg.field[ 42 ] = newDocfield_42;
|
|
|
|
for ( int i = 0; i < newDocfield_69.size(); i++ )
|
|
{
|
|
newDocOReg.field[ 69 ][ i + 1 ] = newDocfield_69[ i ];
|
|
}
|
|
|
|
if ( debug == 0 )
|
|
{
|
|
try
|
|
{
|
|
newDocOReg = d3.archive.importDocument( newDocOReg );
|
|
}
|
|
catch ( D3Exception e )
|
|
{
|
|
xlog( d3, 2, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Akte [" + newDoc.field[ 10 ] + "][" + it.dok_dat_feld_2 + "] konnte nicht erzeugt werden: " + e.message );
|
|
aktenanlage_erfolgreich = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Keine Aktenanlage fuer [" + newDoc.field[ 10 ] + "][" + it.dok_dat_feld_2 + "] (Debug-Modus eingeschaltet)." );
|
|
}
|
|
|
|
if ( ( aktenanlage_erfolgreich ) && ( debug == 0 ) )
|
|
{
|
|
//xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Aktenanlage erfolgreich, doku_id: [" + newDoc.id + "][" + newDocOReg.id + "]" );
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Aktenanlage erfolgreich, doku_id: [" + newDoc.id + "][" + newDocOReg.id + "] Register: [" + newDoc.field[ 10 ] + "][" + it.dok_dat_feld_2 + "]" );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Weitere Akten werden wegen Fehler nicht angelegt." );
|
|
}
|
|
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": =============================" );
|
|
|
|
if ( aktenanlage_erfolgreich )
|
|
{
|
|
//////////////////////////////////////////
|
|
// Ebene unterhalb der Hauptakten-Oberregisterakte anlegen
|
|
// Dokumentart: Hauptakten-Registerakte, darin alle in den Stammdaten angelegten Register
|
|
|
|
sqlQuery = "select distinct dok_dat_feld_2, dok_dat_feld_3 from firmen_spezifisch where kue_dokuart = 'AVMNT' and dok_dat_feld_1 = '" + aktenschluessel + "' and dok_dat_feld_3 != ''";
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
resultRows.each
|
|
{
|
|
//xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": erstelle Register-Akte: [" + it.dok_dat_feld_2 + "][" + it.dok_dat_feld_3 + "]" );
|
|
|
|
Document newDocReg = d3.archive.newDocument();
|
|
|
|
newDocReg.type = dokuart_registerakte;
|
|
|
|
newDocReg.status = Document.DocStatus.DOC_STAT_PROCESSING;
|
|
newDocReg.editor = "dvelop";
|
|
|
|
newDocReg.field[ 1 ] = newDocfield_1;
|
|
newDocReg.field[ 2 ] = newDocfield_2;
|
|
newDocReg.field[ 3 ] = it.dok_dat_feld_2; // Oberregister
|
|
newDocReg.field[ 4 ] = it.dok_dat_feld_3; // Register
|
|
newDocReg.field[ 10 ] = newDocfield_10;
|
|
newDocReg.field[ 13 ] = newDocfield_13;
|
|
newDocReg.field[ 21 ] = newDocfield_21;
|
|
newDocReg.field[ 25 ] = newDocfield_25;
|
|
newDocReg.field[ 42 ] = newDocfield_42;
|
|
|
|
|
|
for ( int i = 0; i < newDocfield_69.size(); i++ )
|
|
{
|
|
newDocReg.field[ 69 ][ i + 1 ] = newDocfield_69[ i ];
|
|
}
|
|
|
|
if ( debug == 0 )
|
|
{
|
|
try
|
|
{
|
|
newDocReg = d3.archive.importDocument( newDocReg );
|
|
}
|
|
catch ( D3Exception e )
|
|
{
|
|
xlog( d3, 2, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Akte [" + newDoc.field[ 10 ] + "][" + it.dok_dat_feld_2 + "][" + it.dok_dat_feld_3 + "] konnte nicht erzeugt werden: " + e.message );
|
|
aktenanlage_erfolgreich = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Keine Aktenanlage fuer [" + newDoc.field[ 10 ] + "][" + it.dok_dat_feld_2 + "][" + it.dok_dat_feld_3 + "] (Debug-Modus eingeschaltet)." );
|
|
}
|
|
|
|
if ( ( aktenanlage_erfolgreich ) && ( debug == 0 ) )
|
|
{
|
|
sqlQuery = "select doku_id from firmen_spezifisch where kue_dokuart = '" + dokuart_oberregisterakte + "' and dok_dat_feld_10 = '" + newDoc.field[ 10 ] + "' and dok_dat_feld_3 = '" + it.dok_dat_feld_2 + "'";
|
|
//xlog( d3, 3, sqlQuery );
|
|
e = d3.sql.executeAndGet( sqlQuery );
|
|
def oregdokuid;
|
|
if ( e.size() > 0 )
|
|
{
|
|
oregdokuid = e[0].doku_id;
|
|
}
|
|
xlog( d3, 4, treffer[ i ].ddf10 + " / " + treffer[ i ].id + ": Aktenanlage erfolgreich, doku_id: [" + newDoc.id + "][" + oregdokuid + "][" + newDocReg.id + "] Register: [" + newDoc.field[ 10 ] + "][" + it.dok_dat_feld_2 + "][" + it.dok_dat_feld_3 + "]" );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
fehler( d3, "Es wurde keine passende Sammelakte gefunden. [" + treffer[ i ].ddf10 + "]", (int) treffer[ i ].id );
|
|
}
|
|
|
|
xlog( d3, 4, "************************************************" );
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
// Fehler
|
|
fehler( d3, "Mandantennummer in Tabelle und in Aktennummer unterscheiden sich.", (int) treffer[ i ].id );
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def fehler( D3Interface d3, String meldung, int id )
|
|
{
|
|
def meldung_db;
|
|
|
|
if ( meldung.length() > 250 )
|
|
{
|
|
meldung_db = meldung.substring( 0, 249 );
|
|
}
|
|
else
|
|
{
|
|
meldung_db = meldung;
|
|
}
|
|
|
|
if ( debug == 0 )
|
|
{
|
|
sql = "update " + zieltabelle + " set fehler = '" + meldung_db + "' where id = " + id;
|
|
d3.sql.execute( sql );
|
|
}
|
|
|
|
xlog( d3, 2, meldung );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def xlog( D3Interface d3, int loglevel, String logtext )
|
|
{
|
|
def logdatei = "d:\\d3\\apps\\" + zieltabelle + "_2.txt";
|
|
def g_loglevel = 5;
|
|
def g_logdirect = "BEIDE"; // BEIDE oder D3LOG oder DATEI
|
|
def date = new Date();
|
|
def zeitstempel = date.format( "yyyy.MM.dd HH:mm:ss", TimeZone.getTimeZone('CET') );
|
|
def loglevel_lang = "[INFO ]";
|
|
|
|
|
|
|
|
|
|
|
|
if ( loglevel <= g_loglevel )
|
|
{
|
|
switch ( loglevel )
|
|
{
|
|
case 1:
|
|
loglevel_lang = "[FATAL]";
|
|
|
|
if ( ( g_logdirect == "D3LOG" ) || ( g_logdirect == "BEIDE" ) )
|
|
{
|
|
d3.log.critical( logtext );
|
|
}
|
|
break;
|
|
case 2:
|
|
loglevel_lang = "[ERROR]";
|
|
|
|
if ( ( g_logdirect == "D3LOG" ) || ( g_logdirect == "BEIDE" ) )
|
|
{
|
|
d3.log.error( logtext );
|
|
}
|
|
break;
|
|
case 3:
|
|
loglevel_lang = "[WARN ]";
|
|
|
|
if ( ( g_logdirect == "D3LOG" ) || ( g_logdirect == "BEIDE" ) )
|
|
{
|
|
d3.log.warn( logtext );
|
|
}
|
|
break;
|
|
case 4:
|
|
loglevel_lang = "[INFO ]";
|
|
|
|
if ( ( g_logdirect == "D3LOG" ) || ( g_logdirect == "BEIDE" ) )
|
|
{
|
|
d3.log.info( logtext );
|
|
}
|
|
break;
|
|
case 5:
|
|
loglevel_lang = "[DEBUG]";
|
|
// Da die d.3 Server i.d.R. nicht im Debug-Modus laufen, erscheinen DEBUG-Meldungen nicht im Log.
|
|
if ( ( g_logdirect == "D3LOG" ) || ( g_logdirect == "BEIDE" ) )
|
|
{
|
|
d3.log.debug( logtext );
|
|
}
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
if ( ( g_logdirect == "DATEI" ) || ( g_logdirect == "BEIDE" ) )
|
|
{
|
|
new File( logdatei ).append( zeitstempel + " " + loglevel_lang + " " + logtext + "\n", "UTF8" );
|
|
}
|
|
|
|
|
|
return 0;
|
|
}
|
|
|
|
|