Output properties

Output properties are specialized properties that process steps generate. You use output properties to pass parameters to subsequent steps in a process.

You can use output properties in component processes and generic processes.

In the JavaScript code for your postprocessing steps, you can establish output properties. See Examples of post-processing scripts. You set an output property for a step by assigning it a name and a value in the postprocessing script. For example, the following code from the Check If BLA Exists step in the IBM® WebSphere® Application Server Deployment plug-in establishes three possible values for the blaExists output property:

def exitCodeChecker = { exitCode ->
    if (exitCode == 0) {
        properties.setProperty("blaExists", "true");
        exitValue = 0;
    }
    else if (exitCode == 30) {
        properties.setProperty("blaExists", "false");
        exitValue = 0;
    }
    else {
        properties.setProperty("blaExists", "unknown");
        exitValue = 1;
    }
In the same way, you can create your own output properties by adding them in post-processing scripts. Use the format properties.setProperty("propName",propValue);, where propName is the name of the property and propValue is the value of the property. For example:
properties.setProperty("url", "http://example.com"); 
Then, you can refer to these output properties in other steps in a process. To do so, you must know the name of the step that contains the output property that you use. For example, your process might require different actions if a BLA exists. In this case, you could use a Switch step to branch the process for each case. In the following figure, the Switch step checks the value o f the blaExists output property by using the code ${p:Check If BLA Exists/blaExists}:
Using an output property value as the input for a Swtich step

You can use output properties in other postprocessing scripts, step preconditions, step properties, or the code of steps themselves. Passing property values among processes, resources, and steps helps limit the requirement to provide input manually and to maintain accuracy and reliability.

Secure output properties

You can set an ouput property as secure property for a process running on a Web agent. As an example, you can obsecure the value of a password field in the output log and Web UI. Define the secure output property by adding .$secure at the end of the property.

For example, set the property in JavaScript as:
outProps.setProperty("Password.$secure", "xyz"); 

or set the same property in Groovy as:

outProps.setProperty("Password.\$secure", "xyz"); 

Note that the agent must have support for the special handling of the indicated output property naming convention. The environment variable UCD_USE_ENCRYPTED_PROPERTIES with a value of true indicates the support of this functionality in a plug-in step and is handled by the agent.

If the environment variable is not available with the agent, then upgrade the agent to a newer version that has the functionality. Manually adding the environment variable does not enable the desired functionality in an older agent. It rather sets the propery as a regular output property when it is intended to be set as secure.