Skripte hinzugefügt
This commit is contained in:
@@ -0,0 +1,182 @@
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user