Impfen mit dem DataPrep Werkzeug eingebaut

This commit is contained in:
2024-03-28 16:26:36 +01:00
parent b5b0c58f39
commit a4f07d3e33
3 changed files with 45 additions and 3 deletions
+37 -1
View File
@@ -3,6 +3,7 @@ import pandas as pd
import os
import glob
import re
import subprocess
class DataModel:
def __init__(self):
@@ -841,6 +842,39 @@ class CadItem(DataModel):
return True
def call_prep_tool(self, impf_pfad):
data_prep_tool = os.environ.get(r'SIEMENS_DATA_PREP_TOOL')
if not os.path.isfile(data_prep_tool):
self.message_error('Impftool not found', 'wrong_impftool_path')
return False
out_dir = self._controller.get_env('out')
subprocess.run(f"{data_prep_tool} /file {impf_pfad} /ModifyProperties")
all_logs = glob.glob(os.path.join(out_dir, "*.log"))
if len(all_logs) > 1:
self.message_error('too many logfiles found', 'too_many_logfiles')
return False
else:
path = all_logs[0]
try:
with open(path, 'r', encoding='utf-16le') as f:
content = f.read()
f.close()
if re.findall(r'1 out of 1', content):
os.remove(path)
self.message_info('Preparation sucessful', 'preparation_sucessful', {'path':impf_pfad})
return True
elif re.findall(r'Error', content):
self.message_error('Something went wrong', 'some_error_in_log')
return False
else:
self.message_error('Something went wrong', 'some_error_in_log')
return False
except Exception:
raise Exception("log file could not be opened")
def create_migration_file(self, data):
"""erzeugt Verzeichnis und Datei"""
datenbank = self.get_gui_data("datenbank")
@@ -963,7 +997,9 @@ class CadItem(DataModel):
# New_path = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\02_Bedarfspool\
# ELSE:
# New_path = \\ssg.local\freigaben\SIVAS_CAD_EDM\Schulung\Migration\02_Bedarfspool
zielpfad = self._controller.get_config().Pfade.get('Zielpfade', datenbank )
zpfad = self._controller.get_config().Pfade.get('Zielpfade', datenbank )
username = os.environ.get("USERNAME")
zielpfad = os.path.join(zpfad, username)
data["New Path"] = zielpfad
data["New Filename"] = teilenummer + "." +ending
+7 -2
View File
@@ -39,7 +39,11 @@ messages = {
"export_sucessful":'Export der Migrationsdatei erfolgreich. Siehe {path}',
"export_not_sucessful":'Export der Migrationsdatei fehlgeschlagen. Überprüfe Schreibrechte für {path}.',
"export_not_sucessful_file_open":'Export fehlgeschlagen. Datei offen?',
"blacklist_not_exist": 'Bitte Blacklist vom Server holen'
"blacklist_not_exist": 'Bitte Blacklist vom Server holen',
"wrong_impftool_path": 'Pfad zur DataPrepUtility.exe nicht gefunden. Bitte setenv.bat prüfen.' ,
"too_many_logfiles":'Keine eindeutige Logdatei zum aktuellen DataPrep Prozess gefunden. Bitte löschen Sie die überflüssigen .log files',
"some_error_in_log":'Log Datei enthlt einben Fehler. Bitte prüfen.',
"preparation_sucessful":'Preparation mit der Datei {path} erfolgreich'
}
@@ -315,7 +319,8 @@ class Controller(Observer):
except FileExistsError:
self.message_error('export of excel', 'export_not_sucessful')
else:
self.message_info('export of excel', 'export_sucessful', {'path': infos['path']})
self.message_info('export of excel', 'export_sucessful', {'path': infos['path']})
self._model.call_prep_tool(infos['path'])
def zuruecksetzen(self):