Aufgaben automatisch ausführen

Gewisse Aufgaben können in Logo automatisiert ausgeführt werden, dazu werden sogenannte Skript-Dateien erstellt und zu einem gewünschten Zeitpunkt aufgerufen. Dies ist beispielsweise hilfreich für das regelmässige Erstellen von Backups, den regelmässigen Import oder Export bestimmter Daten oder die Ausgabe bestimmter Reporte.

Die dazu benötigten Skript-Dateien können direkt aus dem jeweiligen Aufgabendialog erstellt und danach über Datei > Skripte in Logo ausgeführt werden.

 

Speichern einer Skript-Datei

Unten links im Dialog der verschiedenen Aufgaben befinden sich die Skript-Funktionen.

  • Parameter als Aufgabe in die Zwischenablage kopieren – kopiert nur die Parameter zur aktuellen Aufgabe, um diese in ein bereits bestehendes Skript einzufügen.

  • Parameter als Skript in die Zwischenablage kopieren – kopiert die Parameter der Aufgabe inkl. der benötigten Angaben, um diese als Skript irgendwo einzufügen.

  • Parameter in Skript-Datei speichern – speichert die Parameter der Aufgabe direkt als Skript in eine Text-Datei.

Beispiel einer Skript-Datei

; ------------------------------------------------------------------------- ; Startzeile mit Angabe zur Applikation (Wert von ProductGroup) @GEOLOGIX_SCRIPT Logo12 ; Angabe von Variablen, die in Params verwendet werden können. @VARIABLE InputDirectory=D:\Scripts\Input @VARIABLE OutputDirectory=D:\Scrips\Output @VARIABLE Prefix=Import_Drain ; Optionale Angabe einer Logdatei @LOGFILE %OutputDirectory%\Logs\%Filename%_%Date%.log ; ------------------------------------------------------------------------- @TASK BACKUPDATEN @COMMENT Datenbank Backup EReportFile=%OutputDirectory%\Backup.zip @ENDTASK ; ------------------------------------------------------------------------- @TASK REPORTELMEABSCHALTUNGEN @COMMENT Abschaltungen FFilename=%OutputDirectory%\Report_Abschaltungen.xlsx @ENDTASK ; ------------------------------------------------------------------------- @TASK DRAINIMPORTSCHAECHTE @COMMENT Drain\Import aus Excel\1. Schächte Filename=%InputDirectory%\%Prefix%_Schacht.xls @ENDTASK ; ------------------------------------------------------------------------- ; Über @INCLUDE Commands können weitere Scriptdateien eingebunden werden. ; Diese Include Dateien können jeweils nur @TASK Blöcke oder weitere @INCLUDE Anweisungen enthalten. @INCLUDE Export_Base_Abschnitte.txt

Vordefinierte Schlüsselwörter / Befehle

Schlüsselwort

Beschreibung

Beispiel

Schlüsselwort

Beschreibung

Beispiel

@GEOLOGIX_SCRIPT

Gibt an, zu welcher Applikation die Skript-Datei gehört. Diese Information muss i.A. nicht bearbeitet werden.

@GEOLOGIX_SCRIPT Logo12

@VARIABLE

Definieren Sie Variablen zur weiteren Verwendung im Skript

@VARIABLE InputDirectory=D:\Scripts\Input

@LOGFILE

Definieren Sie mit @LOGFILE eine Protokoll-Datei. Das Protokoll zu der Aufgabe wird dann in diese Datei abgespeichert. Die Angabe einer Protokoll-Datei wird dringend empfohlen zur Nachverfolgung und Fehlersuche.

@LOGFILE D:\Protokoll.log

@TASK

Die Identifikation der Aufgabe. Diese Information muss i.A. nicht bearbeitet werden.

@TASK REPORTGRABENFLICKE

@COMMENT

Kommentar zu Aufgabe. Wird beim Ausführen in der Applikation angezeigt. Hier können z.B. Hinweise zu Filtern notiert werde.

@COMMENT Report für alle Parkplätze in der Gemeinde X

@INCLUDE

Mit @INCLUDE können weitere Skript-Dateien eingebunden werden. Diese Dateien können jeweils nur @TASK Blöcke oder weitere @INCLUDE Anweisungen enthalten.

@INCLUDE Export_Base_Abschnitte.txt

Vordefinierte Variablen

Folgende Variablen sind vordefiniert und können in den Script-Dateien verwendet werden:

Variable

Beschreibung

Beispiel - Eingabe

Beispiel - Ergebnis

Variable

Beschreibung

Beispiel - Eingabe

Beispiel - Ergebnis

Today

Aktuelles Datum

D:\Bericht_%Today%.xlsx

D:\Bericht_20200311.xlsx

Date

Aktuelles Datum in der Form yyyymmdd

D:\Bericht_%Date%.xlsx

D:\Bericht_20200311.xlsx

Time

Aktuelle Zeit in der Form hhmmss

D:\Bericht_%Time%.xlsx

D:\Bericht_130417.xlsx

Filename

Name der Script-Datei ohne Dateierweiterung

D:\%Filename%_%Date%.log in der Script-Datei
T:\Scripts\ReportKuba.txt

D:\ReportKuba_20200311.log

Ausführen von Aufgaben in Skript-Dateien

Wurde eine Skript-Datei erstellt bzw. gespeichert, kann diese danach über Menü Datei > Skripte aufgerufen und die enthaltenen Aufgaben ausgeführt werden. Enthält eine Skript-Datei mehrere Aufgaben, können entweder einzelne Aufgaben oder alle Aufgaben ausgeführt werden.

Ausführen von Skripts über Windows Command Prompt

Sollen Aufgaben regelmässig und zu bestimmten Zeitpunkten ausgeführt werden, kann der Windows Task Scheduler (Aufgabenplanung) verwendet werden. Dazu werden zusätzlich zur Skript-Datei die folgenden Angaben benötigt:

  • Pfad zum Logo.exe, welches gestartet werden soll

  • Angabe der INI-Datei, welches verwendet werden soll (liegt dieses nicht im selben Verzeichnis wie das Logo.exe, muss der gesamte Pfad angegeben werden)

  • Angabe der Skript-Datei(en), welche(s) ausgeführt werden soll(en)

Diese Angaben können entweder direkt im Windows Scheduler eingegeben oder in einer Text-Datei mit der Endung *.cmd gespeichert werden, welches dann im Scheduler eingebunden wird.

\\server01\Logo12\Logo12.exe -config ktGraubuenden.ini -script D:\LOGO\batch_signalshp.txt

In diesem Beispiel wird Logo12.exe gestartet, die Datenbank des Kantons Graubünden geöffnet und der Batch-Export von Signalen in ein Shapefile ausgeführt.

Sollen Daten in eine Datei, z. B. ein Shapefile, exportiert werden, muss beachtet werden, dass die entsprechende Datei zum Zeitpunkt des Exports nicht durch jemanden blockiert ist.

Probleme mit Umlauten / Zeichensätzen

Siehe https://geologix-ag.atlassian.net/browse/LG-12725

TLDR: Die Lösung ist, die Skript-Datei im Editor zu öffnen und mit dem Zeichensatz UTF-8 mit BOM zu speichern.

Zur Sicherheit sollten alle Skripts, die in Logo verwendet werden, im Zeichensatz UTF-8 mit BOM vorliegen, da sie andererseits beim Ausführen in Logo womöglich nicht korrekt funktionieren.