Welcome to the OPA Hub!

Tag Archives: Oracle Policy Automation

Oracle Policy Automation Workshop – Sept 24-27 North America (FINALIZED)

Oracle Policy Automation Workshop – Sept 24-27 North America (FINALIZED)

Things are now starting to fall into place with the Oracle Policy Modelling and Oracle Policy Automation Workshop that I mentioned in an earlier post. So first of all, you can join the class from Ottawa, ON, Edison, NJ, King of Prussia, PA and iMVP (live virtual). All are of course welcome. The main base will be Ottawa, ON. If you choose one of the locations above you will be in a high-tech training center with lots of cameras and things – unless you choose live virtual of course in which case you could be in your office or your living room eating donuts and wearing pyjamas.

The last few events we have organized have been a great success and well-received by the students, and we are very thankful for that. We think that the combination of Oracle Policy Automation, Oracle Siebel CRM and Oracle Sales / Oracle Service Cloud experience in one trainer generally means people can ask any question they can think of and we can help them find an answer!

The course outline is now completely ready and you can get all the details by reading the details on the OPA Hub Website Calendar here or directly on the training venue website here. If you are not on the North America East Coast, then please get in touch as we are gradually working on our calendar for West Coast, and Europe / Asia Pacific.

We look forward to seeing you and your colleagues on this or one of our future Oracle Policy Modelling and Oracle Policy Automation Workshops somewhere in the world. If Siebel is more your thing, you will be interested to know we have just launched our Siebel 2018 workshops, over on the Siebel Hub Website – find out more on their calendar.

 

Oracle Policy Automation at Oracle OpenWorld 2018

Oracle Policy Automation at Oracle OpenWorld 2018

Oracle OpenWorld 2018As we rush into the part of the year that is known, depending on your preoccupation and industry either as “Back to School” or “Back to Project”, it is also timely to think about Oracle OpenWorld 2018, the massive technology conference that has successfully reinvented itself at least three times and is now a vibrant, exciting and fun place to be for a couple of days in October. This year, as always, Oracle Policy Automation will be showcased with some interesting Customer stories. So far the detailed session list is not quite complete, but there are already two exciting sessions that you will not want to miss. I’ll add them to the OPA Hub Calendar when I get the dates.

Oracle Policy Automation: Changing the Sales and Services Landscape [CAS2349]

With the ever-evolving technology and business landscape, Westpac needed to deliver a seamless, cross-channel, consistent customer experience. Westpac faced challenges such as constantly changing legislative requirements, multiple conversation models based on customer/product/brands, tight timelines, lack of agility, and expensive roll-out. In this session learn how Oracle Policy Automation proved the needed solution that caters to complex rules, policies, and regulatory compliance requirements in real time with an intuitive user interface. These pain points were addressed by integrating Oracle Policy Automation with CRMs such as Oracle’s Siebel and PeopleSoft, and other back-end applications, consolidating conversations and making them brand agnostic.

Autonomous Cloud Platform: Cloud Platform (PaaS)
Real Stories, Real Customers: See Featured Customers
Sessions By Topic: Legacy Application Upgrades and New Features
Intelligent Cloud Applications: Customer Experience (Sales, Marketing, Service)
Session Type: Customer Case Study Session

SPEAKERS : Aaron Webb, Application Services Manager CRM, Westpac, Ashish Goyal, Principal Consultant, Infosys Australia

Using Oracle Cloud Applications to Augment On-Premises Applications [CAS3942]

Legal Aid Ontario (LAO) was challenged to provide knowledge and policy direction to call center agents from disparate knowledge sources. LAO needed to consolidate its know-how into a single repository and use information from Oracle’s PeopleSoft case management support guides and other platforms to automate the search for relevant knowledge. LAO chose Oracle Service Cloud and Oracle Policy Automation. This provided consistent answers and policy guidance to internal and external constituents with multichannel capabilities. Oracle Policy Automation provides the ability to standardize policy decisions and eligibility, and provide an audit trail of decisions and what-if analysis. In this session learn about the challenges and benefits of this solution.

Real Stories, Real Customers: See Featured Customers
Sessions By Role: Apps IT
Your Cloud Transformation Roadmap: Building: Extend Data and Applications
Intelligent Cloud Applications: Customer Experience (Sales, Marketing, Service), PeopleSoft
Session Type: Customer Case Study Session
SPEAKERS :  Karl Martineau, CIO, Legal Aid Ontario

