Welcome to the OPA Hub!


Guest Post : Object-Oriented Design Patterns and Oracle Policy Automation

Guest Post : Object-Oriented Design Patterns and Oracle Policy Automation

In a previous post by our guest writer Dr Jason Sender, he investigated improvements in Oracle Policy Automation rules by applying some of the principles of refactoring. Hopefully the short examples he gave revealed some of the increases in readability, maintenance and flexibility that you can build into your rules.Now, in the second article in this series, Dr Sender looks at Object-Oriented Design patterns and Oracle Policy Automation. This article draws on the work and publications of Martin Fowler, which we discussed in the previous post, and those of Joshua Kerievsky from his highly regarded book “Refactoring to Patterns”.

Design Patterns

Kerievsky makes two very important observations on design patterns. His first point is that, as he terms a section heading, “There are many ways to implement a pattern.” (Kerievsky, p. 26). This is key to what we shall see in this article, since with Oracle Policy Automation we should be aiming at implementing the core concept of a given design pattern, rather than strictly following the implementation example given in GoF (1995).

Design Patterns: Elements of Reusable Object-Oriented Software is a software engineering book describing software design patterns. It has been influential to the field of software engineering and is regarded as an important source for object-oriented design theory and practice…The authors are often referred to as the Gang of Four (GoF) (Wikipedia).

The second key point that Kerievsky (p. 32) makes is that: “In general, pattern implementations ought to help remove duplicate code, simplify logic, communicate intention, and increase flexibility. However…people’s familiarity with patterns plays a major role in how they perceive patterns-based refactoring.” So we see here both our aims in using design patterns, and a constraint (developer knowledge). Since OPA does not have objects and classes in the same sense as an object-oriented language, we should not expect a straightforward application to OPA.

In this article we will focus on one single pattern, known as the Adapter pattern.

Summary: “Convert the interface of a class into another interface clients expect.
Adapter lets classes work together that couldn’t otherwise because of incompatible interfaces.” (GoF, p. 139)

Let’s look at applying the Adapter pattern to Oracle Policy Automation rules.  At one level, translation is possible; Oracle Policy Automation can translate all its attributes into another language so that the rules can be used once and deployed in multiple languages just by translating the variables, statements, and similar features, while not rewriting the rules. This example from Oracle (2016) demonstrates this:

Guest Post : Object-Oriented Design Patterns and Oracle Policy Automation

As a second example, we can make a variable equal to another variable, or a Boolean true if another Boolean is true. For example:

Guest Post : Object-Oriented Design Patterns and Oracle Policy Automation 2Here we have adapted the ‘the sky is blue’ to ‘the sun is shining’ (but not vice versa) and adapted ‘the value of the car’ to ‘the value of the vehicle’ (but not vice versa). It might be thought that this is pretty simplistic and not all that useful. The following example highlights more complexity, and, instead of simply adapting the interface, as the above examples do, it goes beyond that to override some of the adaptee’s behaviour:

Guest Post : Object-Oriented Design Patterns and Oracle Policy Automation 3

Here we have adapted the interface from ‘the storey of the building’ to two different interfaces, ‘the lift floor’ and ‘the elevator floor’. British lifts start at 0 (or G) and US elevators start on the 1st floor and do not have a 13th floor. So not only have we changed the interface, we have adapted the behaviour. The new variables can be used elsewhere in the policy model in place of the original one.

Object-Oriented Design Patterns and Oracle Policy Automation : Adapter Pattern Summary

The Adapter pattern seems “made for OPA”. When discussing the Adapter pattern the GoF (p. 142) stress that:

“Adapters vary in the amount of work they do…There is a spectrum of possible work, from simple interface conversion – for example, changing the name of operations – to supporting an entirely different set of operations.”

The examples shown in this article illustrated three aspects:

  • The first adapted the language that users would see
  • The second was an example of changing the name of an operation
  • The third supported a different operation but was also an Oracle Policy Automation-specific variant of what the GoF (1995) term “two-way adapters”, since it adapted two variables from one underlying one.

Each of the three examples has different costs and benefits. The language translation tightly couples the adaptee and adapter, while the changing of the name allows for the other variable to change how it is derived without changing the adapter (i.e., a level of indirection).

