Dieser Job kann einzeln (eingenständig; stand-alone), außerhalb einer Job-Kette, oder auftragsgesteuert als Knoten innerhalb einer Jobkette verwendet werden. Die Parameter werden entsprechend als Job- oder Auftragsparameter von der Implementierung des Jobs interpretiert und verarbeitet.
Ein Job kann eine beliebige Anzahl Parameter haben, die vom JobSchedulder dem Job beim Job-Start übergeben werden. Parameter werden in der Konfigurationsdatei des Jobs bzw. des Auftrages oder über die entsprechenden API-Methoden definiert und mit Werten versorgt. Parameter sind entweder obligatorisch oder optional. Für einen Parameter kann ein Default-Wert vorgegeben sein. Der gilt dann, wenn der Parameter nicht angegeben wurde. Nicht alle Parameter haben einen Default-Wert.
Auftragsparameter überschreiben gleichnamige Job-Parameter.
Zu überwachende Datei oder zu überwachendes Verzeichnis.
Monitored file or directory.
Supports masks for substitution in the file name and directory name with format strings that are enclosed by brackets ([ and ]). The following format strings are supported:
[date:date format]
date format must be a valid Java data format string, e.g. yyyyMMddHHmmss , yyyy-MM-dd.HHmmss etc.
For further information on valid values for a dateformat string see SimpleDateFormat
An example:
<param name="file"
value="sample/hello[date:yyyyMMdd].txt"
/>
On 2050-12-31 the parameter
file
contains the value
"sample/hello20501231.txt"
.
Unterstützt Substitution von Masken in Parameterwerten mit
Formatangaben, die mit
[
und
]
geklammert sind.
Folgende Formate werden unterstützt:
[date:
date format
]
<param name="target_file"
value="sample/hello[date:yyyyMMdd].txt" />
"sample/hello20501231.txt"
.
[directory:]
source_file
ersetzt.
[directory:
index
]
[directory:2]
liefert "aaa/bbb" zurück.
[directory:-3]
liefert "bbb/ccc/ddd" zurück.
[directory:0]
oder
[directory:-0]
liefern immer den kompletten Pfad zurück.
[directory:5]
oder
[directory:-12]
liefern hier den kompletten Pfad zurück.
Der JobScheduler unterstützt die Ersetzung (Substitution) von Parameter-Namen durch deren aktuellen Wert, wenn der Parameter-Name mit % und % geklammert ist und als Wert für einen Parameter angegeben wird.
Der Parameter
scheduler_file_path
gesetzt ist. Bei der
Verzeichnisüberwachung mit Dateiaufträgen
wird der Job-Parameter
The JobScheduler supports substitution of parameter names with their value if the parameter name is enclosed by % and % .
In diesem Beispiel wird der Wert des Parameters "
In this example the value of the parameter "scheduler_file_path" is used as the value for the
parameter "source_file".
Using
Directory Monitoring with File Orders
the job parameter
Unterstützt Substitution von Parameternamen durch deren Wert, wenn der jeweilige Parametername mit % und % geklammert ist.
Beispiel:
<param name="source_file" value="%scheduler_file_path%"
/>
Der Parameter
scheduler_file_path
gesetzt ist. Bei der
Verzeichnisüberwachung mit Dateiaufträgen
wird der Parameter
Regulärer Ausdruck als Dateifilter. Verhält sich CASE_INSENSITIVE.
Nur wirksam, wenn der Parameter
Einige Bemerkungen über reguläre Ausdrücke wie sie im JobScheduler verwendet werden.
Ein regulärer Ausdruck ist keine wildcard . Um einen Eindruck hinsichtlich der Unterschiede zwischen einer Wildcard und einem regulären Ausdruck zu bekommen, betrachten wir die Wildcard "*.txt", welche alle Dateien mit dem Dateinamen-Erweiterung ".txt" auswählt. Ein regulärer Ausdruck funktioniert auf die gleiche Art und Weise, hier muss die "Wildcard" jedoch die Form "^.*\.txt$" haben. Das sieht ein wenig seltsam aus, aber ist viel flexibler und leistungsfähiger zur Filterung der Dateinamen als das Konzept der Wildcards, wenn man komplexere Namen oder Muster filtern möchte.
Ein weiterer Vorteil regulärer Ausdrücke gegenüber einer "wildcard" ist die Mächtigkeit und gleichzeitige Flexibilität bei der Formulierung von Bedingungen, die zutreffen müssen, damit ein Dateiname (e.g. ein String) ausgewählt wird. Sollen zum Beispiel alle Datein ausgewählt werden, deren Name entweder die Zeichenkette "SUCH" oder "SUEU" oder "LIS1" enhält und nicht am Anfang oder Ende steht, so ist der reguläre Ausdruck wie folgt zu formulieren: ^.*(SUCH|SUEU|LIS1).*$
Die allgemeine Syntax eines regulären Ausdrucks , auch regex or regexp genannt, wird hier beschrieben. Es unterscheidet sich von anderen RegExp Definitionen, z. B. wie für Perl.
Für weitere Informationen regulärer Ausdrücke siehe java.util.regex.Pattern
Beispiele:
source_file
|
file_spec
|
replacing
|
replacement
|
Beispiel | Ergebnis | Kommentar |
---|---|---|---|---|---|---|
./temp | .* | ~ | "" | hallo.dat~ | hallo.dat | - |
a.txt | - | [.]txt | _2006-11-24.txt | - | a_2006-11-24.txt | - |
./temp | .* | .* | [filename:] [date:yyyy-MM-dd].dat | a.txt | a.txt2006-11-24.dat | [filename:] und [date:] werden substituiert nachdem die Ersetzung durchgeführt wurde |
./temp | .*[.]txt | a.*?b | world | a.1.b.txt.b | world.txt.b | .*? : Verwendung von .* im Modus "ungreedy" |
abcdefg.txt | - | ^(ab)cde(fg)[.]txt | 123;[date:yyyy-MM-dd] | - | 123cde2006-11-24.txt | ; : Trennzeichen zwischen mehreren Ersetzungsstrings |
./temp | .*dat$ | (ab)_c[0-9]d_(fg) | group1;group2 | ab_c1d_fg. ab_c2d_fg.dat | group1_c1d_group2. ab_c2d_fg.dat | Nur die erste Übereinstimmung des Musters wird ersetzt. |
./temp | .* | ^(?:aa|bb)_.{2}_ ([0-9]+_[0-9]+)$ | tail | aa_QU_061205_222334 | aa_QU_tail | (?:...) : "?:" Spezifiziert eine "non capturing group". Diese wird nicht ersetzt. |
./temp | FILE.txt | .* | [filename:lowercase]_[filename:uppercase]_[filename:] | FILE.txt | file.txt_FILE.TXT_FILE.txt | - |
source_file
|
target_file
|
file_spec
|
create_dir
|
replacing
|
replacement
|
Beispiel | Ergebnis | Kommentar |
---|---|---|---|---|---|---|---|---|
aaa/bbb/ | [directory:]/[date:yyyyMMdd]/ | hello.txt | true | [.]txt | [date:yyyy].txt | aaa/bbb/hello.txt | aaa/bbb/20070316/hello2007.txt | Wenn das Verzeichnis aaa/bbb/20070316 noch nicht existiert, wird es angelegt |
Für weitere Informationen zu regulären Ausdrücken, siehe java.util.regex.Pattern
Regular Expression for file filtering. The behaviour is CASE_INSENSITIVE.
Only effective if the parameter
Some remarks on regular expression, used in JobScheduler and YADE.
A regular expression is not a wildcard . To get an impression of the differences one have a look on the meaning of the wildcard *.txt, which will select all filenames with the filename-extension ".txt". A regular expression to match, e.g. works the same way, this "wildcard" must look like "^.*\.txt$". That looks a little bit strange but it is much more flexible and powerfull on filtering filenames than the concept of wildcards, if one want to filter more complex names or pattern.
The general syntax of an regular expression, also referred to as regex or regexp, is described here. It is different to other RegExp definitions, e.g. as for Perl.
For further information on regular expressions see java.util.regex.Pattern
As an extension of regular expression the [date:] variable is supported. Using this feature it is possible to create a regexp, which is depending on the date with is defined in the date-format.
If you want (only part of the regex) to be case sensitive , then you have the option to use the (?-i) and [optionally] (?i) mode modifiers: (?-i)G[a-b](?i).*
If you're dealing with Unicode characters besides ASCII, check whether or not your regex engine properly supports them.
Einige Anmerkungen und Erklärungen zur Technik und Verwendung der regulären Ausdrücke in JobScheduler und YADE.
Ein regulärer Ausdruck ist keine wildcard . Um einen ersten Eindruck bezüglich des Unterschiedes zwischen einem "regulären Ausdruck" und einer "wildcard" zu bekommen, vergleichen Sie die Bedeutung der wildcard "*.txt" mit dem regulären Ausdruck "^.*\.txt$". Beide Ausdrücke erlauben die Selektion aller Dateinamen, die mit einer beliebigen Zeichenfolge beginnen und dann mit ".txt" enden. Der reguläre Ausdruck erfüllt in diesem Beispiel die gleichen Anforderungen, ist aber wesentlich mächtiger, sobald komplexere Kriterien abgebildet werden müssen.
Die generelle Syntax eines regulären Ausdrucks, auch bezeichnet als regex oder regexp, ist hier beschrieben. Es weicht ab von anderen Definitionen der regulären Ausdrücke, zum Beispiel wie sie in Perl verwendet werden.
Für weitere Informationen über reguläre Ausdrücke siehe java.util.regex.Pattern
Als Erweiterung der Syntax der regulären Ausdrücke kann die [date:]-variable verwendet werden. Mit dieser Variablen kann z.B. ein regulärer Ausdruck gebildet werden, der das jeweilige aktuelle Datum enthält, ohne daß der Ausdruck neu gebildet werden muß.
Wenn der Vergleich mit dem regulären Ausdruck, oder Teile des Ausdruck, die Groß-/Kleinschreibung berücksichtigt werden soll, so kann dies mit der folgenden Schreibweise spezifiziert werden.
Durch Verwendung von (?-i) - Klein-/Großschreibung beachten - und [optional] (?i) - Klein-/Großschreibung nicht beachten - Modifikatoren: (?-i)G[a-b](?i).*
Sie sollten sicherstellen, daß die regex engine Unicode unterstützt, sobald Sie Unicode-Zeichen im regexp verwenden. Andernfalls erhalten Sie unerwartete Ergebnisse des Vergleichs.
Examples for regular expressions used for replacing:
source_file
|
file_spec
|
replacing
|
replacement
|
Example Input | Output | Comment |
---|---|---|---|---|---|---|
./temp | .* | ~ | "" | hallo.dat~ | hallo.dat | - |
a.txt | - | [.]txt | _2011-11-24.txt | - | a_2011-11-24.txt | - |
./temp | .* | .* | [filename:] [date:yyyy-MM-dd].dat | a.txt | a.txt2011-11-24.dat | [filename:] and [date:] will be substituted after file has been replaced |
./temp | .*[.]txt | a.*?b | world | a.1.b.txt.b | world.txt.b | .*? : ungreedy usage of .* |
abcdefg.txt | - | ^(ab)cde(fg)[.]txt | 123;[date:yyyy-MM-dd] | - | 123cde2011-11-24.txt | ; : separator between multiple replacements |
./temp | .*dat$ | (ab)_c[0-9]d_(fg) | group1;group2 | ab_c1d_fg. ab_c2d_fg.dat | group1_c1d_group2. ab_c2d_fg.dat | Only the first pattern match is replaced |
./temp | .* | ^(?:aa|bb)_. {2}_([0-9]+_[0-9]+)$ | tail | aa_QU_061205_222334 | aa_QU_tail | (?:...) : "?:" specifies a non capturing group. The file will not be replaced. |
./temp | FILE.txt | .* | [filename:lowercase]_[filename:uppercase]_[filename:] | FILE.txt | file.txt_FILE.TXT_FILE.txt | - |
source_file
|
target_file
|
file_spec
|
create_dir
|
replacing
|
replacement
|
Example input | Output | Comment |
---|---|---|---|---|---|---|---|---|
aaa/bbb/ | [directory:]/[date:yyyyMMdd]/ | hello.txt | true | [.]txt | [date:yyyy].txt | aaa/bbb/hello.txt | aaa/bbb/20070316/hello2007.txt | If the directory aaa/bbb/20070316 does not yet exist it will be created |
For further information see java.util.regex.Pattern
For further information on date-patterns see: java.util.regex.Pattern
Aktiviert oder deaktiviert Fehlermeldungen, die aufgrund einer leeren Ergebnisliste der im Job auszuführenden Operation ausgelöst werden können, und steuert damit den Ablauf der Schritte (Knoten) in einer Job-Kette.
Gültige Werte: false, 0, off, no, n, nein, none , true, 1, on, yes, y, ja, j und all
Bei einer leeren Ergebnisliste der Operation ergibt sich folgendes Verhalten eines Jobs bzw. einer Job-Kette bezüglich der Meldung eines "Fehlers":
GRACIOUS
|
Standalone-Job
|
JobKetten-Job
|
---|---|---|
false, 0, off, no, n, nein, none |
error log,
Task error |
error log,
set_state error |
true, 1, on, yes, y, ja, j |
no error log,
Task success |
no error log,
set_state error |
all |
no error log,
Task success |
no error log,
set_state success |
Enables or disables error messages that are caused by an empty result-set, which is the result of an operation, executed by the job. Therefore this parameter can control the sequence of nodes or states in a job-chain.
Valid values:
false, 0, off, no, n, nein, none , true, 1, on, yes, y, ja, j and all.
The following rules apply when the result-set is empty:
GRACIOUS
|
Standalone-Job
|
Order-Job
|
---|---|---|
false, 0, off, no, n, nein, none |
error log,
Task error |
error log,
set_state error |
true, 1, on, yes, y, ja, j |
no error log,
Task success |
no error log,
set_state error |
all |
no error log,
Task success |
no error log,
set_state success |
For example, the setting "gracious=all" will suppress all errors regarding an empty result-set and will terminate a Job (standalone and inside a jobchain) as it would be without errors.
Prüft ob eine oder mehrere Dateien beschreibbar sind. Das schließt die Prüfung auf Existenz ein.
this job checks whether one or more files can be written including check of file exist.