I hope to see lots of friends and customers in San Francisco for Oracle OpenWorld 2018.

Oracle Policy Automation Workshop – Sept 24-27 North America

Oracle Policy Automation Workshop – Sept 24-27 North America

I’m pleased to let you know we are going to be running another Oracle Policy Automation Workshop in September. Thanks to the wonderful Multimedia Video Presence technology, although we plan to run it in either Toronto or Ottawa (depending on the balance of attendees), you can also join from a number of locations in Canada and the United States!

Get in touch using the Contact form or LinkedIn and we can share with you the complete list of locations and the pricing for this event.

Duration and Content

Oracle Policy Automation WorkshopThis is a four day hands-on Workshop which covers all you need to know to be productive in Oracle Policy Modelling and Oracle Policy Automation. The workshop content is available for download on our Oracle Policy Automation Workshop page, and covers all the practical aspects of Oracle Policy Automation and Modelling (including teamwork, collaboration, Hub management and interfaces).

Of course, these workshops are also driven to some extent by the attendees, so you are welcome to ask anything about Oracle Policy Automation, Oracle Siebel CRM, Oracle Service Cloud or Oracle Sales Cloud if we can fit it in, we can discuss

it.

Materials

As well as the PDF slide content, everyone who attends will get a copy of Getting Started with Oracle Policy Automation.

This workshop is one in a set of workshops that we deliver all year round:

We also, as co-founders of the Siebel Hub website, design and deliver a variety of Siebel-specific workshops which you can find out about over there.

Delivery Language

This particular Oracle Policy Automation Workshop will be delivered in the English language. If you are looking for la version française, parlons-en!

Oracle Policy Automation and Siebel

Oracle Policy Automation and Siebel

My co-writers over on the Siebel Hub participated in a recent successful online event with OnTheMove Software, who provide mobilty solutions for Siebel and other CRM systems. They are good friends of the Siebel and OPA Hub Websites, and it was a pleasure to take part in their popular event. You may recall last year’s event.

Although the subject of the day was very much Siebel, The OPA Hub Website was able to deliver a presentation about the ability of Oracle Policy Automation to “fill some gaps” left by Siebel. To be more specific, Siebel 2018 has recently been released and is a fantastic, elastic modern application with a fully Cloud-aware architecture. All the old legacy artefacts (files like the compiled SRF, web templates and so on) have been removed and the proprietary elements of the architecture replaced with more modern, open-source, cloud-friendly elements.

But the development tools are, at the moment, not keeping pace with this move to the Cloud. And as the Cloud is perceived as more accessible, more friendly (more fun!), the users and developers in the Cloud have a hard time keeping up with the need to provide modern platforms for developing, deploying and using the CRM.

That’s where Oracle Policy Automation steps in. With it’s incredibly easy, business-friendly natural language approach to putting business policy online and available to any application, with it’s drag and drop no-code user interface, with it’s built-in BI Publisher, with it’s agnostic approach to data model integration – Oracle Policy Automation is the solution. When I meet Siebel customers shaking their head at their thousands of lines of eScript code, when I see them wondering how to accelerate these aspects of development, make them more accessible and more efficient all at the same time, I just want to shout out “Oracle Policy Automation”.

Unusually for me, this presentation also manages to squeeze in three quotes from William Shakespeare. So if you are interested in how Oracle Policy Automation can help accelerate your Siebel CRM deployments, just watch this video.

Thanks as always to David at OnTheMove for his impeccable organisational skills.

OPA Hub - Deployment REST API VB Debug 1

Deployment REST API : Uploading Zip Files #2

Deployment REST API : Uploading Zip Files #2

Following on from the previous post, we are now in a position to begin putting together the different elements and actually working out how to use the Deployment REST API to upload a Zip File programatically. As I have said on many occasions I’m most definitely not a coder, but I like to explore and often it helps me in my day job : if I can piece together a plan and show that it works, other more intelligent people can get behind it. All of that means that any code I share (and you are welcome to post a comment and I will forward it to you) is strictly for entertainment and educational purposes only.

Back to our challenge, and here is our strategy.

  1. Ask the user for a Zip File
  2. Base64 encode the Zip File
  3. Use the Authentication mechanism from last time, log the user in to the Oracle Policy Automation Hub
  4. POST the request
  5. Observe the Response in the Oracle Policy Automation Hub and in our code
  6. Debug any issues

Building the Solution

