Zusammenarbeit TaskSrv-SydroCmd: Unterschied zwischen den Versionen

Aus TALSIM Docs
Keine Bearbeitungszusammenfassung
(Diese Seite wurde zum Übersetzen freigegeben)
 
(4 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.
 


Wie für den normalen Ablauf einer TaskServer-Auswertung müssen die TaskServer template-Datei, die Input-Datei und die task-Datei vorbereitet werden.
==Beispiel== <!--T:5-->


<!--T:6-->
Beispiel für eine Template Datei <code>Cmd.Replace.tpl</code>:
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 <code>Arg1</code> 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 <code>[VARIABLES]</code>.  
<!--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>:
Beispiel für eine Input-Datei <code>Cmd.StartDownload.tpl</code>:
<pre>
<pre>
Zeile 45: Zeile 64:
#=======================
#=======================


<!--T:13-->
[INPUT]
[INPUT]
Count=1
Count=1
Zeile 50: Zeile 70:
Last=1
Last=1


<!--T:14-->
[1]
[1]
#INPUT (String)
#INPUT (String)
Zeile 56: Zeile 77:




<!--T:15-->
[2]
[2]
#INPUT (String)
#INPUT (String)
Zeile 62: Zeile 84:




<!--T:16-->
[3]
[3]
#INPUT (String)
#INPUT (String)
Zeile 67: Zeile 90:
Now
Now


<!--T:17-->
[4]
[4]
#INPUT (String)
#INPUT (String)
Zeile 73: Zeile 97:
</pre>
</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>.  
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.
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>:
Beispiel für die Task-Datei <code>Cmd.SetCurrentDate.tsk</code>:


<!--T:20-->
<pre>
<pre>
#=======================
#=======================
Zeile 86: Zeile 113:
CountTask=1
CountTask=1


<!--T:21-->
[TASK1]
[TASK1]
Key=Set current date
Key=Set current date
Zeile 94: Zeile 122:
</pre>
</pre>


<!--T:22-->
Beispiel für eine Quelldatei, in der das Datum ausgetauscht werden soll (<code>Cmd.SetDate.Template.txt</code>):
Beispiel für eine Quelldatei, in der das Datum ausgetauscht werden soll (<code>Cmd.SetDate.Template.txt</code>):
<pre>
<pre>
Zeile 100: Zeile 129:
#=======================
#=======================


<!--T:23-->
[INPUT]
[INPUT]
Count=7
Count=7
Zeile 105: Zeile 135:
Last=7
Last=7


<!--T:24-->
[1]
[1]
#INPUT (String)
#INPUT (String)
Zeile 116: Zeile 147:
cmd.StartProcessing
cmd.StartProcessing


<!--T:25-->
[2]
[2]
#INPUT (String)
#INPUT (String)
Zeile 127: Zeile 159:
..\Input\DWD.Radolan.OP\Cmd.StartProcessing.Template.txt
..\Input\DWD.Radolan.OP\Cmd.StartProcessing.Template.txt


<!--T:26-->
[3]
[3]
#INPUT (String)
#INPUT (String)
Zeile 138: Zeile 171:
{DATE|yyyyMMdd|-1,d}0000
{DATE|yyyyMMdd|-1,d}0000


<!--T:27-->
[4]
[4]
#INPUT (String)
#INPUT (String)
Zeile 150: Zeile 184:
</pre>
</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).
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>):
Beispiel für das zugehörige Output-File (<code>Cmd.SetDate.txt</code>):


<!--T:30-->
<pre>
<pre>
#=======================
#=======================
Zeile 159: Zeile 196:
#=======================
#=======================


<!--T:31-->
[INPUT]
[INPUT]
Count=7
Count=7
Zeile 164: Zeile 202:
Last=7
Last=7


<!--T:32-->
[1]
[1]
#INPUT (String)
#INPUT (String)
Zeile 175: Zeile 214:
cmd.StartProcessing
cmd.StartProcessing


<!--T:33-->
[2]
[2]
#INPUT (String)
#INPUT (String)
Zeile 186: Zeile 226:
..\Input\DWD.Radolan.OP\Cmd.StartProcessing.Template.txt
..\Input\DWD.Radolan.OP\Cmd.StartProcessing.Template.txt


<!--T:34-->
[3]
[3]
#INPUT (String)
#INPUT (String)
Zeile 197: Zeile 238:
201907180000
201907180000


<!--T:35-->
[4]
[4]
#INPUT (String)
#INPUT (String)
Zeile 208: Zeile 250:
..\Input\DWD.Radolan.OP\Cmd.StartProcessing.txt
..\Input\DWD.Radolan.OP\Cmd.StartProcessing.txt


<!--T:36-->
</pre>
</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.
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

Sprachen:

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.