As a developer, the biggest time-saver was its import/export features and versioning. Using template-based process objects and code, I was able to make extremely complex changes with a great deal of success and ease across hundreds of objects, which took minutes, as opposed to having to use the GUI, which would have taken days. The ability to import objects as new versions of existing objects, and the ability to make the prior version the current version aided in development, bug fixes, and deployments.
I used the product to develop a process orchestration “framework” to be used in systems integrations between customer and internal ITSM applications (e.g., primarily for Change Management, CMDB, Incident Management, Problem Management, and Request Management). The framework, which made excellent use of stored procedures, included the following dynamic request-driven features:
- request routing (e.g., ensuring a request from “ACME” gets to its intended recipient)
- request sequencing (e.g., ensuring an update request from “ACME” is held until proof of the insert request from “ACME” has completed, and ensuring requests are processed based on the order they were submitted to the framework, as opposed to the order in which they were received by the framework)
- exception handling (e.g., retrying a step within a particular process, resubmitting requests, timing-out requests, and reporting exceptions back to requesters)
- data validation (e.g., ensuring each request comprised the data needed to ensure the successful delivery of the request)
- data transformations (e.g., data look-ups and data overrides)
- data delivery (e.g., primarily using SOAP and RESTful web services for both synchronous and asynchronous request deliveries and acknowledgements)
- request acknowledgement (e.g., during synchronous request delivery, the framework was capable of producing an acknowledgement request on behalf of the recipient, if one was required)
- relationship maintenance (e.g., the framework supported one-to-one, one-to-many, and many-to-many record relationships between customer and internal ITSM applications)
In order to accomplish all of this, I made use of CA Process Automation objects (e.g., Processes, Start Request Forms, Calendars, Schedules, and Datasets) and operators (e.g., Run JavaScript, Invoke SOAP Method, Execute Process, and Query Database). Using template objects and template code in combination with extremely robust stored procedures and tables, developers were able to release brand new integrations during every two-week development cycle with a very minimal number of defects discovered during testing. At the end of testing, it was proved the product and the framework was capable of serving every design, performance, and support requirement for our day 1 and day 2 operational needs.