It is important to note that the one-way variable name change or Boolean name change simply allow a new term to be used, but these might very well be used in more complicated ways in rule tables (for variables) or rules (for a Boolean) where the adaptee’s value equalled the adapter’s value only in certain circumstances. The two-way adapter allowed for a single variable to be used to provide multiple adapters, thus minimizing code duplication.

The Bigger Picture

It’s worth stepping back at this point to understand the broader context.  Computer science is often defined as dealing abstraction, and software engineering as managing complexity, and the connection is that only by considering different parts of programs and systems as abstract concepts are better able to manage complexity.  For example, Oracle Policy Automation is often integrated with other systems that the Oracle Policy Automation  developer does not need to understand, and can think of in the abstract, like the database that Oracle Policy Automation may interact, but which the Oracle Policy Automation developer may not need to know anything about beyond mapping attributes in Oracle Policy Automation.

So abstraction is about ignoring irrelevant details, and this is accomplished by what is often the theme running through many design patterns, which is to: “encapsulate the concept that varies” (GoF, p. 54).  We often obtain abstraction in Oracle Policy Automation by using indirection (interposing an intermediate attribute) to encapsulate the attribute that varies.  This allows us to “Program to an interface, not an implementation“, as the GoF (p. 18) term it, the rationale for which is that the implementation can be changed if other parts of the program only depend on the interface.

Once again, even from a very simple set of examples, it should be clear that Oracle Policy Automation rules will benefit from the targeted application of principles from programming – in this case Object-Oriented Patterns. The best approach is not a slavish application, rather a pragmatic use of those best-suited to the unique nature of the Oracle Policy Automation platform.

For more information about the ideas discussed in this article about Object-Oriented Design Patterns and Oracle Policy Automation, Dr Sender can be reached using his LinkedIn profile, below. Look out for more articles about Object-Oriented Design Patterns and Oracle Policy Automation coming soon!

Getting Started with Oracle Policy Automation 20018 Edition

Snap Poll : Training – 1 Question, 30 Seconds and a Chance to Win

Snap Poll : Training – 1 Question, 30 Seconds and a Chance to Win

As you all know, the OPA Hub Website tries to provide content and services that meet the needs of all of us who are working with Oracle Policy Automation, and probably Oracle Service Cloud or Oracle Siebel CRM on a day-to-day basis. One of the areas we have been looking at with our partners and content providers is the subject of training. We have a number of different training projects in the pipeline. But read on to find out about our Snap Poll : Training – 1 Question, 30 Seconds and a Chance to Win…

Some of the training we already provide has met with good feedback and seems to fill a gap left by the official training provider. However, we are always eager to find out more. That is why this post contains a snap poll : it is so easy to answer the question it will take you all of 30 seconds. You can register your vote using either an anonymous vote or if you use your OPA Hub Website login you will automatically be entered into a draw to receive a free copy of the Getting Started with Oracle Policy Automation 2018 Edition.

Snap Poll : Training - 1 Question, 30 Seconds and a Chance to Win

This book is so new it is not even in the shops yet, I have just received the first copy from the printers so it is fresh as fresh can be. The book can therefore be yours just for entering our Snap Poll : Training – 1 Question, 30 Seconds and a Chance to Win!

Thank you to everyone who takes part in the spirit of sharing your opinion. The data will be reviewed on the OPA Hub and will be completely anonymised. The name of the voters will only be used to ascertain the winner of the free copy of the book!

What kind of advanced OPA training would you be interested in attending?

Oracle Policy Automation / Siebel : Live Classes in Toronto in February

Oracle Policy Automation / Siebel : Live Classes in Toronto in February

I wanted to tell you about the following events that I am hoping to run as in-class sessions in Toronto. Our friends at DesTech Toronto are hosting the following training events in February. I’ll be delivering them both so I would be very happy to see my Canadian colleagues and friends for these training sessions. Here are the details of the Oracle Policy Automation / Siebel : Live Classes in Toronto in February 2018:

Both of these need just a few more enrolments to confirm they will happen. I figure that a live class with a live instructor will be more effective for OPA customers and colleagues, as opposed to a virtual class. I’m happy to chat about OPA, OSVC, Siebel or anything else (ERP, AI, Bots 🙂 )

If you would like to enrol anyone on these courses, please let Patrice Brown pbrown@destech.com know urgently. I’m counting on you to spread the word!

