Semantik


 

Das <param>-Element macht innerhalb eines <exec>-Elements Parameter für die Kommandoausführung durch <commandline>- verfügbar. <param>-Elemente müssen innerhalb eines <exec>-Elements stehen und vor dem <commandline>-Element, damit die Parameter im <commandline>-Element genutzt werden können. Als Attribute werden der Name des Parameters und sein neuer Wert übergeben. Der Name des Parameters ist dabei frei wählbar (innerhalb der Regeln zur Benennung von Variablen). Als Wert können neben statischen Werten auch berechnete Werte zugewiesen werden. In einem nachfolgenden <commandline>-Element ist der Parameter mit seinem Wert dann über seinen Namen ansprechbar (siehe <commandline>). Alle Objekte, die innerhalb von <commandline> angesprochen werden sollen, müssen zuvor als <commandline> deklariert sein! Soll z.B. innerhalb von <commandline> auf die Ressource eoms.process.input zugegriffen werden, so muss diese einem <param> zugewiesen und dann per $name darauf zugegriffen werden (siehe Beispiel).

 

Attribute


 

AttributnameDatentypBeschreibungMögliche WerteStandardwertObligatorisch?
nameSTRINGGibt den Namen des Parameters an. Kann beliebig gewählt werden.beliebige, regelkonforme Zeichenkette.

(Haken)
valueOBJECTGibt den Wert an, den der Parameter enthalten soll.beliebiges Objekt (alle Datentypen gültig, auch z.B. Files).

(Haken)

 

Subelemente / Inhalt


 

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

 

Variablenbindungen


 

Das <param>-Element besitzt keine Variablenbindungen. Der Zugriff auf das Element erfolgt direkt über name, innerhalb von <commandline> z.B. durch $name (siehe <commandline>).

 

Beispiel


 

In <commandline>-Elementen können ausschließlich <param>'s referenziert werden. Deshalb muss jegliches Objekt, dass im Befehl verwendet werden soll, zuvor einem <param> zugewiesen werden. Dies gilt auch für Variablen aus <update-variable> und anderen dynamisch generierten Objekten im Speicher. Beispiel (verwendet das <workdir>-Element):

 

<rcml>	
	<process id="ExampleProcess" name="example process">
  
		<workdir id="workdir" home="./WORK" />
		<update-variable name="command" value="cmd mkdir C:/newfolder" />
  
		<exec id="copyProcess" workdir="workdir">
			<!-- Ich will in meinem commandline-Befehl die Variable command benutzen. Folgendes ist nicht erlaubt:
			<commandline processor="velocity">command</commandline> -->
	
			<!-- stattdessen muss die Resource zuvor einem <param> zugewiesen werden: -->
			<param name="mycommand" value="${command}"/>
 
			<!-- Befehlsausführung -->
			<commandline processor="velocity">$mycommand</commandline>
 
		</exec>
 
	</process>
</rcml>

 

Noch einmal ein vollständiges Beispiel, das 2 Parameter setzt und sie danach im <commandline>-Befehl verwendet. Das Beispiel verwendet das <workdir>-Element.

 

<rcml>	
	<process id="ExampleProcess" name="example process">
 		
		<workdir id="workdir" home="./WORK" />
		
		<exec id="copyProcess" workdir="workdir">
	           
			<!-- Setzt 2 Parameter und übergibt als Werte berechnete Ausdrücke: Parameter 1:
				Der absolute Pfad zur InputRessource. Parameter 2: Kopierziel. -->         
			<param name="infile" value="${inputFile.getFile().getAbsolutePath()}"/>
			<param name="outfile" value="${process['copy.output']}"/>
	                    
			<!-- Kopiert Datei $infile nach $outfile. -->
			<commandline processor="velocity">cmd /C copy $infile $outfile</commandline>
 
		</exec>
 
	</process>
</rcml>
<param>
Zweck:

Parameterübergabe

Typ:

Subelement

Elternelement:
Subelemente:

Nein

Variablenbindungen:

Nein

Verzweigungsstruktur
Beachte

<param>-Elemente müssen in <exec>-Elementen vor dem <commandline>-Element stehen!

  • Keine Stichwörter