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.

Manual task output properties

The output properties when added to a process containing a manual task gives you information about the approver and aprroval date. You can view the following information in the output log for a manual task:
  • Name of the approver.
  • Display name of the approver.
  • Date and time of approval in the Epoch format.

    Epoch time is a standard machine-readable format. The ApprovalTime property is used to display the time in Epoch format. This format is used internally by another plug-in step.

  • Date and time of approval in the UTC format.

    The FormattedApprovalTime property is used to get the approval time in UTC format and in a human-readable format.

As an example, you have two steps in a process. The first step is a manual task, named manualTask and the second step is a Shell step. You can add the following manual task output properties to the Shell step:
echo "${p:manualTask/ApproverName}"
echo "${p:manualTask/ApproverDisplayName}"
echo "${p:manualTask/ApprovalTime}"
echo "${p:manualTask/FormattedApprovalTime}"

After the completion of the process, you can view the following information in the output log:

=======================
command output:
John P. Doe
John
1123489611901
2024-08-12T19:06:51.901Z
========================