PS : Every student will get a free copy of my Getting Started with Oracle Policy Automation [2018 Edition] with my compliments. That’s a CAD 65 gift for each attendee.

Custom Entity Container JavaScript Extension Example #1

Custom Entity Container JavaScript Extension Example

Note : this JavaScript is destined for use in Debug mode. For a version usable outside of Debug Mode, please continue reading the second part of this series), followed by the final example in part three. You can also watch a quick video of the final example on  our YouTube Channel.

Once again, we look into an educational JavaScript Extension example for Oracle Policy Automation. As usual the example provided is purely intended for learning purposes. It involves a situation that you probably have come across many times. We wish to display a set of inferred entity instances in our Interview. But we are afraid that our set of instances is going to produce a layout that is rather unfriendly. Here is a visual example, taken from a sample project with a simple inferred entity that has only two attributes :

Custom Entity Container JavaScript Extension Example

There are fifty three items in my list. So the Entity Container provides a very long list. Yes, I’m sure I could play around with labels and containers a goodness knows what, in order to make it shorter. But basically, the Entity Container just spawns an elastic list. Which is the opposite of what I want. Instead I would like to see this:

Custom Entity Container JavaScript Extension Example

The above example is a fixed height, and has a scroll bar in order to visualise the content at my leisure. The page is not affected by a very long list. And that is rather nice, especially if you have a dynamic list of terms and conditions, or something similar. Here is the data model, including the inferred entity, relationship and attributes.

Custom Entity Container JavaScript Extension Example

The Excel spreadsheet is very basic for our example:

Custom Entity Container JavaScript Extension Example

Custom Entity Container JavaScript Extension Example

So now on to the mechanism for displaying the content. This Custom Entity Container JavaScript Extension Example will use a standard JavaScript template based on the Oracle Policy Automation documentation. The code of the mount section is as follows:


Custom Entity Container JavaScript Extension Example

Let’s look at it in detail. There is some interesting stuff in there. Firstly, the basic principle is as usual. On line 8, as before, we reference a custom Property in our Screen that allows us to identify the Entity Container Control on the Screen. Then, in lines 11 to 15 we create a simple DIV and add a scrollbar that will appear if the content is too large to display in the 100 pixel height.

Then we begin a loop in line 17, based on a global variable called data.data[1].instances.  Of course we should create a reference to it, but for the purposes of learning we can leave it as is. This object, whose exact index will change depending on the structure of your Oracle Policy Automation data model, will prove very useful indeed. It is clearly visible in the Debugging Console of the Browser, if you insert a handy break-point:

In the case of my inferred entity instances, this array contains all 53 instances in my Browser. The same array is also visible as a Local variable as well:

Note in the screenshots above, the location of the break-point is not really relevant here : it is just used to stop the JavaScript engine in the middle of mount.

So the ability to access the instances is most useful. The code loops based on the number of instances. We add a child DIV element for each instance, and then access the values of the two attributes to concatenate them into a longer string. Word-wrap is switched on in my screenshot so you can see the whole Custom Entity Container JavaScript Extension Example code.

Finally we add a horizontal rule just to break the list up a bit. Of course there are lots of things we could do here : but we are just building a simple list and don’t really worry about styling the elements in line, which is not good practice of course.

The rest of the code simply gets rid of the element when the unmount section is called.

Custom Entity Container JavaScript Extension Example

This example is interesting since it reveals a little about the inevitable content of our JavaScript extension. There are probably other ways to get hold of the content of the inferred entity but this is useful for educational purposes.


But as you have no doubt seen, the code example here will only work with the Debugger. It has it’s usefulness of course, to be able to understand that the content is structured in a certain way. But what about after Debug? That’s what’s coming next.

As always the code is available for free download from the OPA Hub Shop. Look for Custom Entity Container JavaScript Extension Example in the product list.

Whats New in Oracle Policy Automation November 2017 #1

Whats New in Oracle Policy Automation November 2017 #1

With the regularity of a Swiss watch, the Oracle Policy Automation team have released the latest and greatest version of their flagship natural language business rules and automated decision tool : and as usual it is packed with lots of new things for us to get excited about. Here are just a few of the key points that are in the list this time, along with some examples. Let’s look at whats new in Oracle Policy Automation November 2017, this is part one of a multi-part post.

Load During an Interview (conditionally)