The only thing to remember is that you need a snapshot file from the Deployment page, but even I know how to display a Windows Dialog and grab the file name.

OPA Hub - Deployment REST API Get File

2. Base64 encode the Zip File, as we mentioned in the previous post.

3. Use the authentication mechanism as we did in the original post. If you are struggling with the concepts behind it, read the section about debugging further on in this article.

4. POST the Request. Nothing much to see here, except the need to instantiate all the different elements of your Visual Basic Class before you serialize the whole thing into JSON. In the image below, I’m using the Classes generated in JSONUtils and building my structure before serializing it into JSON.

OPA Hub - Dep;loyment REST API example code

The actual POST comes from the Stack Exchange code I linked to in the previous article, with a few minor modifications.

OPA Hub - Deployment REST API POST Request

5. Observing the response is pretty easy, since you should now have a new Deployment in your Oracle Policy Automation Hub. Can you guess which ones in the screenshot below came from my code?

OPA Hub - Deployment REST API Result

6. Debugging

Of course, this is going to be the place where you might spend a lot of time. And of course, the Visual Studio debugger is your friend. But part of the challenge is the lack of detail. For example, it’s good to know you have a 409 Error, or a 400 Error. But what the heck does it mean. This is where your toolset will come in very handy.

a. Use SOAP UI

SOAP UI can be used to make and debug REST API calls. The process is a little different to the SOAP calls of the past, and it is important to note that you will need to create an Authentication Profile with your Oracle Policy Automation integration user account, and check that you have a valid token before you begin. If you are new to this, the OPA Hub Website has some good news for you. In our series of articles about Web Services and integrating with other applications, we videoed a typical scenario of using SOAP UI for deployment REST API calls. Scroll down to the video labelled “REST API Services”.

b. Grab your base64

Using your Visual Studio debugger and the variable content viewer for example, grab the encoded Zip File from your session:

OPA Hub - Deployment REST API VB Debug 1

Then paste it into a REST request in SOAP UI that has a valid token, and observe the response. Way more useful and a good guide to coding your error handling in Visual Studio.

OPA Hub - Deployment REST API SOAP UI Debug 1

So what about a self-congratulatory video to finish. If you want the code, just leave a comment and I will happily provide it to you.

OPA Quizzes : Helping you learn Oracle Policy Automation

OPA Quizzes : Helping you learn Oracle Policy Automation

We are always looking for ways to help you learn Oracle Policy Automation, so that’s why  we came up with our OPA Quizzes.

Whether it is for your next interview, or even as a preparation for your upcoming certification examination if you are planning on taking one, we hope that our range of free quizzes can help you get ready. If you are not familiar with the examination find out about it here  OPA Quizzes

In any case we hope that you enjoy them and have fun with them. Share them with your friends as you learn Oracle Policy Automation.

And while you are at it, reward yourself with a mug from the Shop. Maybe we will give away a few mugs at the end of the year to the Leaderboard Winners.

Yes, that’s a nice idea and this time we are organised enough to do it.

At the following page you will find all the OPA Quizzes and the links to the OPA Quiz Leaderboards. Check your results against the top scores and enjoy the stress of answering questions against the clock.

We recently began the process of building another’s two sets of questions so stay tuned and watch out for them in the coming weeks. In the meantime keeping smiling and have a good day!

What’s New in Oracle Policy Automation 18B #2 Relationship Control Extensions

What’s New in Oracle Policy Automation 18B #2

The main thrust of this post first came into my head when I was writing one of the recent Back to Basics posts about Relationships. And as if by magic, Oracle Policy Automation went ahead and improved the product with something I felt was lacking. I should ruminate more often, perhaps they have telepathic powers over there. So in this post, What’s New in Oracle Policy Automation 18B #2, we are going to look at the new feature of the Control Extensions : the ability to customise the Relationship experience.

What’s New in Oracle Policy Automation 18B #2

The relationship above is a good example. In the course of a prototype, I designed the car and the passenger entities for a car-sharing enterprise. A car can have many potential passengers. For each journey, however, your passenger can only be in one car at a time. And yes, I understand that I could build a many-to-many and intersection the car and passengers or infer the current passengers or what have you, but this is just an example.

What’s New in Oracle Policy Automation 18B #2

So in the above example, you can see that I am in the process of selecting the passengers for each car. Putting aside the discussion about how best to model the data, there is a challenge here. The checkbox (which is the only display offered) is fine, but due to the lack of dynamism (?) in the display, the choices remain static. I mean by that you are able to choose an incoherent selection, with the same passenger being in multiple cars.

