Semantik


 

Das <upload>-Element dient dazu, Dateien oder Verzeichnisse (Objekte vom Typ FILEOBJECT) an eine Zieladresse zu senden (z.B. das Auftrags-System). Verzeichnisse werden redundant durchlaufen, d.h. der komplette Inhalt eines Verzeichnisses inklusive Unterverzeichnissen wird versendet. Dabei kann durch die Attribute include und exclude Filterausdrücke angegeben werden, die bestimmen, welche Dateien und Verzeichnisse nicht gesendet bzw. explizit gesendet werden sollen.

 

Attribute


 

AttributnameDatentypBeschreibungMögliche WerteStandardwertObligatorisch?
fileFILEOBJECTDie Datei oder das Verzeichnis, das an die angegebene Adresse (destination) gesendet werden soll.ein existierendes FILEOBJECT

(Haken)
destinationSTRINGDie Adresse, an die file gesendet werden soll. (Haken)
includesSTRINGRegulärer Ausdruck, der angibt, welche Dateien und Verzeichnisse in die Übertragung eingeschlossen werden sollen. Es werden nur Objekte übertragen, deren Name auf den Ausdruck passt. Alle anderen Dateien werden nicht übertragen.Regulärer Ausdruck.*.*(Fehler)
excludesSTRINGRegulärer Ausdruck, der angibt, welche Dateien und Verzeichnisse von der Übertragung ausgeschlossen werden sollen. Objekte, deren Name auf den Ausdruck passt, werden nicht übertragen. Alle anderen Dateien werden nicht übertragen.Regulärer Ausdruck.(Fehler)

 

Subelemente / Inhalt


 

Das <upload>-Element besitzt keine Subelemente und kann keinen Inhalt enthalten.

 

Variablenbindungen


 

Das <upload>-Element besitzt keine Variablenbindungen.

 

Beispiel


 

Im folgenden Beispiel soll die Funktionsweise von <upload> mit Filtern verdeutlicht werden. Dazu wird zunächst mit <fetchresource> eine Ressource vom Auftrags-System geholt und an die id "inputFile" gebunden. Die Datei soll mit der Endung .txt versehen und ins Arbeitsverzeichnis (<workdir>) kopiert werden. Von dort soll dann nur diese Datei an das Auftrags-System zurückgesendet werden. Da wir den Dateinamen mehrfach verwenden, legen wir zunächst mit <update-variable> die Variable "FileName" an, die genau das enthält. Anschließend soll die Umbenennung per <commandline> durchgeführt werden. Dazu legen wir 2 Parameter an: Parameter 1 Enthält den Pfad zur Datei, Parameter 2 enthält den neuen Pfad der Datei: Dieser besteht aus dem Pfad der <workdir>, dem Dateinamen sowie der Endung .txt. Danach folgt die Umbenennung / Verschiebung. Abschließend wird die "neue" Datei mit <upload> an das Auftrags-System geschickt. Dabei wird durch den Parameter includes angegeben, dass nur Dateien und Verzeichnisse, die exakt den Namen (samt Endung) unserer Datei haben, mitgeschickt werden.

 

<rcml>	
	<process id="ExampleProcess" name="example process">
 
		<workdir id="workdir" home="./WORK" />
		<!-- Ressource vom Spooler holen. -->
 		<fetchresource id="inputFile" resource="${process['eoms.process.input']}" />
 
		<!-- Variable anlegen, die den Dateinamen enthält -->
		<update-variable name="FileName" value="inputFile.getFile().getName()" />
 
		<!-- Hier wird die Ressource zu einer .txt konvertiert... -->
		<exec id="ExampleExec" workdir="workdir">
			<!-- Parameter 1: Der Pfad zur Datei. -->
			<param name="file" value="${inputFile.getFile().getAbsolutePath()}" />
			<!-- Parameter 2: Der neue Pfad, an den kopiert werden soll. Die Datei bekommt eine neue Endung .txt. -->
			<param name="TXTfile" value="${workdir + '/' + FileName + '.txt'}" />
			<commandline>cmd /C move $file $TXTfile</commandline>		
		</exec>
 
		<!-- Nur Dateien hochladen, die den Dateinamen samt .txt Endung haben. -->
		<upload file="workdir" destination="${process['eoms.process.output']}" include="${FileName + '.txt'}" />
	
	</process>	
</rcml>
Zweck:

Datenübertragung

Typ:

Standalone

Elternelement:

Top-Level-Elemente

Subelemente:

Nein

Variablenbindungen:

Nein