Semantik


 

<fetchresource> bindet eine Ressource an ein Objekt im Speicher, so dass dieses über die angegebene id im Code ansprechbar und verwendbar ist. Üblicherweise wird die Ressource vom Auftrags-System empfangen, Sie können aber Ressource von jeder beliebigen, erreichbaren Adresse anfordern (lokal oder remote). <fetchresource> stellt damit eine Schnittstelle zwischen Dateien und Objekten in RCML her. Selbstverständlich müssen Sie nicht zwingend mit einem <fetchresource> in einem <process> arbeiten, Worker können auch Prozesse völlig ohne Anbindung an externe Systeme ausführen.

Beachten Sie, dass Sie über Variablenbindungen wie .getFile() auf die Datei selbst, die durch ein <fetchresource>-Objekt repräsentiert wird, zugreifen müssen.

 

Attribute


 

AttributnameDatentypBeschreibungMögliche WerteStandardwertObligatorisch?
idSTRINGDie ID des Elements, über die es im Code angesprochen werden kann.beliebiger, regelkonformer Name.

(Fehler)
resourceSTRINGDie zu bindende Ressource.(Haken)
clear-on-shutdownBOOLEAN

Gibt an, ob das Verzeichnis nach Beendigung des Prozesses automatisch gelöscht werden soll (true) oder nicht (false) oder ob es nur gelöscht werden soll, wenn kein Fehler aufgetreten ist (keep-on-error).

 

Im Produktiveinsatz sollte hier true gesetzt werden.

"true" : "false" : "keep-on-error"false(Fehler)

 

Subelemente / Inhalt


 

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

 

Variablenbindungen


 

Das <fetchresource>-Element ist vom Typ FETCHED-RESOURCE. Dieser Typ besitzt folgende Variablenbindungen:

 

BindungBeschreibungRückgabetyp
getFile()Gibt die durch <fetchresource> gebundene Datei als Dateiobjekt zurück (siehe unten FILEOBJECT).FILEOBJECT
getUrl()Gibt den URL zur Ressource zurück.STRING
getLocator()Gibt die genaue Adresse des Objekts zurück.STRING
isShared()Gibt an, ob die Ressource shared oder merged abgelegt wird (siehe auch hier).BOOLEAN

 

(Info) Auf FILEOBJECT ( id.getFile() ) sind außerdem folgende Variablenbindungen anwendbar:
 

NameBeschreibungRückgabetyp
getName()Gibt den Namen der Datei zurück.STRING
getAbsolutePath()Gibt den absoluten Pfad zur Datei zurück.STRING

 

Beispiel


 

In folgendem Beispiel wird mit <fetchresource> die vom Spooler empfangene Datei an die id = "inputFile" gebunden. Über die Variablenbindungen .getFile().getAbsolutePath() wird der Pfad zur Datei in einem <param> gespeichert und dann verwendet. Anschließend wird die Datei umbenannt und direkt wieder an den Spooler zurückgeschickt. Zuletzt wird die Ressource mit <releaseresource> manuell freigegeben. Das Beispiel verwendet das <workdir>-, <exec>-, <param>-, <commandline>-, <result>- und <releaseresource>-Element.

 

<rcml>	
	<process id="ExampleProcess" name="example process">
		
		<!-- Arbeitsverzeichnis für den Prozess setzen. -->
		<workdir id="workdir" home="./WORK" />
 
		<!-- Vom Spooler Ressource empfangen und an die id "inputFile" binden. -->
		<fetchresource id="inputFile" resource="${process['eoms.process.input']}" />
		
		<exec id="RenameProcess" workdir="workdir">
 
			<!-- Parameter anlegen: Pfad zur Ressource "inputFile". Dies muss über <param> geschehen! -->
			<param name="infile" value="${inputFile.getFile().getAbsolutePath()}" />
 
			<!-- Parameter anlegen: Der neue Pfad mit neuem Namen. Dies muss über <param> geschehen! -->
			<param name="outfile" value="${workdir.getAbsolutePath() + '/cool_new_file'}" />
 
			<!-- Ressource umbenennen in "cool_new_file"... -->
			<commandline processor="velocity">cmd move $infile $outfile </commandline> 
 
			<!-- Bei Fehlern abbrechen. -->
			<result return-code="0" />
 
		</exec>
 
		<!-- Umbenannte Datei samt komplettem Arbeitsverzeichnis an Spooler schicken. -->
		<upload file="workdir" destination="${process['eoms.process.output']}" />
 
		<!-- Ressource manuell wieder freigeben. -->
		<releaseresource resource="inputFile" />
	
	</process>	
</rcml>
<fetchresource>
Zweck:

Ressourcenbindung

Typ:

Standalone

Elternelement:

Top-Level-Elemente

Subelemente:

Nein

Variablenbindungen:

Ja

Beachte

Mit <releaseresource> kann die Ressource wieder freigegeben (zur Löschung markiert) werden.

  • Keine Stichwörter