One of the commonest requirements that seems to show up regularly is the need to load, for example, reference data during an interview. And for Public Cloud users, the ability to do just that is now built into the Service Cloud Connection. Let’s look at a very simple example. Suppose that you want to load some product information, depending on some criteria such as the dates of the last few purchases. What you absolutely don’t want to do is load the entire product hierarchy. Just the parts you want relative to your customer scenario : perhaps a customer logging in to the portal.

If you look carefully at the attached image above, you will notice that there is now, on the left hand side, the possibility to add a “New Unrelated Mapping”. I have already added one, based on Product. I can select an unrelated object from Service Cloud and map it into my Oracle Policy Automation November 2017 Project. Although this is delivered as out of the box functionality for the Oracle Policy Automation Cloud Service, it is in theory possible to deliver the same functionality for any Connection, provided you use the newest WSDL (which is referenced here in the documentation).

Filtering the Data Load

Furthermore, the data load can include the equivalent of an SQL where clause. In the Entity Properties, you now have access to a filtering feature.

The filter can use any field from the underlying table, even if it is not mapped inbound in Oracle Policy Modelling in your Project. The syntax is similar to the natural language of OPA. Notice also, you can limit the number of records retrieved.

This is a very exciting feature that has been requested for a long time. Outside of Service Cloud, Siebel CRM for example with it’s incredibly rich data model, this allows for considerable optimisation of data transfer to Oracle Policy Automation. In the next post in this series we will see some new functions relating to default values, which are going to be a terrific time saver!

Getting Started with Oracle Service Cloud Second Edition

Getting Started with Oracle Service Cloud Second Edition

The second edition is here! Helped by some comments from the community (see this conversation in the comments of a previous post), I am very pleased to announce the availability of the second edition of Getting Started with Oracle Service Cloud. A couple of new chapters have been added, and best of all, over fifty exam-style questions have been added to help you prepare for an exam, or an interview or any sort of challenge you might be facing. The answers are available on the publisher’s website (P8 Tech).

The exam layout is as follows, and the Getting Started with Oracle Service Cloud Second Edition chapters are shown alongside for reference purposes. We are going to be adding another 40 or so questions to our online Quiz section, to round out the whole experience.

The book is available now in both paper and electronic formats, from a variety of online and physical vendors. Just go to the publisher’s website and find the easiest way for you to get hold of it.

Here is the list of topics from the Oracle Service Cloud Implementation Essentials exam, and the relevant chapters.

Exam Topic Book Chapter & Comments
Create and implement Workspaces Chapter 4
Create and implement Navigation Sets Chapter 5
Create Customizable Menus Chapter 4
Create Agent Workflows Chapter 11
Create Agent scripts within the Scripts Explorer Chapter 12
Create Profiles Chapter 5
Create Staff Accounts Chapter 4
Describe Password configurations and their functions Chapter 3 and elsewhere
Describe typical answer management components and usage Chapter 9
Manage Search Priority Words Chapter 15
Create and manage Word List Files and the Dictionary Chapter 15
Create and manage Access Levels Chapter 4 & 5
Describe Custom Fields and their usage Chapter 18
Create Business Rules Chapter 10
Explain Standard Text and its application Chapter 8
Explain Service Variables and their application Chapter 6
Create and manage Service Level Agreements Chapter 10
Configure Cloud Monitor Not Service Cloud-specific
Configure Custom Objects Chapter 18
Describe incident management Chapter 8
Manage Message Bases Chapter 3
Manage the System Configuration settings Many Chapters
Explain Mailboxes and their usage Chapter 14
Configure Message Templates and System Interface configurations Chapter 14, Chapter 16
Explain Product, Category, and Disposition usage Chapter 8
Create and manage Guided Assistance and its application Chapter 13
Explain the File Menu and CX options features and their usage Chapter 2
Create and configure Custom Reports Chapter 17
Create and manage Scheduled Reports Chapter 17
Create and manage Surveys and Mailings Chapter 14
Create and manage Chat configurations and rules Chapter 16
Create and manage Co-Browse configurations Chapter 7
Customize and manage Templates, Pages, and Themes Chapter 6, Chapter 7
Describe Customer Portal deployment protocols Chapter 6
Customize and manage Tags, Widgets, and Assets Chapter 6


Refactoring in Oracle Policy Automation #1

Refactoring in Oracle Policy Automation #1

