Zum Hauptinhalt springen
Inhaltsverzeichnis überspringen

Batchlauf einrichten

Hinweis

Schritt 1: Einrichtung eines Benutzers in PLANTA project

Vorgehensweise

  • Im Modul Benutzer einen Benutzer (z.B. BATCH) mit folgenden Einstellungen:

    • Passwort (ggf. die Schaltfläche Passwort zurücksetzen betätigen)

    • maximale Rechte:

      • Darf Ist-Buchungen löschen =

      • Zugriff auf Objekte = *

      • Zugriff auf Ressourcen = *

      • Objektberechtigung = 2

    • Menü

    • Rolle

  • PLANTA project-Client starten.

  • Mit dem eben angelegten Benutzer einloggen.

  • Neues Passwort vergeben.

Schritt 2: Erstellung/Einrichtung eines Makros mit der gewünschten Funktionalität

Vorgehensweise

  • Im Modul Module ein neues Modul anlegen.

  • Python-Makro für den gewünschten Einsatzzweck ergänzen.

  • Das Modul für den Batch-Benutzer als Startup-Makro, das bei jeder Anmeldung dieses Benutzers ausgeführt wird, definieren.

    • Alternativ im Start-Skript des Headless-Clients im Parameter PLANTA_MODULE die Modul-ID angeben (siehe hier).

Schritt 3: Manueller Start des Headless-Clients zur Erzeugung der Passwort-Datei

Vorgehensweise

  • Aufruf-Template

    • Hinweis: dieser Befehl sowie die folgenden Beispiele sind einzeilig und werden nur aus Gründen der Lesbarkeit ggf. umgebrochen:

<Python-Interpreter> <Headless-Pfad>planta_headless.py --service=<Server>:<Port> --user=<BATCH-User> --auth_type=challenge --secret=<PW-Datei>

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

localhost (wenn Ausführung auf Applikationsserver)
planta4711.planta.de
10.210.47.11

<Port>

Verbindungsport zum Service

Standard ist 21000 + Systemnr., z.B. 21001

Standard ist 21000 + Systemnr., z.B. 21001

<BATCH-User>

Name des PLANTA project Batch-Benutzers

BATCH

BATCH

<PW-Datei>

Pfad u. Name der zu erzeugenden Passwort-Datei

.\auth_file

./auth_file

Beispiel Windows

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_file

Beispiel Linux

/usr/local/bin/python2.7 ./planta_headless.py --service=localhost:21210 --user=BATCH --auth_type=challenge --secret=./auth_file

  • Passworteingabe (das Passwort wird in einer verschlüsselter Datei abgelegt).

  • Einrichten der Rechte für die neu erstellte verschlüsselte Passwort-Datei (Schreib-/Leserechte ausschließlich für den Ausführenden des Python-Programms).

Schritt 4: Einrichtung des Jobs

Vorgehensweise

  • Hierfür die folgenden Shell-/Batch-Skript-Templates anpassen:

    • Beim folgenden Skript im Abschnitt Parameter anpassen: die passenden Werte eintragen.

    • Als Datei (z.B. namens Headless.bat unter Windows oder namens headless.bsh unter Linux) im Headless-Cient-Verzeichnis abspeichern. Der Datums-Zeitstempel ist hier abhängig vom lokalen Format und muss ggf. angepasst werden.

  • Beispiel Windows:

BASH
@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=
IF NOT "%PLANTA_MODULE%"=="" SET MODULE_PARAM=--module=%PLANTA_MODULE%
IF "%PLANTA_MODULE%"=="" SET MODULE_PARAM=
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_PARAM%
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
  • Beispiel Linux:

BASH
#!/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=""

if [[ -z $PLANTA_MODULE ]]
then
    MODULE_PARAM=""
else
    MODULE_PARAM="--module=$PLANTA_MODULE"
fi

# 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_PARAM"
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

Schritt 5: Einrichtung des zeitgesteuerten Aufrufs

Hinweis

  • Hier sind administrative Berechtigungen erforderlich.

Vorgehensweise

  • Einrichtung

    • unter Windows: mit dem Task Manager (bzw. Aufgabenplanung)

    • unter Linux: als Cron Job

  • In beiden Fällen weiß der Job nichts von Umgebungsvariablen etc. Alles, was er wissen muss, muss in den Shell-Skripten mitgegeben werden (z.B. absolute Pfade verwenden).

Hinweise

  • Der Headless-Client startet üblicherweise ein PLANTA-Makro, ohne auf dessen Beendigung zu warten.

  • Dies kann durch den Parameter timeout=-1 verhindert werden.

  • In diesem Fall wartet der Headless-Client auf die Beendigung des Makros.

  • Siehe auch die Logging-Variante in den oben aufgeführten Shell-Skripten.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.