The third part of this series looking at the White Paper integration between Siebel 21 and Intelligent Advisor (20D in this case, monthly release two – but I suppose this could apply to any recent release), is now upon us. In the previous chapters we looked at a quick way to get the metadata services started in part one, however in part two we went full throttle and cleaned out the old versions and went in with the latest Connector API version 12.2.18.
Now in part three we move to what is almost always the most touchy of the elements to the integration, namely the Submit (a.k.a Save) concept. A reminder that in Intelligent Advisor, the Submit portion of the Connector API has really two jobs. The first, of course, is to send whatever has been “mapped outbound” from a Intelligent Advisor Interview back into your application (in this case Siebel CRM 21). The second part, just as important, is to ensure that the reponse from Siebel 21 back to Intelligent Advisor is received correctly, and any attributes that are “mapped inbound, load after submit” are refreshed with the information coming back to the Interview from Siebel 21.
So in the case of a simple scenario, maybe you have mapped “in at start” First Name, Last Name and Job Title both inbound (so they appear in the Interview right at the start. You have also mapped them outbound which means they are sent back to Siebel 21. This allows for the Interview to offer the chance to edit the values, for example, either manually or in a rule document.
Let’s say that you intend to have Siebel 21 send back a perfect response, and in the response you want to add something, for example a confirmation from Siebel that the update went according to plan. In that case, we need to have another attribute (any text attribute will do in this case since we are sending just text) in Intelligent Advisor that is mapped “in after submit”. This atribute will receive the value in the response from Siebel after the user clicks Submit, and then we can display this attribute in the Interview. A video is worth a thousand words:
So, getting this to work in Siebel 21 Workflow is our aim, so that it can be added to the Inbound Web Service definition. This is where, as a personal opinion, I find that the White Paper let’s us down a little – the provided Workflow Process does not actually go through the steps to update Siebel – it just posts a hard-coded “OPA Fan” into the Job Title of a Contact if the request and response mechanism has executed without issue. I find that annoying, and I am often asked by consultants “What’s wrong with my Workflow Process – why is nothing updating in Siebel like I need it to?”. And you can forgive them for asking that question.
Let’s look at the kind of thing I am talking about. Here is the standard, provided Workflow Process with the offending step:
And below is a rudimentary example of what you probably have to do – use a custom Business Service (in this case a simple eScript that extracts the information from the table tag to get the attribute data and place it into a propertyset) to get and reformat the data. Or, as my colleague Alex suggested, if we had the time we could investigate using the Siebel Data Transformation Engine and Data Maps (in fact, could most of the transformations in this Workflow Process be done without custom Business Services? Probably…
The data inside the table tag looks like this:
But it would be much easier to access in Siebel 21 if it looked a bit like this, so we could access the different properties using their names rather than having everything with an identical name.
In the Workflow Process modified and show above, not only are we interested probably in the data but we may have different scenarios embedded in our Interview – perhaps the user can create data as well in Siebel, so we need to handle that in our flow.
Of course, not every integration scenario will need to cope with such a requirement. But my point remains, I believe, a solid one – the Submit Workflow Process in the White Paper Zip teaches you how to provide the correct response to Intelligent Advisor, but don’t forget to code the update in Siebel yourself.
So our edited Update Contact step will now be able to use the Properties and update Siebel appropriately:
During this phase of our little series, we also had several issues (again) with mismatched namespaces in the integration object (load-response) and the import of the Workflow Process from the IP16 Zip needed a lot of checking of process properties,editing of corrupted inputs and outputs and so on. The rest of the time was spent diving back into eScript for the first time in a century and just generally making sure the whole thing held together.
It is only appropriate to remind readers that there is another way to integrate Siebel 21 and Intelligent Advisor, specifically using the Interview Service and HTML static templates in Siebel, but that many important features of the Intelligent Advisor user interface (containers, to name only one really important one) are not supported in that integration, and that in any case the Interview Service is no longer recommended for any new integrations. It uses the CheckAlive and Getmetadata endpoints, but then uses a different approach (and Web Service) to open, manage and display Interview Sessions. Some more information can be found online.
Now we complete our Web Service, clear the cache and we should be good to go:
This article was inspired by the work done by the incredible Phil W and all the others who reached out to intelligent-advisor.com with questions about Siebel 21 and Oracle Intelligent Advisor integration.
Further articles in the same area you might find interesting:
Here is the complete set of articles in this series, for reference:
- Intelligent Advisor and Siebel 21 #6 (Enumerations)
- Inteligent Advisor and Siebel 21 #5 (ExecuteQuery)
- Intelligent Advisor and Siebel 21 #4 (Checkpoints)
- Intelligent Advisor and Siebel 21 #3 (Save)
- Intelligent Advisor and Siebel 21 #2 (Load and Getmetadata, CheckAlive)
- Intelligent Advisor and Siebel 21 #1 (First Steps)