The OPA Hub Website is extremely happy and very lucky to be able to welcome an esteemed guest author, Dr Jason Sender. Over the course of several months I have had the pleasure of reading Dr Sender’s work and conversing with him. His dissertation, entitled “The Application of Design Patterns to Oracle Policy Automation”, is a fascinating read and after due discussion with him, he has kindly agreed that parts of it might be republished here for the wider community; specifically in this article, an introduction to his excellent work on Refactoring in Oracle Policy Automation.

Dr Sender, of the University of Oxford, was Rules Architect for nearly four years on the most complex Rulebase used by the Legal Aid Agency in the United Kingdom, which is used to determine capital and income eligibility of applicants.

In this, the first of a series of posts, he looks at Refactoring Techniques based on Martin Fowler’s work and applies them to Oracle Policy Automation where appropriate. To simply state the goal of such an exercise, it can do no harm to state the goal of the book I just linked to:

“Refactoring is a controlled technique for improving the design of an existing code base. Its essence is applying a series of small behavior-preserving transformations, each of which “too small to be worth doing”. However the cumulative effect of each of these transformations is quite significant. “

How to Apply Object-Oriented Design Patterns to OPA?

At a broader level, it is possible to apply design patterns from Object-Oriented Design Patterns to OPA. Since OPA does not have objects and classes in the same sense as an object-oriented language, we should not expect a straightforward application to OPA. Not all of the patterns will be technically applicable, and even some of those will be unfeasible or without any great impact. Dr Sender’s work discusses the application of the eight most common patterns. If you would like to read further on this matter, please feel free to contact Jason using the information at the end of this article.

Improving your design Approach to OPA Rulebases

Object-Oriented languages come equipped with advanced development environments and a plethora of automation tools to help the refactoring effort. Oracle Policy Automation uses Microsoft Word and Excel, and is classified as a Production Rules System rather than a fully-fledged object-oriented language. As Fowler states (since it is particularly relevant to our daily lives as Oracle Policy Automation Consultants or Architects):

“There are also many languages where you don’t have tools, so knowing how to do it yourself is still important.”

The Application of Object-Oriented Refactoring in Oracle Policy Automation

This introductory article will focus on simple refactoring techniques that everyone can adopt, and which bring clarity and maintainability to Oracle Policy Automation rules. In a later article, Dr Sender will reveal OPA-specific refactoring techniques that were discovered during the course of his work.

Extract Variable Rule

Extract Variable Rule is a more meaningful OPA rebranding of Fowler’s Extract Method, since OPA does not have Methods. Have you ever seen something like this in an Oracle Policy Automation Word document?

Refactoring in Oracle Policy Automation - Extract

By applying the Extract Method: “You have a code fragment that can be grouped together. Turn the fragment into a method whose name explains the purpose of the method.” we find ourselves with a revised version that looks a little like the example below.

Refactoring in Oracle Policy Automation - Extract Example Complete

The gain in readability and ease of maintenance should be obvious. Now that Dr Sender has gotten us on the right track, let’s take a couple more examples from his work. These revolve around the removal of conditional expressions from Microsoft Word or Microsoft Excel tables.

Extract Rules from Rule Table

Extract Rules from Rule Table is a more meaningful OPA rebranding of Fowler’s Decompose Conditional Method. Consider the following table, where conditions and premises meet convoluted conclusions:

Refactoring in Oracle Policy Automation - Decompose Conditional

Now, here is the table, following an OPA-esque application of the Decompose Conditional refactoring technique, for situations where (according to Fowler):

You have a complicated conditional (if-then-else) statement. Extract methods from the condition, then part, and else parts.

Refactoring in Oracle Policy Automation - Decompose Conditional Complete

The aim of Extract Rules from Rule Table is to reduce code duplication and/or duplicated conclusion values.  It should be noted that it can add a level of indirection (i.e., flexibility) too, but its main use would be to extract duplicated rules from a complicated Word rule table, not, as in the example above, to extract only the conditions and conclusions of a single row, which arguably would add indirection at the cost of more code, unneeded flexibility, and complexity.

We would look to refactor to simplify code and increase clarity – if they do not do so in a given situation then they are probably not needed in that situation.