Of course, when you do so, the engine (correctly) gives you an error and you must correct your data entry. But what if we did it another way?

The core of this is the fact that now, in Oracle Policy Automation 18B, you can use the following in your Extensions:

control.getControlType() – which now will return “OneToMany” or “ManyToMany” and so forth for relationship controls. So your code could adapt the User Experience based on the cardinality.

control.getOptions() – returns an array of the different choices for the user ( the passengers in my case above). So you can retrieve the list of choices.

To help manage this kind of extension, control.getValue() returns an array of the selected values for your relationship (the instances that have been selected). So you can examine the selected values.

Let’s look at this code. It is, as always provided for educational and entertainment purposes (indeed, many will find my stream of consciousness code amusing). It is also available on the OPA Hub Website Shop page as a free PDF download. So let’s see What’s New in Oracle Policy Automation 18B #2 : Relationship Controls with an example.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*
(c) 2018 Richard Napier The OPA Hub Website May 2018
Educational Example of Relationship Input Controls
I will remember this is for demonstration and educational purposes only
 */
 
OraclePolicyAutomation.AddExtension({
	customInput: function (control, interview) {
		if (control.getProperty("name") == "xPassengerSelect") {
			return {
				mount: function (el) {
					//console.log("Control " + control.getProperty("name") + " is a " + control.getDataType() + ", originally a " + control.getControlType());
					var myValues = [];
					//Previous values
					myValues = control.getValue();
					var myOptions = control.getOptions();
					//console.log("Obtained list of instances for control " + control.id);
					var myDropDown = document.createElement('select');
					myDropDown.setAttribute('id', control.instance.toString());
					myDropDown.setAttribute('data-instance', control.instance.toString());
					myDropDown.setAttribute('data-entity', control.entity.toString());
					myDropDown.setAttribute('multiple', 'true');
					for (j = 0; j < myOptions.length; j++) {
						var myoption = new Option(myOptions[j].text, myOptions[j].value)
							myoption.setAttribute("data-instance", control.instance.toString());
						myoption.setAttribute("data-entity", control.entity.toString());
						myDropDown.options.add(myoption)
						//console.log("Added list option " + myOptions[j].text);
					}
					for (i = 0; i < myDropDown.length; i++) {
						currentOption = myDropDown[i];
 
						if (myValues.indexOf(currentOption.value) != -1) {
							$("select [data-instance='" + myDropDown.getAttribute('data-instance') + "']").filter("option[value='" + currentOption.value + "']").attr("selected", "selected");
						}
 
					}
					$(myDropDown).change(function () {
 
						//New Values Selected
 
						for (i = 0; i < myDropDown.length; i++) {
							currentOption = myDropDown[i];
 
							if (currentOption.selected == true) {
								myValues.push(currentOption.value);
 
								//Disable All Values Matching Selected in other instances
								$("select [data-instance!='" + myDropDown.getAttribute('data-instance') + "']").filter("option[value='" + currentOption.value + "']").attr("disabled", "true")
 
							} 
 
						}
					});
					var deselectbutton = document.createElement("button");
					deselectbutton.setAttribute("type", "button");
					deselectbutton.setAttribute('data-instance', control.instance.toString());
					var deselectbuttontext = document.createTextNode("Deselect All");
					deselectbutton.appendChild(deselectbuttontext);
 
					el.appendChild(myDropDown);
					$(myDropDown).after(deselectbutton);
 
					$(deselectbutton).click(
 
						function () {
						$("select [data-instance='" + this.getAttribute('data-instance') + "']").filter(":selected").prop("selected", false);
						control.setValue("");
							$("select [data-instance!='" + this.getAttribute('data-instance') + "']").attr("disabled", false);
					});
 
					for (i = 0; i < myDropDown.length; i++) {
						currentOption = myDropDown[i];
 
						if (myValues.indexOf(currentOption.value) != -1) {
							$("select [data-instance='" + myDropDown.getAttribute('data-instance') + "']").filter("option[value='" + currentOption.value + "']").attr("selected", "selected")
 
						}
 
					}
				},
				update: function (el) {},
				unmount: function (el) {}
			}
		}
	}
});

So what are we looking at. There are probably four key areas in this rough prototype.

