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.
Skript-Dateien
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 |
---|---|---|
| Gibt an, zu welcher Applikation die Skript-Datei gehört. Diese Information muss i.A. nicht bearbeitet werden. |
|
| Definieren Sie Variablen zur weiteren Verwendung im Skript |
|
| 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. |
|
| Die Identifikation der Aufgabe. Diese Information muss i.A. nicht bearbeitet werden. |
|
| Kommentar zu Aufgabe. Wird beim Ausführen in der Applikation angezeigt. Hier können z.B. Hinweise zu Filtern notiert werde. |
|
| Mit @INCLUDE können weitere Skript-Dateien eingebunden werden. Diese Dateien können jeweils nur @TASK Blöcke oder weitere @INCLUDE Anweisungen enthalten. Es werden nur Emails verschickt wenn das Skript über Command Line Aufruf ausgeführt wird (siehe unten). |
|
| Über @LOGEMAILS können die Ergebnisse des ausgeführten Skripts als E-Mail versendet werden. Angabe für den Betreff dieser E-Mails. Diese Funktionalität steht zur Zeit nur für Projekte auf Begasoft-Servern zur Verfügung. |
|
Vordefinierte Variablen
Folgende Variablen sind vordefiniert und können in den Script-Dateien verwendet werden:
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 | D:\ReportKuba_20200311.log |
Projectname | Name des Projektes (aus der INI-Datei) | %Projectname%_%Date% | Kantonsstrassen_ZH_20241028 |
IniFile | Bezeichnung der Ini-Datei | %IniFile%_%Today% | Logo_Kt.Zürch_20241028 |
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.
Windows Task Scheduler
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.
Papierkorb leeren über Command Line
Beim Start von Logo werden jeweils diejenigen Objekte aus dem Papierkorb gelöscht, die den festgelegten Zeitraum überschritten haben. Je nach Anzahl der Objekte, die aus dem Papierkorb gelöscht werden müssen, kann dies länger dauern.
Um diesen Schritt ausserhalb der normalen Arbeitszeiten auszuführen, kann der Papierkorb über folgenden Eintrag über den Windows Task Scheduler ausgeführt werden.
Logo12.exe -checkemptyrecyclebin
Probleme und Lösungen
Probleme mit Umlauten / Zeichensätzen
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.