Zusammenarbeit TaskSrv-SydroCmd: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „Der TaskServer kann das SydroCmd-tool aufrufen und dadurch seine Funktionalität noch deutlich erweitern. Insbesondere kann das SydroCmd-tool Datumsangaben ver…“) |
Doeser (Diskussion | Beiträge) (Diese Seite wurde zum Übersetzen freigegeben) |
||
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
<languages/> | |||
<translate> | |||
<!--T:1--> | |||
{{Navigation|vorher=Liste aller TaskSrv-Jobs|hoch=Arbeiten mit dem TaskSrv|nachher=Zusammenarbeit TaskSrv-SydroTaskMgr}} | |||
<!--T:2--> | |||
Der TaskServer kann das SydroCmd-tool aufrufen und dadurch seine Funktionalität noch deutlich erweitern. Insbesondere kann das SydroCmd-tool Datumsangaben verarbeiten, das aktuelle Datum abrufen und in Dateien ersetzen und Dateien aus dem Internet runterladen. Für den operationellen Einsatz ist es daher unerlässlich. | Der TaskServer kann das SydroCmd-tool aufrufen und dadurch seine Funktionalität noch deutlich erweitern. Insbesondere kann das SydroCmd-tool Datumsangaben verarbeiten, das aktuelle Datum abrufen und in Dateien ersetzen und Dateien aus dem Internet runterladen. Für den operationellen Einsatz ist es daher unerlässlich. | ||
Für den Aufruf des SydroCmd-tools wird der TaskServer-Job [[Liste_aller_TaskSrv-Jobs#Command_line|Command line]] (<code>CMD</code>) genutzt. | <!--T:3--> | ||
Für den Aufruf des SydroCmd-tools wird der TaskServer-Job [[Special:MyLanguage/Liste_aller_TaskSrv-Jobs#Command_line|Command line]] (<code>CMD</code>) genutzt. | |||
<!--T:4--> | |||
Wie für den normalen Ablauf einer TaskServer-Auswertung müssen die TaskServer template-Datei, die Input-Datei und die task-Datei vorbereitet werden. Die Attribute für den Job im Template-File sind <code>Command=SydroCmd</code>, sowie der Befehl, der mit dem SydroCmd-tool ausgeführt werden soll und alle dafür benötigten Argumente mit den Schlüsselwörtern <code>Arg1=</code>, <code>Arg2=</code> usw. | |||
==Beispiel== <!--T:5--> | |||
Beispiel für | <!--T:6--> | ||
Beispiel für eine Template Datei <code>Cmd.Replace.tpl</code>: | |||
<!--T:7--> | |||
<pre> | <pre> | ||
#======================= | #======================= | ||
Zeile 14: | Zeile 28: | ||
CountJobs=1 | CountJobs=1 | ||
<!--T:8--> | |||
#ID;aktiv 0/1;RUNMODE 0=LoopInput, 1=MergeInput; Identifier;Mode;Beschreibung | #ID;aktiv 0/1;RUNMODE 0=LoopInput, 1=MergeInput; Identifier;Mode;Beschreibung | ||
1;1;0;CmdSetDate;CMD;Executes a command line | 1;1;0;CmdSetDate;CMD;Executes a command line | ||
<!--T:9--> | |||
[VARIABLES] | [VARIABLES] | ||
CountVariables=4 | CountVariables=4 | ||
Zeile 27: | Zeile 43: | ||
<!--T:10--> | |||
[CmdSetDate] | [CmdSetDate] | ||
Key=%1 | Key=%1 | ||
Zeile 37: | Zeile 54: | ||
</pre> | </pre> | ||
Im Bereich, in dem die Attribute für den Job festgelegt werden <code>[CmdSetDate]</code>, wird mit dem Attribut <code>Command</code> angegeben, dass das Programm <code>SydroCmd</code> aufgerufen werden soll. Beim ersten Attribut < | <!--T:11--> | ||
Im Bereich, in dem die Attribute für den Job festgelegt werden <code>[CmdSetDate]</code>, wird mit dem Attribut <code>Command</code> angegeben, dass das Programm <code>SydroCmd</code> aufgerufen werden soll. Beim ersten Attribut <code>Arg1</code> wird der Schlüssel des Befehls eingegeben, den das SydroCmd-tool ausführen soll (hier: -replace) (s. auch [[Special:MyLanguage/Anwendung des SydroCmd-tools|Anwendung des SydroCmd-tools]]). Die weiteren Attribute sind die Argumente, die der Befehl braucht, ggf. als Variablen (vorher definiert im Bereich <code>[VARIABLES]</code>. | |||
<!--T:12--> | |||
Beispiel für eine Input-Datei <code>Cmd.StartDownload.tpl</code>: | |||
<pre> | |||
#======================= | |||
#INPUT | |||
#======================= | |||
<!--T:13--> | |||
[INPUT] | |||
Count=1 | |||
First=1 | |||
Last=1 | |||
<!--T:14--> | |||
[1] | |||
#INPUT (String) | |||
Name=Key | |||
Set current date to specific input files | |||
<!--T:15--> | |||
[2] | |||
#INPUT (String) | |||
Name=sourcefile | |||
..\Input\DWD.Radolan.OP\Cmd.SetDate.Template.txt | |||
<!--T:16--> | |||
[3] | |||
#INPUT (String) | |||
Name=date yyyymmddhhmm | |||
Now | |||
<!--T:17--> | |||
[4] | |||
#INPUT (String) | |||
Name=targetfile | |||
..\Input\DWD.Radolan.OP\Cmd.SetDate.txt | |||
</pre> | |||
<!--T:18--> | |||
In dem Input-File werden die Variablen gefüllt, die in dem Template-File definiert wurden. Die dritte Variable <code>date</code> ist in diesem Fall nicht mit einem Datum im Datumsformat yyyymmddhhmm angegeben, sondern durch das Schlüssenwort <code>Now</code>. | |||
Mit der Task, die dieses Template und dieses Input-File verknüpft, werden in der Datei <code>Cmd.SetDate.Template.txt</code> also alle Stellen mit dem Schlüsselwort <code>DATE</code> entsprechend ihrer Formatierungsangaben ausgehend vom aktuellen Datum ausgetauscht und in die Datei <code>Cmd.SetDate.txt</code> geschrieben. | |||
<!--T:19--> | |||
Beispiel für die Task-Datei <code>Cmd.SetCurrentDate.tsk</code>: | |||
<!--T:20--> | |||
<pre> | |||
#======================= | |||
#TASK | |||
#======================= | |||
[SETTINGS] | |||
ShowMsg=TRUE | |||
CountTask=1 | |||
<!--T:21--> | |||
[TASK1] | |||
Key=Set current date | |||
Name=Sets current date and adjusts input files according to the current date | |||
TemplateFile=..\Templates\Cmd.Replace.tpl | |||
Template=JOBS | |||
VariablesFile=..\Input\Cmd.StartDownload.txt | |||
</pre> | |||
<!--T:22--> | |||
Beispiel für eine Quelldatei, in der das Datum ausgetauscht werden soll (<code>Cmd.SetDate.Template.txt</code>): | |||
<pre> | |||
#======================= | |||
#INPUT | |||
#======================= | |||
<!--T:23--> | |||
[INPUT] | |||
Count=7 | |||
First=1 | |||
Last=7 | |||
<!--T:24--> | |||
[1] | |||
#INPUT (String) | |||
Name=Key | |||
cmd.Init | |||
cmd.Download | |||
cmd.MoveResults | |||
cmd.UnzipResults | |||
cmd.CopyLog | |||
cmd.UnzipTarOneByOne | |||
cmd.StartProcessing | |||
<!--T:25--> | |||
[2] | |||
#INPUT (String) | |||
Name=sourcefile | |||
..\Input\DWD.Radolan.OP\Cmd.Init.Template.txt | |||
..\Input\DWD.Radolan.OP\Cmd.Download.Template.txt | |||
..\Input\DWD.Radolan.OP\Cmd.MoveDownloads.Template.txt | |||
..\Input\DWD.Radolan.OP\Cmd.UnzipResults.Template.txt | |||
..\Input\DWD.Radolan.OP\Cmd.CopyLog.Template.txt | |||
..\Input\DWD.Radolan.OP\Cmd.UnZipTarFullDay.Template.txt | |||
..\Input\DWD.Radolan.OP\Cmd.StartProcessing.Template.txt | |||
<!--T:26--> | |||
[3] | |||
#INPUT (String) | |||
Name=date | |||
{DATE|yyyyMMdd|-1,d}0000 | |||
{DATE|yyyyMMdd|-1,d}0000 | |||
{DATE|yyyyMMdd|-1,d}0000 | |||
{DATE|yyyyMMdd|-1,d}0000 | |||
{DATE|yyyyMMdd|-1,d}0000 | |||
{DATE|yyyyMMdd|-1,d}0000 | |||
{DATE|yyyyMMdd|-1,d}0000 | |||
<!--T:27--> | |||
[4] | |||
#INPUT (String) | |||
Name=targetfile | |||
..\Input\DWD.Radolan.OP\Cmd.Init.txt | |||
..\Input\DWD.Radolan.OP\Cmd.Download.txt | |||
..\Input\DWD.Radolan.OP\Cmd.MoveDownloads.txt | |||
..\Input\DWD.Radolan.OP\Cmd.UnzipResults.txt | |||
..\Input\DWD.Radolan.OP\Cmd.CopyLog.txt | |||
..\Input\DWD.Radolan.OP\Cmd.UnZipTarFullDay.txt | |||
..\Input\DWD.Radolan.OP\Cmd.StartProcessing.txt | |||
</pre> | |||
<!--T:28--> | |||
Die Platzhalter für das Datum ist hier mit <code>{DATE|yyyyMMdd|-1,d}0000</code> eingestellt, d.h. das einzugebende Datum (hier das aktuelle, z.B. 19.7.2019) abzüglich eines Tages im Format yyyyMMdd (also z.B. 20190718). | |||
<!--T:29--> | |||
Beispiel für das zugehörige Output-File (<code>Cmd.SetDate.txt</code>): | |||
<!--T:30--> | |||
<pre> | |||
#======================= | |||
#INPUT | |||
#======================= | |||
<!--T:31--> | |||
[INPUT] | |||
Count=7 | |||
First=1 | |||
Last=7 | |||
<!--T:32--> | |||
[1] | |||
#INPUT (String) | |||
Name=Key | |||
cmd.Init | |||
cmd.Download | |||
cmd.MoveResults | |||
cmd.UnzipResults | |||
cmd.CopyLog | |||
cmd.UnzipTarOneByOne | |||
cmd.StartProcessing | |||
<!--T:33--> | |||
[2] | |||
#INPUT (String) | |||
Name=sourcefile | |||
..\Input\DWD.Radolan.OP\Cmd.Init.Template.txt | |||
..\Input\DWD.Radolan.OP\Cmd.Download.Template.txt | |||
..\Input\DWD.Radolan.OP\Cmd.MoveDownloads.Template.txt | |||
..\Input\DWD.Radolan.OP\Cmd.UnzipResults.Template.txt | |||
..\Input\DWD.Radolan.OP\Cmd.CopyLog.Template.txt | |||
..\Input\DWD.Radolan.OP\Cmd.UnZipTarFullDay.Template.txt | |||
..\Input\DWD.Radolan.OP\Cmd.StartProcessing.Template.txt | |||
<!--T:34--> | |||
[3] | |||
#INPUT (String) | |||
Name=date | |||
201907180000 | |||
201907180000 | |||
201907180000 | |||
201907180000 | |||
201907180000 | |||
201907180000 | |||
201907180000 | |||
<!--T:35--> | |||
[4] | |||
#INPUT (String) | |||
Name=targetfile | |||
..\Input\DWD.Radolan.OP\Cmd.Init.txt | |||
..\Input\DWD.Radolan.OP\Cmd.Download.txt | |||
..\Input\DWD.Radolan.OP\Cmd.MoveDownloads.txt | |||
..\Input\DWD.Radolan.OP\Cmd.UnzipResults.txt | |||
..\Input\DWD.Radolan.OP\Cmd.CopyLog.txt | |||
..\Input\DWD.Radolan.OP\Cmd.UnZipTarFullDay.txt | |||
..\Input\DWD.Radolan.OP\Cmd.StartProcessing.txt | |||
<!--T:36--> | |||
</pre> | |||
<!--T:37--> | |||
Dieses File ist seinerseits wieder ein Input-File für die TaskServer Task SetDate, mit der das Datum dann in weiteren Template-Dateien ausgetauscht werden kann, die ihrereseits wieder Input-Files für z.B. den Download von Daten eines bestimmten Datums sind. | |||
</translate> |
Aktuelle Version vom 23. September 2020, 15:37 Uhr
Der TaskServer kann das SydroCmd-tool aufrufen und dadurch seine Funktionalität noch deutlich erweitern. Insbesondere kann das SydroCmd-tool Datumsangaben verarbeiten, das aktuelle Datum abrufen und in Dateien ersetzen und Dateien aus dem Internet runterladen. Für den operationellen Einsatz ist es daher unerlässlich.
Für den Aufruf des SydroCmd-tools wird der TaskServer-Job Command line (CMD
) genutzt.
Wie für den normalen Ablauf einer TaskServer-Auswertung müssen die TaskServer template-Datei, die Input-Datei und die task-Datei vorbereitet werden. Die Attribute für den Job im Template-File sind Command=SydroCmd
, sowie der Befehl, der mit dem SydroCmd-tool ausgeführt werden soll und alle dafür benötigten Argumente mit den Schlüsselwörtern Arg1=
, Arg2=
usw.
Beispiel
Beispiel für eine Template Datei Cmd.Replace.tpl
:
#======================= #Template #======================= [JOBS] CountJobs=1 #ID;aktiv 0/1;RUNMODE 0=LoopInput, 1=MergeInput; Identifier;Mode;Beschreibung 1;1;0;CmdSetDate;CMD;Executes a command line [VARIABLES] CountVariables=4 #ID;Typ;DataType;Beschreibung (nur "INP" und "OUT" müssen mit Eingaben belegt sein) 1;INPUT;STRING;Key 2;INPUT;STRING;sourcefile 3;INPUT;STRING;Date to be set, yyyymmddhhmm 4;INPUT;STRING;targetfile [CmdSetDate] Key=%1 Command=SydroCmd Arg1=-replace Arg2=%2 Arg3=DATE Arg4=%3 Arg5=%4
Im Bereich, in dem die Attribute für den Job festgelegt werden [CmdSetDate]
, wird mit dem Attribut Command
angegeben, dass das Programm SydroCmd
aufgerufen werden soll. Beim ersten Attribut Arg1
wird der Schlüssel des Befehls eingegeben, den das SydroCmd-tool ausführen soll (hier: -replace) (s. auch Anwendung des SydroCmd-tools). Die weiteren Attribute sind die Argumente, die der Befehl braucht, ggf. als Variablen (vorher definiert im Bereich [VARIABLES]
.
Beispiel für eine Input-Datei Cmd.StartDownload.tpl
:
#======================= #INPUT #======================= [INPUT] Count=1 First=1 Last=1 [1] #INPUT (String) Name=Key Set current date to specific input files [2] #INPUT (String) Name=sourcefile ..\Input\DWD.Radolan.OP\Cmd.SetDate.Template.txt [3] #INPUT (String) Name=date yyyymmddhhmm Now [4] #INPUT (String) Name=targetfile ..\Input\DWD.Radolan.OP\Cmd.SetDate.txt
In dem Input-File werden die Variablen gefüllt, die in dem Template-File definiert wurden. Die dritte Variable date
ist in diesem Fall nicht mit einem Datum im Datumsformat yyyymmddhhmm angegeben, sondern durch das Schlüssenwort Now
.
Mit der Task, die dieses Template und dieses Input-File verknüpft, werden in der Datei Cmd.SetDate.Template.txt
also alle Stellen mit dem Schlüsselwort DATE
entsprechend ihrer Formatierungsangaben ausgehend vom aktuellen Datum ausgetauscht und in die Datei Cmd.SetDate.txt
geschrieben.
Beispiel für die Task-Datei Cmd.SetCurrentDate.tsk
:
#======================= #TASK #======================= [SETTINGS] ShowMsg=TRUE CountTask=1 [TASK1] Key=Set current date Name=Sets current date and adjusts input files according to the current date TemplateFile=..\Templates\Cmd.Replace.tpl Template=JOBS VariablesFile=..\Input\Cmd.StartDownload.txt
Beispiel für eine Quelldatei, in der das Datum ausgetauscht werden soll (Cmd.SetDate.Template.txt
):
#======================= #INPUT #======================= [INPUT] Count=7 First=1 Last=7 [1] #INPUT (String) Name=Key cmd.Init cmd.Download cmd.MoveResults cmd.UnzipResults cmd.CopyLog cmd.UnzipTarOneByOne cmd.StartProcessing [2] #INPUT (String) Name=sourcefile ..\Input\DWD.Radolan.OP\Cmd.Init.Template.txt ..\Input\DWD.Radolan.OP\Cmd.Download.Template.txt ..\Input\DWD.Radolan.OP\Cmd.MoveDownloads.Template.txt ..\Input\DWD.Radolan.OP\Cmd.UnzipResults.Template.txt ..\Input\DWD.Radolan.OP\Cmd.CopyLog.Template.txt ..\Input\DWD.Radolan.OP\Cmd.UnZipTarFullDay.Template.txt ..\Input\DWD.Radolan.OP\Cmd.StartProcessing.Template.txt [3] #INPUT (String) Name=date {DATE|yyyyMMdd|-1,d}0000 {DATE|yyyyMMdd|-1,d}0000 {DATE|yyyyMMdd|-1,d}0000 {DATE|yyyyMMdd|-1,d}0000 {DATE|yyyyMMdd|-1,d}0000 {DATE|yyyyMMdd|-1,d}0000 {DATE|yyyyMMdd|-1,d}0000 [4] #INPUT (String) Name=targetfile ..\Input\DWD.Radolan.OP\Cmd.Init.txt ..\Input\DWD.Radolan.OP\Cmd.Download.txt ..\Input\DWD.Radolan.OP\Cmd.MoveDownloads.txt ..\Input\DWD.Radolan.OP\Cmd.UnzipResults.txt ..\Input\DWD.Radolan.OP\Cmd.CopyLog.txt ..\Input\DWD.Radolan.OP\Cmd.UnZipTarFullDay.txt ..\Input\DWD.Radolan.OP\Cmd.StartProcessing.txt
Die Platzhalter für das Datum ist hier mit {DATE|yyyyMMdd|-1,d}0000
eingestellt, d.h. das einzugebende Datum (hier das aktuelle, z.B. 19.7.2019) abzüglich eines Tages im Format yyyyMMdd (also z.B. 20190718).
Beispiel für das zugehörige Output-File (Cmd.SetDate.txt
):
#======================= #INPUT #======================= [INPUT] Count=7 First=1 Last=7 [1] #INPUT (String) Name=Key cmd.Init cmd.Download cmd.MoveResults cmd.UnzipResults cmd.CopyLog cmd.UnzipTarOneByOne cmd.StartProcessing [2] #INPUT (String) Name=sourcefile ..\Input\DWD.Radolan.OP\Cmd.Init.Template.txt ..\Input\DWD.Radolan.OP\Cmd.Download.Template.txt ..\Input\DWD.Radolan.OP\Cmd.MoveDownloads.Template.txt ..\Input\DWD.Radolan.OP\Cmd.UnzipResults.Template.txt ..\Input\DWD.Radolan.OP\Cmd.CopyLog.Template.txt ..\Input\DWD.Radolan.OP\Cmd.UnZipTarFullDay.Template.txt ..\Input\DWD.Radolan.OP\Cmd.StartProcessing.Template.txt [3] #INPUT (String) Name=date 201907180000 201907180000 201907180000 201907180000 201907180000 201907180000 201907180000 [4] #INPUT (String) Name=targetfile ..\Input\DWD.Radolan.OP\Cmd.Init.txt ..\Input\DWD.Radolan.OP\Cmd.Download.txt ..\Input\DWD.Radolan.OP\Cmd.MoveDownloads.txt ..\Input\DWD.Radolan.OP\Cmd.UnzipResults.txt ..\Input\DWD.Radolan.OP\Cmd.CopyLog.txt ..\Input\DWD.Radolan.OP\Cmd.UnZipTarFullDay.txt ..\Input\DWD.Radolan.OP\Cmd.StartProcessing.txt
Dieses File ist seinerseits wieder ein Input-File für die TaskServer Task SetDate, mit der das Datum dann in weiteren Template-Dateien ausgetauscht werden kann, die ihrereseits wieder Input-Files für z.B. den Download von Daten eines bestimmten Datums sind.