This script compares response data (in this case something from a message header) to data that has been previously entered into a message property.
// Get prior message. var msg = $context.currentItem.previousItem; // Get 'Server' response header from prior response. // This examples assumes a "Server: Apache" response header // from hitting this url: https://turbotax.intuit.com/ var responseData = msg.getResponse(msg.RESPONSE_HTTP_HEADER, "Server"); // Put 'Server' response header in script log/events list. $context.result.postMessage($context.result.LEVEL_INFO, "responseData: " + responseData); // Put contents of message property (myProp) from prior message // into a javascript variable and output to script log/events list. // Message property is named 'myProp' with contents of 'Apache'; // failure case has property contents of 'Not Apache'. var preStoredMessageProperty = msg.propertyList.getPropertyValue("myProp"); $context.result.postMessage($context.result.LEVEL_INFO, "preStoredMessageProperty: " + preStoredMessageProperty); // Compare response to message property and take appropriate path. if (responseData == preStoredMessageProperty) { $context.result.postMessage($context.result.LEVEL_INFO, "Response DOES match"); } else { $context.result.postMessage($context.result.LEVEL_ERROR, "Response DOES NOT match"); // Set all subsequent messages to NOT play var nextItem = $context.currentItem.nextItem; while (nextItem != null) { nextItem.setRepeat(nextItem.REPEAT_TIMING_SERIAL, nextItem.REPEAT_TYPE_COUNT_CONSTANT, 0, nextItem.REPEAT_DISTRIBUTION_CONSTANT, 0); nextItem = nextItem.nextItem; } // Enable "ErrorHandling" chain. // Note: ErrorHandling chain was disabled in the clip by default // (i.e. serial repeat = 0) chain = $context.currentClip.getChild("ErrorHandling"); chain.setRepeat( chain.REPEAT_TIMING_SERIAL, chain.REPEAT_TYPE_COUNT_CONSTANT, 1, // this means do it ONE time chain.REPEAT_DISTRIBUTION_CONSTANT, 0); } // Clear message response from memory since it is no longer needed. msg.clearResponse();