It’s worth restating the above in terms of goals.  One must understand one’s goals before applying a refactoring technique, and not every refactoring technique will be appropriate in every situation, and indeed many refactoring techniques are inverses of each other.  In certain situations flexibility is needed, even if it creates more code.  For example, instead of hard-coding a value in (e.g., an amount) in twenty different conclusions of a rule table you could set a variable equal to the amount and put the variable in the rule table, as this would add the ‘flexibility’ to change the amount if needed.  We would say it adds a level of indirection – but it does create more lines of code and complexity.

Almost everything is a balancing act and understanding one’s goals is hard, and it’s even harder to then figure out approaches that will help you achieve these goals, and that comes with Oracle Policy Automation experience, and a little help from OPA experts in articles like this one!

Refactoring in Oracle Policy Automation : There’s (Much) More!

Obviously these two simple examples can hope only to briefly demonstrate the value of the hard work that Dr Sender has put in to developing tools and techniques to improve the readability, maintenance and effectiveness of Oracle Policy Automation rules. He can be contacted using the link below should you wish to discuss his work, and he has kindly agreed to let me publish a couple more articles on this subject.

Watch this space for more valuable content on the topic of Refactoring in Oracle Policy Automation. The OPA Hub and Dr Sender are currently working towards the launch of advanced training based on his work. If you are interested, please take a moment to answer the 1 question survey below (if you have not already registered for the OPA Hub you can do that here before you answer) . Thank you!

What kind of advanced OPA training would you be interested in attending?
Emergency Reponse example project translation

The Emergency Response example Project translation and adaptation

The Emergency Response example Project translation and adaptation

A couple weeks ago while discussing the long list of example projects that come with the Oracle Policy Modeller, I decided to adapt and translate the Emergency Response to another language (in this case French). Here is the run down of the work on the Emergency Response example project translation.

The idea behind this post just to give you some feedback on the various issues that I encountered. Many of these will be generic to similar exercises in any language,so will be hopefully of interest to the wider community. There is no belief or assumption that this is an exhaustive list, it’s just somebody trying to give some feedback.

I am totally aware that there is a sophisticated translation functionality within Oracle Policy Automation, but when you’re dealing with a customer who speaks multiple languages, and subject matter experts who do not necessarily speak all the national languages, sometimes the choice of language for your project is not something you can control, so building this demonstration project was a useful tool in communicating with some of my customers about the capabilities of the product.

Note : I long for the day when inside a single project, I can have Word documents, in different languages, using some sort of formatting markup.

Firstly let’s just walk through what the Emergency Response example project translation entails by looking at the original. It has a single Word document with essentially three different Business rules :

  • A stack of Booleans, one each for the different hazard warning signs (present yes/no).
  • A couple of rules to decide whether or not to accept a manually entered address if the localisation in the browser did not work
  • Finally, a rule to concatenate latitude and longitude with a URL from the Google maps static API at .com.au 😉

For the purposes of this exercise I choose to work from a document from the Ministère des Transports, de la Mobilité durable
et de l’Électrification des transports in Canada
 which I was able to download in French. So where did the issues occur?

  1. Obviously since the Booleans we were referring to reference hazard warning signs that were specific to a certain country, it was necessary to either adapt, eliminate, or add further rules to identify each of the classification and sub-classifications of hazardous materials. For the time being though I kept the same structure of the Word document.
  2. Since each of the hazardous materials was linked to a image file to display a image toggle , it was obviously necessary to obtain and reference new additional image files and update the image toggle in the interview.
  3. The interview included static text introducing the concepts and explaining the goal so those needed to be translated.
  4. The rule which concatenated the URL relied upon latitude / longitude being number attributes, formatted with a separator that was a period or dot. This is not the case for many regions. Besides, this demonstration project is constructed in 2013. At that stage the JavaScript extension API was not available. It felt like the creation of a pop-up window with a Google map inside it was counter-productive for a project aiming to showcase a mobile-friendly user interface.
  5. The manual address entry – if browser localisation was not available – needed to be updated to respect the format of an address in the country that I was targeting, notably for the postcodes and states.
  6. Finally the project used one static header image which would need to be replaced since it included English text.

Along the way, while working on this little Emergency Response example project translation a couple of other points came up :

  • The output of the existing version was not, in my humble opinion, very friendly for the rule Developer. I converted it to a set of inferred entity instances which allowed for a more detailed output and potentially some additional information like what to do in the presence of certain chemicals. It also helped create a notion of class of Hazard.
  • The slider to select the number of vehicles was transformed into two image sliders , one for light and the other for heavy vehicles. Cosmetic more than anything.

