Defining Parameters
Parameters are used to store values, which can optionally be changed at submit time. In chain definition, parameters can also be shared and updated between chain processes. Non-runtime parameters are evaluated in the submit wizard once according to their Display Order; Runtime parameters are evaluated immediately before the process, chain, or chain process reaches status Running according to their Display Order. This is particularly important when you create dependencies between parameters; a parameter value that references another parameter must be evaluated after all its referenced parameters; only Runtime parameters can reference other Runtime parameters.
Parameter Properties
- _Name - is used in the source and in chains to refer to the parameter, you should only use alphanumeric characters and the underscore
_
in names. - _Direction - defines how this parameter is to be used.
- _In - value is provided in the process definition or the submit wizard and does not change.
- _Out - value is provided at runtime.
- _In/Out - value is provided in the process definition or the submit wizard and can be changed at runtime.
- _Type - the data type of the parameter, you cannot store alphabetical characters in number parameters, for example.
- _Character - parameter can only hold one single character.
- _Number - parameter can only hold digits.
- _Date Time Zone - parameter holds a date with time and time zone.
- _Date Time - parameter holds date with time.
- _Date - parameter holds a date.
- _Time - parameter holds a time.
- _String - parameter can hold one or more alphanumeric characters.
- _File - parameter either holds the path to the file or a FileParameter object and allows you to attach files to the process in the submit wizard.
JobFile:<process_ID>:<file_name>
-JobFile
expression by process ID, such asJobFile:1234:stdout.log
.RelativeFile:<relative_process>:<file_name>
- relativeJobFile
expression, such asRelativeFile:Initialization Step, Job 2:stdout.log
.doc:/<document_path>
- Document path, where<document_path>
isdoc:partition:/<application_path>/<document_name>.<document_extension>
, and<application_path>
is<partition>.<application>[/<partition>.<application>]*
. For example,doc:MyPartition:/MyTest.pdf
ordoc:MyPartition:/MyPartition2.MyApplication/MyTest.pdf
.Document:<partition>.[<application_bkpath>.]<document_name>
- Document BusinessKey. For example,Document:MyPartition.MYFILE
for a document without application orDocument:MyPartition.MyPartition2%2e;MyApplication%2;$2.MYFILE
for a documentMYFILE
in applicationMyPartition2.MyApplication
; the<application_path>
is the BuisinessKey of the application with dots (.
) replaced with%2
;.
- Table - parameter come in different types that can hold either inline XML data, a reference to a process file, or a table. Supported by RedwoodScript-based definition types, only. The syntax is as follows:
Inline:<xml>
- The<xml>
is raw XML data. The processing instruction (for example<?xml version="1.0" encoding="UTF-8"?>
) is optional, however, if specified appropriate whitespace must separate it from the data.JobFile:<process_ID>:<file_name>
-JobFile
expression by process ID, such asJobFile:1234:stdout.log
.RelativeFile:<relative_process>:<file_name>
- relativeJobFile
expression, such asInitialization Step, Job 2:stdout.log
.Table:<partition>.<name>
- business key of a table, such asTable:MyPartition.Variables
.
- Default Expression - the value of the parameter, can be a literal, like
Hello World
or a Redwood Expression Language expression, like=Time.now('Europe/Berlin')
. Parameters of type File cannot have a default value.- See the Redwood Expression Language and Implicit Objects section below for a list of implicit objects that you can use in your REL expressions.
- Description - is used as descriptive text in the user interface and while submitting; in editors you can switch between Name and Description.
- Group Name - allows you to create tabs in the submit wizard to group parameters; the groups are ordered by the lowest Display Order of a parameter in the group. See the section below.
- Documentation - is used to provide further information regarding the parameter, this will not be displayed in the submit wizard.
- Length - maximum length of the parameter in characters.
- Process Format - the format of the parameter value. You can use a specific syntax to format the value of your parameter, depending on its Type. You enable File type parameters to be available in RedwoodScript as FileParameter objects by setting this to
FileParameter
. - Array - array parameters can hold multiple values. Arrays must have unique elements.
- Array length Min - minimum amount of values.
- Array length Max - maximum amount of values.
- Array Options - Duplicate values allowed (array had hold duplicate values), Sorted (Array values are sorted numerically or alphabetically)
- Editable - Can the value be edited in the submit wizard?
- Simple Constraint Type - Constraints allow you to enforce rules for parameter values. See Constraints for more information.
- Simple Constraint Data
- Simple Constraint Message
- Simple Constraint Optional
- Simple Constraint Sort
- Parameter Options
- Optional - parameter value can be null.
- Display - parameter is displayed in the submit wizard Parameters dialog, submit wizard Summary dialog, and the processes monitor detail pane for the process when this option is enabled.
- Part Of Key - parameter is used in keep clauses, see Automatically Deleting Old processes.
- Runtime - In and In/Out runtime parameter Default Expressions are evaluated immediately before the process reaches status Running.
- Password - password parameters hide the entered value.
- Job Definition Parameter Sub Type - Internal use, only.
note
Array parameters are not supported by all definition types. In RedwoodScript process definitions, for example, you access them like regular Java arrays. See the documentation for the specific definition type.
note
File parameters created in versions prior to 9.0.20 hold the full path to the uploaded file; the upgrade does not change existing parameters. Any new parameters created will hold the FileParameter object.
note
The Display Order of parameters is also the order in which parameters are resolved. If you use Redwood Expression Language to define a parameter based on the value of another parameter, the parameter in the expression must have a lower Display Order than the parameter it defines or the latter will not get resolved.
Ordering of Groups
The groups are ordered by the Display Order of the parameters, only the lowest Display Order of a group is taken into account.
Example:
Group A
- Parameter1 - Display Order 9.
- Parameter2 - Display Order 8.
- Parameter3 - Display Order 1.
Group B
- Parameter4 - Display Order 7.
- Parameter5 - Display Order 6.
- Parameter6 - Display Order 2.
Group C
- Parameter7 - Display Order 5.
- Parameter8 - Display Order 4.
- Parameter9 - Display Order 3.
The groups will be ordered by the parameters with the lowest Display Order in each group, so ordering is performed by the Display Order of Parameter3, Parameter6, and Parameter9 as follows:
Group A|Group B|Group C
Redwood Expression Language and Implicit Objects
The Default Expression field accepts REL expressions; the table below lists implicit objects that can be used within your REL expressions. You can find the list of REL functions in the REL-specific topic; see the See Also section below.
Implicit objects | Description | Class |
---|---|---|
parameters.<name> | Value of parameter <name> of current job | java.lang.String, java.lang.Number, java.util.Date, com.redwood.scheduler.api.date.DateTimeZone |
outParameters.<name> | Value of Out parameter <name> of current job | java.lang.String, java.lang.Number, java.util.Date, com.redwood.scheduler.api.date.DateTimeZone |
chainParameters.<name> | Value of parameter <name> of inner-most chain | java.lang.String, java.lang.Number, java.util.Date, com.redwood.scheduler.api.date.DateTimeZone |
chainOutParameters.<name> | Value of out parameter <name> of inner-most chain | java.lang.String, java.lang.Number, java.util.Date, com.redwood.scheduler.api.date.DateTimeZone |
JobChainParameters.getOutValueString(<jobName>, <parameter>) | The value of the Out parameter <parameter> of the chain process (see placeholders below) | java.util.String |
JobChainParameters.getOutValueNumber(<jobName>, <parameter>) | The value of the Out parameter <parameter> of the chain process (see placeholders below) | java.lang.Number |
JobChainParameters.getOutValueDate(<jobName>, <parameter>) | The value of the Out parameter <parameter> of the chain process (see placeholders below) | java.util.Date |
chainJobId | ID of the inner-most chain (needs to be a Runtime parameter) | long |
jobId | ID of the current process (needs to be a Runtime parameter) | long |
topLevelJobId | ID of highest parent in hierarchy (needs to be a Runtime parameter) | long |
returnCode | Return code of current job | long |
stepIterations | Iteration number of the current step or job | long |
waitEvents.<name>.finalPath | The path of the file that raised the wait event <name> (after move, if applicable) | java.lang.String |
waitEvents.<name>.originalPath | The path of the file that raised the wait event <name> (before move, if applicable) | java.lang.String |
waitEvents.<name>.raiserComment | The comment of the raiser for wait event <name> | java.lang.String |
waitEvents.<name>.raiserJobId | The ID of the process that raised the wait event <name> (if applicable) | java.lang.Long |
Example
Referencing the Value of one Parameter in Another Parameter
Your process definition has two parameters, param1
and param2
.
The data type of param1
is Number and its Default Expression is set to 1
.
The parameter param2
is also a Number parameter, its Default Expression is set to =parameters.param1 * 2
.
Here, the Display Order is very important, if parameter param2
has a lower Display Order than param1
it will be displayed first. However, Redwood Server will not be able to resolve it and attempting to submit the process will result in an exception being thrown. This is due to the fact that param1
, which is part of the Default Expression of param2
, has not been evaluated, yet, when Redwood Server attempts to evaluate param2
.
See Also
Parameters JobParameter parameter JobChainParameter JobDefinitionParameter ProcessDefinitionParameter