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") }