So the Emergency Response example project translation contained one Word and one Excel document, some more image files, a JavaScript extension and a few small modifications to the actual logic based on the legislation and classifications. If anyone wants a copy of the project I’m happy to share it, just leave a note in the comments.

Have a nice day and watch out for the next one!

Emergency Response example project translation

Select Vehicles

Emergency Response example project translation

Select Hazard Signs

Emergency Response example project translation

New GPS Extension

Emergency Response example project translation

Entity Instances

Introducing Oracle’s intelligent Bots

Introducing Oracle’s intelligent Bots

One of the most interesting sessions that I attended on the first day of Oracle OpenWorld 2017 was, as the title of this post suggests, the introduction to the oBot platform. It’s true that businesses are foaming at the mouth in excitement, anticipating the costs they can cut from next leap “forward”, namely the AI revolution –  which according to various sources will replace all the other channels to become the most common interaction for consumers on the internet, and intelligent bots are part of this “revolution”.

The work that Oracle has done is immensely impressive, since they have really created a process agnostic platform and associated mechanics to let designers build bots without worrying about how it is all working together. Think of it as a set of tools to :

  • build a list of intents (what do people want to achieve )
  • Build the entities
  • Test them with simple Excel inputs
  • Model flows using a very sophisticated State machine
  • Define multiple channels like web, Facebook, iOS and so on for your bots
  • Handle the integration with the transactional systems on the back end

Thus you create a Bot and use it across multiple channels. Critical to a successfully deployed Bot is of course the testing, and the demonstrated testing harness was quite impressive. It also appears that a lot of work has been done to innovate in this space. Whilst most of the demonstrations were clearly early versions, the basic components of the platform appeared to be in place. Some of the mechanics and editing tools were actually part of the Oracle Mobile Cloud service and development tools

Naturally enough this is potentially a really interesting intersect between my two worlds : CX and OPA. There are some fascinating avenues in there. Early days but watch this space. Hopefully there will be the option to test this out on the free trials on the Oracle Cloud.

Bots in OOW17Bots in OOW17 Slide 2Bots in OOW17 Slide 3Bots in OOW17 Slide 3Bots in OOW17 Slide 4Bots in OOW17 Slide 5

Oracle Policy Automation Training – Toronto 25th September

Oracle Policy Automation Training – Toronto 25th September

We are seeking attendees for this training in Toronto Downtown in the week of 25th September 2017. The following training  courses are planned to run on those dates:

Introduction to Oracle Policy Automation (1 day – Monday 25 September)

“This Oracle Policy Automation training introduces you to the skills and tools for capturing, analyzing, publishing and maintaining business policies and regulations. … It is highly recommended for anyone working with Policy Automation, or collaborating with a Policy Automation project team.” (from the Oracle University website). This training is ideal for anyone using Oracle Service Cloud (RightNow), or Oracle Siebel CRM, and who plans to work with Oracle Policy Automation. It gives a great overview of the capabilities and out-of-the-box functionality, making is suitable also for managers and key users who plan to be involved in the project. I am happy to answer any question about Oracle Policy Automation Cloud Service, or On-Premise version.

Oracle Policy Modelling for Policy Experts (3 days – starts Tuesday 26 September)

This Oracle Policy Modelling course is suitable for a wide variety of profiles who will be actively involved in writing and designing rules in Oracle Policy Automation. “This course provides many hands-on exercises with Oracle’s leading policy automation and modeling product. It is highly recommended for anyone working with Policy Modeling, or collaborating with a Policy Automation project team. All team members that complete the course will understand the key concepts and terminology for Policy Automation projects. The course is aimed at a non-technical audience” (from the Oracle University website). Again, this course is suitable for people on stand-alone projects, Oracle Service Cloud (RightNow) projects or Oracle Siebel CRM projects.

We are only 2 people short of a confirmed course, and I would very much hope that the community can pass this message on and hopefully we can make it happen. If you are interested in enroling in this official Oracle University sanctioned event (held at an Oracle Partner training centre), please contact Patrice Brown on the numbers on this page.

Veuillez nous contacter directement si vous êtes intéressé par cette formation en français.