Lines 18 to 27 build a multiple-select drop-down instead of the check-boxes. Using HTML 5 data attributes, each option and each drop-down (there will be  drop-downs, one for each of the car ) is tagged with the instance name and the entity name. This is useful if you intend to have a page with lots of entity-related things on it , and it was useful in the Entity Collect example from a few weeks ago as well.

Lines  29 to 33 look through the existing values of the Control (maybe the user has already been working on this page, and has now come back to it for further editing) and selects programatically all those values that were chosen previously. Otherwise when you click the Next button and then the Previous button, you will no longer “see” your selections even though they actually have been selected.

Lines 38 to 58 handle the Change event if the user selects other items in the multi-select, and ensures that the corresponding items are deactivated in the other drop-downs.

Lines 58 to 78 create the Deselect All button for each drop-down, which removes all the selected items both from the drop-down and from the underlying control values, and re-enables the values in the other drop-downs.

Once again, I state for the record that this was just a “stream of consciousness” which became a bare-bones prototype. There are lots of holes in the code, and lots of repetition because I just wrote it in a single shot. So you have been warned.

It does, however, demonstrate the new functionality, so our post title What’s New in Oracle Policy Automation 18B #2 is fulfilled. This is something you could not really do in previous versions.


Have fun!

Custom Entity Container with JavaScript Extensions Revisited

Custom Entity Container with JavaScript Extensions Revisited

Assiduous readers will recall that we followed a series of adventures in Entity Container extension some time ago, from a basic tool that worked only in Debug Mode to a more interesting and robust concept that worked once deployed. For reference those Custom Entity Container with JavaScript Extensions articles can be found in the following links

So why come back to this example? For several reasons it seems appropriate to talk again about Custom Entity Container with JavaScript Extensions. Firstly, it is something that is often coming up in classes or on customer sites. So, subjectively I want to talk about it. Secondly, it is a great way of learning the ins and outs of the JavaScript extensions in general.

Yesterday, I was mad

I noticed that the PDF generator I had used for the third (and most interesting and useful example) had pretty much destroyed part of the file : specifically a couple of lines were duplicated and others were truncated. So it is time to revisit this, if only to correct the errors (I have uploaded a more up-to-date file, so that some of the errors have gone).

So let’s set the scene first. We want to display some entity instances. These are generated in my case by an Excel Spreadsheet. They contain one entity, the insult and this entity has three attributes : an Id number, the text of the insult and an insult level – a numeric categorisation of the insult. The higher the number, the more severe the insult. The insults themselves come from Tintin, or more precisely Captain Haddock.

There are no conditions in this Excel file, so the instances are created. There are 240, so we need a good display of our instances. The default display is too long, with no useful scroll bar. We want to replace this with jsGrid, a lightweight jQuery grid. We want something that replaces the style on the left with the style on the right:

Custom Entity Container with JavaScript Extensions Revisited

We would like

  • A grid format using little space
  • A scroll bar
  • A pagination control

The visual elements will be provided by jsGrid, a lightweight JavaScript control. We are also going to set the bar a little higher than last time. We want to have a dynamic filter of the grid, so that the user can view what they want (and not always have the 240 instances on the grid).

Custom Entity Container with JavaScript Extensions Revisited 2

Note: we must tread very carefully here. We must not change the business logic in any way. We must separate the concerns and provide purely UX elements in our JavaScript extension. But given this is inferred data, I think a little filtering is fine, as long as the underlying relationship is not tampered with.

