183 lines
5.9 KiB
Plaintext
183 lines
5.9 KiB
Plaintext
|
|
SAVE_SRV_CHANGES_ATTRIBUTES = "1"
|
|
|
|
msg query "Wollen Sie wirklich die Migration 'Attribut Einfachfeld' durchführen?!" confirm_global
|
|
if !confirm_global
|
|
return
|
|
|
|
|
|
//-----------------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
//----------------------Konfigurationsbereich allgemein------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
vars log_folder = "D\:\\Migration" //Übergeordnete Ablage der Logdatei
|
|
vars log_file = "change_field.log" //Name der Logdatei
|
|
vars doc_type = "DPRVZ" //Kürzel der Dokumentart
|
|
vars old_field = "20" //altes Mehrfachfeld
|
|
vars new_field = "31" //Neues Mehrfachfeld
|
|
vars mode = "move" //Modus: move/copy
|
|
|
|
//Achtung: SQL-Statement muss ggfs. zusätzlich angepasst werden
|
|
|
|
//-----------------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
//-----------------Ende Konfigurationsbereich allgemein------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
//Zusammenstellen des Pfads für die Logdatei
|
|
vars logpath = log_folder ## "\\" ## log_file
|
|
vars retval = check_folders_and_files()
|
|
if(retval != 0)
|
|
{
|
|
return 1
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
//----------------------Konfigurationsbereich SQL------------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
vars value_help, value_value
|
|
DBMS DECLARE value_cursor CURSOR FOR \
|
|
select doku_id, dok_dat_feld_:old_field from firmen_spezifisch \
|
|
where kue_dokuart = :+doc_type \
|
|
and dok_dat_feld_:old_field is not null
|
|
|
|
DBMS WITH CURSOR value_cursor ALIAS value_help, value_value
|
|
DBMS WITH CURSOR value_cursor EXECUTE
|
|
while (@dmrowcount > 0)
|
|
{
|
|
call change_doc_type(value_help, value_value)
|
|
DBMS WITH CURSOR value_cursor CONTINUE
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
//-----------------Ende Konfigurationsbereich SQL------------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
call write_log("Ende Kopieraktion")
|
|
msg emsg "Skipt wurde beendet"
|
|
|
|
//-----------------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
//----------------------Funktionsbereich---------------------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
proc change_doc_type(doc_id, value)
|
|
{
|
|
msg d_msg "Bearbeitete " ## :+doc_id
|
|
|
|
SERVER_API_NO_HOOKS = 1 //Kein Einstiegspunkt
|
|
vars retval_check = api_function( "attribute_update_single", new_field, value, 1, doc_id, "Master")
|
|
SERVER_API_NO_HOOKS = 0 //Wieder aktiviert
|
|
|
|
vars text
|
|
if (retval_check == 0)
|
|
{
|
|
text = doc_id ## " - " ## new_field ## " - erfolgreich kopiert"
|
|
call write_log(text)
|
|
|
|
if(mode == "move")
|
|
{
|
|
SERVER_API_NO_HOOKS = 1 //Kein Einstiegspunkt
|
|
vars retval_check = api_function( "attribute_update_single", old_field, "", 1, doc_id, "Master")
|
|
SERVER_API_NO_HOOKS = 0 //Wieder aktiviert
|
|
|
|
if (retval_check == 0)
|
|
{
|
|
text = doc_id ## " - " ## old_field ## " - erfolgreich gelöscht"
|
|
call write_log(text)
|
|
}
|
|
else
|
|
{
|
|
text = doc_id ## " - " ## old_field ## " - Löschen fehlgeschlagen!"
|
|
call write_log(text)
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
text = doc_id ## " - " ## new_field ## " - Kopieren fehlgeschlagen!"
|
|
call write_log(text)
|
|
}
|
|
}
|
|
|
|
proc check_folders_and_files()
|
|
{
|
|
//Ordner der Logdatei überprüfen
|
|
retval = check_folders()
|
|
if (retval == 1)
|
|
{
|
|
msg emsg "Angegebener Ordner für Logausgabe existiert nicht und konnte nicht angelegt werden -> Abbruch"
|
|
return 1
|
|
}
|
|
|
|
//Prüfung, ob Logdatei bereits existiert
|
|
retval = api_function ("file_exist", logpath)
|
|
//1 = Logdatei existiert bereits
|
|
if (retval == 1)
|
|
{
|
|
msg emsg "Logdatei existiert bereits -> Abbruch"
|
|
return 1
|
|
}
|
|
|
|
call write_log("Start Kopieraktion")
|
|
|
|
|
|
//Ungleich = 0, Fehler beim Schreiben der Logdatei
|
|
if (retval != 0 && retval != 1)
|
|
{
|
|
msg emsg "Logdatei konnte nicht erstellt werden -> Abbruch"
|
|
return 1
|
|
}
|
|
}
|
|
|
|
proc check_folders()
|
|
{
|
|
//Überprüfung, ob Arbeitsverzeichnis-Auftrag bereits existiert
|
|
vars retval
|
|
retval = api_function( "directory_exist", log_folder)
|
|
if (retval == 0) // falls Ordner nicht existiert wird er angelegt
|
|
{
|
|
retval = api_function ("directory_create", log_folder)
|
|
if (retval != 0) // falls Ordner nicht angelegt werden konnte --> abbruch
|
|
{
|
|
return 1
|
|
}
|
|
}
|
|
}
|
|
|
|
proc write_log(text)
|
|
{
|
|
vars tag_uhrzeit
|
|
call api_function("get_current_datetime", "%0d.%0m.%4y %0h\:%0M\:%0s")
|
|
tag_uhrzeit = api_single_info
|
|
|
|
text = tag_uhrzeit ## " - " ## text
|
|
|
|
//In die Logdatei wird ein Timestamp + übergebenen Text geschrieben
|
|
vars retval
|
|
retval = api_function ("file_add_line", logpath, text, "APPEND")
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|