PLANTA_MODULE
(siehe hier) die Modul-ID übergeben. JJJJ-MM-TT_hh-mm-ss_User.log
mitgeschrieben werden, in der die Arbeitsschritte protokolliert sind.
from ppms import ppms_cu import time log_file = open('{0}_{1}.log'.format(time.strftime('%Y-%m-%d_%H-%M-%S', time.localtime()), ppms.uvar_get('@1')), 'w') def write_log_entry(msg): log_file.write(msg + '\n') log_file.flush() mod_obj = ppms.get_target_module() write_log_entry('Start Neuplanung') new_planing_module=ppms_cu.Helper.get_global_setting("new_planing_module").alpha120.get_value() exec_tcalc=ppms_cu.Helper.get_global_setting("exec_tcalc").alpha120.get_value() target_mod_obj=mod_obj.open_module(new_planing_module) target_mod_obj.open_module(exec_tcalc) target_mod_obj.menu(49) write_log_entry('Ende Neuplanung') log_file.close()
<Python-Interpreter> <Headless-Pfad>planta_headless.py --service=<Server>:<Port> --user=<BATCH-User> --auth_type=challenge --secret=<PW-Datei>
Beispiel Windows
Parameter Beschreibung Beispiel Windows Beispiel Linux <Python-Interpreter> Aufruf des jew. Python-Interpreters C:\Python27\python.exe /usr/local/bin/python2.7 <Headless-Pfad> Verzeichnispfad des Headless-Clients, absolut:
oder relativ zum aktuellen Verzeichnis:C:\PLANTA\Jobs\Headless\
.\/planta/jobs/headless/
./<Server> Name oder IP-Adresse des PLANTA Servers localhost (wenn Ausführung auf Applikationsserver)
planta4711.planta.de
10.210.47.11<Port> Verbindungsport zum Service Standard ist 21000 + Systemnr., z.B. 21001 <BATCH-User> Name des PLANTA project Batch Benutzers BATCH <PW-Datei> Pfad u. Name der zu erzeugenden Passwort-Datei .\auth_file ./auth_file
C:\Python27\python.exe C:\PLANTA\Jobs\Headless\planta_headless.py --service=planta4711:21001 --user=BATCH --auth_type=challenge --secret=C:\PLANTA\Jobs\Headless\auth_fileBeispiel Linux
/usr/local/bin/python2.7 ./planta_headless.py --service=localhost:21210 --user=BATCH --auth_type=challenge --secret=./auth_file
Headless.bat
) im Headless-Cient-Verzeichnis abspeichern (der Datums-Zeitstempel ist hier abhängig vom lokalen Format und muss ggf. angepasst werden):
@ECHO OFF REM BATCH REM PLANTA Headless-Client: Durchführung von Batch-Jobs REM Parameter anpassen: REM ---> SET PYTHON="<Pfad zu Python (V. 2.6 oder 2.7)>" SET HEADLESS_DIR="<Pfad zum Headless Client (PLANTA_PY)>" SET SERVICE=<Serveradresse:Portnummer> SET USER=BATCH REM Falls das Arbeitspaket als Startmodul des Batch-Users definiert ist, bleibt dieser Parameter leer, REM sonst wird hier die Modul-ID des auszuführenden Moduls eingetragen: SET PLANTA_MODULE= REM Falls Logging gewünscht ist, die folgenden Variablen aktivieren, REM sowie unten den Skript-Aufruf mit Logging aktivieren und den ohne Logging deaktivieren: REM SET LOG_DIR="<Pfad des Log-Verzeichnisses" REM SET LOGFILE="<Präfix für die Log-Datei (z.B. PLANTA_Headless)>" REM SET DATETIME=%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2% REM <--- SET AUTH_FILE=".\auth_file" SET PLANTA_PY=".\planta_headless.py" SET PLANTA_SH=%PLANTA_PY% --service=%SERVICE% --user=%USER% --auth_type=challenge --secret=%AUTH_FILE% --module=%PLANTA_MODULE% cd %HEADLESS_DIR% REM Variante ohne Logging: %PYTHON% %PLANTA_SH% %* REM Variante mit Logging: REM forfiles -p %LOG_DIR% -m %LOGFILE%*.log -d -7 -c "cmd /c del @path" REM %PYTHON% %PLANTA_SH% %* --timeout=-1 -vvv >> %LOG_DIR%\%LOGFILE%_%DATETIME%_%USER%.log
headless.bsh
) im Headless-Client-Verzeichnis abspeichern:
#!/bin/bash # PLANTA Headless-Client: Durchführung von Batch-Jobs # Parameter anpassen: # ---> PYTHON="<Pfad zu Python (V. 2.6 oder 2.7)>" HEADLESS_DIR="<Pfad zum Headless Client (PLANTA_PY)>" SERVICE="<Serveradresse:Portnr.>" USER="BATCH" # Falls das Arbeitspaket als Startmodul des Batch-Users definiert ist, bleibt der folgende Parameter leer, # sonst wird hier die Modul-ID des auszuführenden Moduls eingetragen: PLANTA_MODULE="" # Falls Logging gewünscht ist, die folgenden Variablen aktivieren, # sowie unten den Skript-Aufruf mit Logging aktivieren und den ohne Logging deaktivieren: #LOG_DIR="<Pfad des Log-Verzeichnisses" #LOGFILE="<Präfix für den Log-Datei-Namen (z.B. PLANTA_Headless)>" #DATETIME=`date +20%y-%m-%d_%H-%M-%S` # <--- AUTH_FILE="./auth_file" PLANTA_PY="planta_headless.py" PLANTA_SH="./$PLANTA_PY --service=$SERVICE --user=$USER --auth_type=challenge --secret=$AUTH_FILE --module=$PLANTA_MODULE" cd $HEADLESS_DIR # Variante ohne Logging: $PYTHON $PLANTA_SH $* # Variante mit Logging: #find $LOG_DIR -type f -name "$LOGFILE*.log" -mtime +7 -print0 | xargs -0 rm -f #$PYTHON $PLANTA_SH $* --timeout=-1 -vvv >> $LOG_DIR/$LOGFILE\_$DATETIME\_$USER.log