The code would be based on the standard template, so I will simply put it here, in all of it’s quickly-strung together glory, so that you can read it, learn about it, clean it and make it industrial. As I always like to make clear, anything I post here is strictly not-ready, big-picture, here’s-an-idea for you to look at and make your own. This Custom Entity Container with JavaScript Extensions example is available on the OPA Hub Shop for download, as usual. It is listed as example #3 of Custom Entity Container.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/**
* Richard Napier The OPA Hub Website April 2018
* Educational Example of Custom EntityContainer Extension
* I will remember this is for demonstration and educational purposes only
*/
OraclePolicyAutomation.AddExtension({
customEntityContainer: function (control, interview) {
//console.log("Get Array Reference");
if (control.getProperty("name") == "xEntity") {
var entities = interview._session.config.data;
var entityId = "entitypublicname";
var entity;
for (= 0; i < entities.length; i++) {
entity = entities[i];
if (entity.entityId === entityId) {
break;
}
}
return {
mount: function (el) {
//console.log("Beginning customEntityContainer jsGrid");
var myDiv = document.createElement("div");
myDiv.setAttribute("id", "mySpecialDIV");
//console.log("Styled customEntityContainer");
el.appendChild(myDiv);
var myFlatList = [];
var myObject;
for (= 0; i < entity.instances.length; i++) {
myObject = new Object();
myObject.insult = entity.instances[i].attributes[0].value.toString();
myObject.insult_text = entity.instances[i].attributes[1].value.toString();
myObject.insult_score = entity.instances[i].attributes[2].value.toString();
myFlatList.push(myObject);
//console.log(" Flattened the list - item " + i);
}
$("#mySpecialDIV").jsGrid({
width: "80%",
height: "400px",
sorting: true,
paging: true,
pagelndex: 1,
pageSize: 10,
pageButtonCount: 10,
data: myFlatList,
fields: [{
name: "insult",
type: "text",
width: 20,
title: "id"
}, {
name: "insult_text",
type: "text",
width: 150,
title: "text"
}, {
name: "insult_score",
type: "number",
width: 20,
title: "score"
}
],
controller: {
loadData: function (filter) {
return $.grep(myFlatList, function (item) {
return item.insult_score === filter.insult_score
})
}
}
});
//console.log("Finished customEntityContainer");
},
update: function (el) {
var myslidervalue = $("[role*='slider']").attr("aria-valuetext");
$("#mySpecialDIV").jsGrid("search", {
insult_score: myslidervalue
}).done(function () {
//console.log("filtering completed with slider value " + myslidervalue);
});
},
unmount: function (el) {
var myDiv = $("#mySpecialDIV");
myDiv.remove();
//console.log(" Removed the customEntityContainer ");
}
}
}
}
});

So now let’s look at the key elements (don’t forget to download and place jQuery and jsGrid files into your resources folder) :

Line 11 – this should be replaced with the name of your entity (not the text, but the name or XML tag as some call it). We are going to search amongst the entities until we find yours.

Lines 30 to 35 –  the code extracts your entity and pulls out three attributes from the entity. Note of course that these three attributes need to be placed in your Interview Screen, inside the Entity Container, for this data to be available. Essentially the extracted information is made into a JavaScript object, and the object added to an array.

Line 38 – this is the start of the jsGrid code.

Line 47 – this is the definition of the three columns of data in the table and how to display them.

Line 66 – this is the custom filter function which will hide any instances that do not have the selected score.

Line 77 – this is where we obtain the value of the slider and we refresh the table to only show those records using the filter function.

Thanks to the Madrid crew for their suggestions. In the next few days we will look at another Custom Entity Container with JavaScript Extensions example, this time with a dynamic chart using the same principle. Please note as usual that for best results when debugging, use Ctrl+F5 to debug in a decent browser.

Oracle Policy Automation and Siebel Innovation Pack 16 #6

Oracle Policy Automation and Siebel Innovation Pack 16 #6

Oracle Policy Automation and Siebel Innovation Pack 16The final post in this series looks at some of the “extras” that facilitate the integration of Oracle Policy Automation and Siebel Innovation Pack 16. By “extras” I mean other Web Services provided by Oracle Policy Automation, which will need to be taken into consideration when designing how these two applications can best work together but that are not directly related to the subject of getting the two applications to integrate using Applets, Integration Components, Workflow Processes and so on. Some of the content that follows is license-dependent, but should be of interest to any Oracle Policy Automation person.

Overview

Given that there are a number of different services to review, this post therefore is necessarily a mixture of many things. To summarise, there are

  • Administrative Services : The REST API of Oracle Policy Automation allows the creation of users of all the main types (integration users as well as normal ones) and also for the automation of deployment, and retrieval of associated information.
  • Execution Services : Assess, Interview and Answer (and the Server service, although it does not really need to be covered here).
  • Batch Execution Service : The REST API for Batch Execution allows for batched execution of goal determination

Together these are referred to as the Determinations API. The API is version specific in the sense that features are constantly being added (for example, integration user management is new to release 18A) so make sure you are using the correct WSDL file. For specific Oracle Policy Automation rulebases you can download the WSDL easily and that is shown in the videos below.

Assess Service

The Assess Web Service is probably the most famous service from a Siebel developer perspective, since it allows Siebel Enterprise to call Oracle Policy Automation and obtain an XML response (in the manner of a typical SOAP Web Service). It is often used therefore when no user interface is required.

