Useful snippets of code given as examples to help with various scripting needs.
Scripted SOAP Service
Use this script to add a SOAP endpoint to a Unifi Process. You will need to update the api_name to be the same as the one you set in the Process record.
(function scriptedWebServiceOperation(request, response) {
var helper = new x_snd_eb.SoapHelper('api_name'); // the API name of the Unifi Process
var xml = helper.processRequest(soapRequestXML);
response.soapResponseElement = snd_eb_util.getSoapResponseElement(xml);
})(request, response);
Scripted REST API
Use this script to add a REST endpoint to a Unifi Process. You will need to update the api_name to be the same as the one you set in the Process record.
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
x_snd_eb.ws_console.execute('Request received', function() {
var helper = new x_snd_eb.RestHelper('incident_guide'); // the API name of the Unifi Process
processAttachment(helper.getRequest().getRecord());
helper.processRequest(request, response, 'POST'); // the HTTP method of the resource
});
})(request, response);
By wrapping the code in console, we give context to Activity Log and prevent multiple database updates.
Poll Requests
Bond location and data
This script shows how to find a bond based on an external reference and store some data.
var integration = poll_request.$model.getIntegration();
var bond = new Bond(integration.getConfig());
var external_ref = 'BP-41951';
try {
if (bond.locateReference(integration, '', external_ref, 'external')) {
// found bond ... do your processing here
bond.setData('key', 'abc');
bond.setDataObject('key', {foo: 'bar'});
} else {
throw 'Unable to locate bond for reference "' + external_ref + '"';
}
} catch (e) {
log.error(e);
}