When a plug-in step's <command> element finishes processing, the
step's mandatory <post-processing> element is executed. The
<post-processing> element sets the step's output properties (step
name/property name, see Serena Release Automation Properties) and provides error handling. The
<post-processing> element can contain any valid JavaScript script
(unlike the <command> element, <post-processing>
scripts must be written in JavaScript). Users can also provide their own scripts when
defining the step in the Serana Release Automation editor, see the section called “Post-Processing Scripts”.
Although not required, it's recommended that scripts be wrapped in a CDATA
element.
The <post-processing> element can examine the exit code of the tool
invoked by the <command> element or the step's output log, and take
actions based on the result. For example, Serana Release Automation sometimes uses a scanner
object to scan the step's output on the agent (scanning occurs on the agent) and take
actions dependent on scan results.
In the following code fragment,
scanner.register() registers a string with a regular expression engine,
then takes an action if the string is found. Once all strings are registered, it calls
scanner.scan() on the step's output log.
<![CDATA[
properties.put("Status", "Success");
if (properties.get("exitCode") != 0) {
properties.put("Status", "Failure");
}
else {
scanner.register("(?i)ERROR at line", function(lineNumber, line) {
var errors = properties.get("Error");
if (errors == null) {
errors = new java.util.ArrayList();
}
errors.add(line);
properties.put("Error", errors);
properties.put("Status", "Failure");
});
.
.
.
scanner.scan();
var errors = properties.get("Error");
if (errors == null) {
errors = new java.util.ArrayList();
}
properties.put("Error", errors.toString());
}
]]