The above video provides a short overview of how to derive the necessary information from Oracle Policy Automation and to use it in standard Web Service fashion. Developers should note that the post-processing of the Response will most likely occur in a Siebel Workflow Process or Script, in order to parse the response and deal with it.

As such, accessing an Oracle Policy Automation rulebase with Assess can be done very simply indeed. If the Oracle Policy Automation rulebase you are working with has a Connection in it (to Siebel or anything else) then you may also wish to use the Answer Service (see below).

Interview Service

The Interview Web Service was heavily used in the Oracle Policy Automation and Siebel Innovation Pack 15 integration, in order to mimic the behavior of the standard Interview using the Siebel Open UI framework. This Service is best suited to applications needed to provide the Interview User Interface in another technology (a Java application, a Silverlight Client, a Visual Studio application or whatever). It has a number of specifics and developers must manage session control, as the short video below illustrates.

Answer Service

The Answer service is reserved for Projects where there is a Connection object in Oracle Policy Automation, and as such provides a SOAP-based tool to pass data sets to the Project and receive the response. Amongst other things, therefore, it can be used to test the behaviour of an Oracle Policy Automation project when the external application (for example Siebel Enterprise) is not available.

REST API Services

As outlined above, there are in fact two REST API areas of interest : the administrative platform and the Batch Assessment service. Both require OAuth2 authentication and session management.

What’s Left to Do with Oracle Policy Automation and Siebel Innovation Pack 16?

So what is there still to do, for the Siebel Developer who has followed all the different posts and videos in this series? Well of course it is not possible to show everything, so here are the main points that you will now need to finish on your own : but most of them are entirely non-specific to Oracle Policy Automation and Siebel Innovation Pack 16.

There are of course many different things that you might want to do with Oracle Policy Automation and Siebel Innovation Pack 16, so at the OPA Hub Website we are always happy to hear from our readers with comments and questions : all you have to do is post at the bottom of the article. We obviously cannot run your project from here (but if you want us to, just get in touch!)  but you should feel free to contact us with questions, ideas for articles or anything else that is Oracle Policy Automation-related.

As Siebel Developers will know, Siebel Enterprise is now in version 17 and the next big thing, Siebel 18, is expected soon. The good news is that almost all of the steps shown here are completely identical in the newer version, since the changes are architectural rather than functional for the most part. If you come across anything completely different then, again, just let us know. We do plan on providing an update to this post series as and when the Siebel 18 is made generally available.

Finally

The OPA Hub hopes you all enjoyed the different posts in this series. For your bookmarks, here are the other posts in the series:

Oracle Policy Automation Free Quizzes to Prepare or Test Yourself

Oracle Policy Automation Free Quizzes to Prepare or Test Yourself

Oracle Policy Automation Free Quizzes to Prepare or Test YourselfThe OPA Hub Website, alongside the articles, job lists, ecosystem directory and video gallery, also maintains a number of fun, free and interactive quizzes for anyone who works with Oracle Policy Automation. Oracle Policy Automation Free Quizzes to Prepare or Test Yourself can be found on the menu or, read on for more information.

These quizzes are accompanied by a Leaderboard so you can compare your own score to the best in the world. See how high you can get on the leaderboard! Here are some quick links to the different quizzes. They all have a mixture of categories and topics, and are a good mixture of easy, hard and trick questions just to keep you on your toes. To answer the questions you will need to have worked with Oracle Policy Automation and some of the questions might be easier to answer if you are a regular reader of this website, but anyone with experience will be able to make a good job of it.

Join the 286 members of the OPA Hub Website and try one out today.

Oracle Policy Automation Free Quizzes to Prepare or Test Yourself : New Quiz Added

And today is a special day since we have just finished making some updates to the existing quizzes and added another one, which means that today there are six Oracle Policy Automation Free Quizzes to Prepare or Test Yourself which means 60 questions (all different of course) and each quiz of 10 questions is against a time limit as well, so you can really put yourself in the driving seat for your next interview or examination.

Oracle Policy Automation Free Quizzes to Prepare or Test Yourself are just part of the picture of course : we encourage all Oracle Policy Automation consultants to get trained at Oracle University. As of today there are two courses that cover version 12 of Oracle Policy Automation :

  1. Introduction to Oracle Policy Automation (1 day)
  2. Oracle Policy Modelling for Policy Experts (3 days)

To complement these offerings, we have a variety of Oracle Policy Automation workshops available.