Invoking Oracle ACM from a Web Service
Blog: BPM Blog Avio Consulting
Invoking Oracle ACM from a web service call is not difficult but unfortunately is also not well documented. I know … you’re shocked.
To explain this as simply as possible, let’s use a Loan Origination process as a prototypical ACM example to review the high-level steps.
In this 11g process example, we’re invoking ACM from a CRM system via a web service call. The web service will invoke a BPEL process which does the following:
- Creates the initial record in the application database
- Creates the ACM payload object
- Invokes the ACM startCase service
When you first see the request schema for the ACM startCase service, it can be intimidating because of its size. The good news is that the vast majority of this schema is entirely optional.
The unfortunate thing is that a few of the optional elements actually are NOT optional. The following is what you really need:
The caseHeader element only requires one child element, the ecmFolder, which must as least be present — even if it is empty (as shown in this example).
In the data element, the name sub element MUST be the exact name you gave the object in the case definition.
Specifically, in the ACM Case Management object, go to the “Data & Documents” tab and use what is set up under the “Name” column for the ACM Data object:
In the data element, the data sub element should contain a copy of the ACM payload data. I know … the name of this sub element demonstrates an incredible lack of imagination and, at least to me, was a bit confusing since it mirrors the name of its parent element.
In xslt, you should use the XSLT “copy-of” Construct shown here:
The startCase response contains the caseId element which is required for any subsequent case operations you will need to make later in the process.
That’s all folks. It literally is just this easy to invoke an ACM process from a web service call. In upcoming blogs, I’ll discuss other considers that come into play in real life ACM projects as well as BPM and SOA process patterns, software development best practices and development methodologies.