Migration from Oracle BPM to Oracle Autonomous Integration Cloud — Streamlining Process Automation in the Cloud

Andre Boaventura
Oracle Developers
17 min readJun 7, 2018

--

In my last blog post Migrating your Oracle BPM assets into Oracle Process Cloud Service (PCS), I have described and demonstrated how to migrate modeling assets (essentially BPMN models) by leveraging the conversion framework that you can find at my repository at GitHub.

As stated on the blog post above, the major use case was to demonstrate how customers using Oracle BPM Composer for modeling purposes *ONLY* could streamline their migration process from Oracle BPM into PCS. Also, as declared earlier, I have seen many customers that are using BPM for documentation purposes only, but at the other end, and as you might be likely asking yourself, there are many others that have already developed many projects and processes on top of the Oracle BPM not only for documentation purposes, but indeed for process automation, and obviously want to move them to the respective cloud version of Oracle BPM (aka PCS), given all the very known benefits of cloud adoption such as lower costs, greater agility, improved responsiveness and better resource utilization among other technical and business drivers.

Thus, with Process Automation in mind, asset migration from Oracle BPM to PCS becomes an even more serious matter, but the good news is that this is really possible.

As the major goal of my posts is to share experiences that I have seen with customers I have worked in the field, the following technique you will find below obviously could not avoid the rule. This exercise came as a challenge from a specific customer that was running in production all their processes on Oracle BPM for process automation purposes, so this means it also can be applied to many others since there is an increasing demand for this sort of migration given the high number of customers relying on Oracle BPM for process automation, and which at the same time, want to bring their processes to the Cloud as well. Look at the video below for a quick introduction about the Oracle BPM Path to the Cloud.

After getting started with this introduction, I guess you might be thinking yourself about the new suite introduced a couple of months ago called Oracle Integration Cloud(aka OIC) that is a combination of both PCS, ICS and other known Oracle cloud services for Integration such as Integration Insight, Visual Builder Cloud Services and others. So the question that comes to mind is: Should this migration framework work for OIC as well?

The good news is that the answer is also *YES* for OIC. Although there will be some caveats that I will be explaining along this article, since OIC only supports the new Web Forms technology(not the old one based in Frevvo) that was introduced in PCS, then the current forms technologies available in BPM(ADF or Basic Web Forms) won’t work within OIC, but even so, through my migration scripts you should be able to import other artifacts such as processes, indicators, integrations, etc. Again, throughout this post you will understand all alternatives currently available.

However, before digging deeper into the details of this migration technique, let me give you a brief introduction about the new Oracle Cloud Integration Platform called OIC.

Oracle Integration Cloud (OIC) brings together all the capabilities of Application Integration, Process Automation, Visual Application Building and Integration Analytics into a single unified cloud service. It now brings real-time and batch based integration, structured and unstructured processes, case management, stream analytics and integration insight allowing customers to service all their end to end integration needs in one cohesive platform so that all users can now build and deliver capabilities needed to realize true Digital Business Transformations.

Billing is simplified with a single metric of OCPUs per hour (no more connection or user counting!!). Natively discover and invoke integration flows from processes in OIC and vice versa. Customers can configure and schedule patching according to their own schedule, and they can scale the Database to accommodate their business’s retention policy.

The Integration Cloud runtime can be scaled out to meet the most demanding customer volumes. Also, customers now can choose to use the following alternatives for on-premises application connectivity: Connectivity Agent, API Platform, VPN or Oracle OCI FastConnect.

OIC Key Features

SaaS and On-Premises Integration: Quickly connect to thousands of SaaS or on-premises Applications seamlessly through 50+ native app adapters or technology adapters. Support for Service Orchestration and rich integration patterns for real-time and batch processing.

OIC Integration(formerly ICS)

Process Automation: Bring agility to your business with an easy, visual, low-code platform that simplifies day to day tasks by getting employees, customers, and partners the services they need to work anywhere, anytime, and on any device. Support for Dynamic Case Management

OIC Process (formerly PCS)

Visual Application Design: Rapidly create and host engaging business applications with a visual development environment right from the comfort of your browser.

Integration Insight: The Service gives you the information you need — out of the box, with powerful dashboards that require no coding, configuration, or modification. Get up and running fast with a solution that delivers deep insight into your business.

Integration Insight(Also available in both SOA on-prem as an option & SOA Cloud Service SKU as Integration Analytics)

Stream Analytics: Stream processing for anomaly detection, reacting to Fast Data. Super-scalable with Apache Spark and Kafka.

Challenges

Now that you already know that migration from Oracle BPM to either PCS or OIC is achievable by leveraging the migration framework I will be explaining along this article, and also and also had the opportunity to have a brief introduction about the new integration platform in the Oracle cloud called OIC, now let’s look at some of the challenges that we will need to overcome in order to make this migration happen.

Getting back again to my earlier post about BPM Migration, where I have highlighted some of the differences among what is supported in Oracle BPM and PCS regarding the BPMN notation, you will notice that with process automation into the picture, the scope is larger since we should take into account the way BPMN notation behaves while running the process itself.

Additionally, we have other extensions such as Human Tasks, Script tasks, Web forms, Data Objects, Business Indicators, etc, so the bottom of the issue is still a long way off, so let’s go for parts for seeing the whole.

The Scope of this Migration

As mentioned earlier, the goal of this blog is to provide you with experiences and real cases that I have seen in real customer in the field. As such, for obvious reasons, I can’t share customer processes information within this post, but I can use generic examples that will be covering all findings which I have discovered along customer migration process in order to fully showcase how to do a process migration from Oracle BPM to PCS in a smoothly way.

For the sake of understanding, let us use the following Oracle BPM project(Oracle Travel Approval) as the sample to demonstrate migration in-action.

Oracle BPM Travel Approval Sample Process

Note 1: This blog post is leveraging an Oracle BPM project sample with forms implemented in Web Forms(aka Frevvo forms). If your Oracle BPM projects have forms implemented with Oracle ADF technology, you still should be able to properly import your Oracle BPM projects into Oracle PCS, however at the other end, you will be forced to rewrite all your forms from scratch to get your applications fully migrated, up and running on the Cloud, since ADF is not supported in either PCS or OIC.

Note 2: The recommended forms technology for PCS(which now is part of Oracle Integration Cloud) is the new Web forms technology. The previous one, that is a frevvo heritage, called Basic Forms in PCS, is no longer supported in OIC, so please be advised to get your forms migrated to Web forms in order to be able to upgrade to OIC, the latest Oracle Cloud integration platform, as described in the introduction section earlier in this post.

In the process sample above, we can find some examples of activities or extensions that must be carefully handled by the conversion framework so that the BPM project can be imported and deployed on PCS in a smoothly way. They are as follow:

  1. Human Tasks
  2. Script Tasks
  3. Project Data Objects
  4. Business Indicators
  5. Initiator Tasks

1. Human Tasks

The following are some of the attributes that are currently available in Oracle BPM(maybe you can find more within your Oracle BPM project), but not supported in Oracle PCS.

  • hideCreator
  • excludeSaturdayAndSunday

So, if you don’t remove them from your task definitions files, you will get the following errors while trying to deploy your application project on PCS:

… The errors are [2]: Element ‘hideCreator’ not expected. at line -1 at column -1. exception.fix: Make sure that the task definition conforms to the task definition XML schema definition. . — Please contact the administrator for more information…

The errors are [2]: Element ‘excludeSaturdayAndSunday’ not expected. at line -1 at column -1. exception.fix: Make sure that the task definition conforms to the task definition XML schema definition. . — Please contact the administrator for more information.

2. Script Tasks

Whether if you are creating Oracle BPM applications, it is very likely that you might have already played with script tasks. In general, script tasks are a very powerful component in Oracle BPM to enable users to pass data objects through data associations. Although an user can use script tasks for implementing Groovy scripts, most of implementations out there only use script tasks for data association.

Also, as you probably must know, and as indicated in my previous post, Script tasks are not available in PCS. So, how can an Oracle BPM process be imported into PCS once this activity is not available in the component palette, resulting in a compilation error if trying to do so? Don’t worry, I have made the job for you, so you don’t have to get your hands dirty fixing this sort of things.

The magic behind is to convert every script task into something supported in PCS so one can migrate process application smoothly. The approach I have figured out to solve this problem was converting all script tasks across all bpmn files into service tasks activity, then make those service tasks to call any service that would allow us to keep script task behaving as it was in Oracle BPM. A simple workaround was to call an internal PCS REST API(in my conversion script I am using getProcessDefinitions but could be any other one) only to be able to run the same data transformation as used in Oracle BPM. This is only valide por PCS as you might have realized. As for OIC, the signature is slightly different(process-definitions). Please check out the REST APIs for Oracle Autonomous Integration Cloud Service here.

Also, there is an alternative while running the conversion script which is to disable all service Tasks activities when converting from scriptTask activity by passing the parameter disableScriptTasks to the conversation framework.

As such, after importing application project into OIC/PCS, then all these service Tasks need to be manually setup to point to any valid and existing service URL in order to get the process properly validated and deployed after all.

If you want to learn more how it was done under the covers, please check out the following function in my linux bash script:

  • function addPCSRESTConnectionToProjectDefinition()
  • function addPCSRESTConnectionToScriptTask()
  • function disableScriptTasks()

Migration of script tasks was only tested against those with no implementations. If you are leveraging script tasks for running Groovy scripts, then these steps would need to be converted in a manual basis, since you can’t run Groovy scripts in OIPCS.

3. Data Objects

Unlike Oracle BPM, Oracle OIC/PCS no longer has the concept of Project Data Object vs Process Data object. There is only Data Objects that works on the scope of the processes, and as opposed to Project data objects, they can’t be shared across different processes.

BPM Process and Project Data Objects
OIC/PCS Data Objects

With that said, we first need to find out where the project data objects are stored within a BPM project, and then move them to the right place within the process to be properly validated by the Oracle OIC/PCS process validation engine.

So, having a closer look at the project files, you will notice that Project Data Objects get stored within projectInfo.xml (under the SOA Folder), that is under the root folder. Particularly in my example, it will be called as BpmProject, since it is always stores under the folder containing the Process project name. See picture below for more details:

This is a sample Oracle BPM Project export(.exp) file structure

By drilling down to the projectInfo.xml, you will find the following content:

Project Data Objects section

Similarly, if you go the process file (in my case Process.bpmn), you will find the following section:

Process.bpmn file dataObjects section

So, in order to make it OIC/PCS compatible, all project data objects must be within a process file (with .bpmn extension). In my case, with a simple process called Process.bpmn, I will add all Project Data objects from projectInfo.xml into this file, so at the end this work, Process.bpmn should look like the following:

Final Process.bpmn file after migration. It includes all Project Data Objects from the original Oracle BPM project, but now as process data objects.

Please note that I had to find all references in the projectInfo.xml file for ns3 and replace by bpmn before adding to the target process file. Similarly I had to do the same for all ns7 references and replacy by bpmnext.

Also, you must figure out in which bpmn files you should add those former project data objects given the way they are referenced across processes.

4. Business Indicators

One of the most powerful features available in Oracle BPM and Oracle OIC/PCS is the concept of Process Analytics. Process Analytics enable you to obtain performance and workload metrics of the processes in your project. You can use these metrics to make decisions about your process.

Process analysts can monitor standard pre-defined metrics and process specific user-defined metrics. Process developers can define process specific metrics using Business Indicators. In Oracle BPM, business Indicators can be bound to project data objects. Once bound, the BPMN service engine publishes the business indicator values to process analytics stores when it runs the BPMN processes. However, as mentioned above, there is no such concept of Project Data Objects in OIC/PCS. Please see the pictures below to visualize the differences between them:

Oracle OIC/PCS Indicators
Oracle BPM Business Indicators

As you may have noticed, there is a small difference between BPM and OIC/PCS regarding business indicators, but as said earlier, my conversion script does the dirty job for you by converting Project Data Objects only supported by Oracle BPM into Process data objects, which are then mapped to their respective process data objects in PCS.

5. Initiator Tasks

The initiator task is one among the many human task interactive patterns in Oracle BPM. It’s used to trigger a BPM process flow from the defined human task user interaction interface. When you are using the initiator task to initiate a BPM process, the process always starts with the none start event. The none start event will not trigger the process; however, the human task initiator will initiate the process. It’s the role associated with the swim lane that defines the process participant, and that process participant/assignee is the one the initiator task gets assigned to.

If your Oracle BPM processes have initiator tasks, this will be converted to approval tasks in Oracle OIC/PCS, however to keep the original behavior of an initiator task used in Oracle BPM in either PCS or OIC, that is the capability of triggering a BPM process flow from the defined human task user interface(i.e: An initiator task allows creating a BPM process instance through the BPM workspace or any other UI), this should be changed either to a Form Start Activity, with the form assigned to that activity, or using the submit task.

I preferred to use the Form start activity since it simplifies the process by removing the human task and assigning the web form straight to the form start activity. Although I haven’t added this as a feature to my migration script yet, you can simply follow the steps I have showed in this quick video below, by performing these steps right after running a BPM migration and importing migrated artifacts from Oracle BPM(.exp files) into Oracle OIC/PCS, similarly to what will be covered in the next section “Getting Started with your Migration to the Cloud”.

Getting started with your Migration to the Cloud

After all the topics covered so far, that were essential for a deeper understanding of this migration procedure, finally the so awaited time has come, that is, where you can get your hands dirty and finally see migration in-action. Let’s get down to work!!

Oracle BPM -> Oracle Autonomous Integration Cloud(OIC)

Please watch the video below to find out how to migrate a process from Oracle BPM straight to OIC. TravelApplication is a sample application built on Oracle BPM, leveraging Webforms(frevvo) as the forms technology. As it is not supported in OIC, note that one step done in the video is to remove the forms folder to allow this application to be properly imported within OIC. Then, as mentioned earlier, these forms will need to be created from scratch, but at least all other artifacts such as processes, business types, integrations, indicatores, etc were successfully imported into OIC.

Oracle BPM -> Oracle Process Cloud Service (PCS)

This is a similar video as shown above, but this time you can see an end-to-end migration from Oracle BPM to PCS, highlighting the following steps:

  1. Export process from Oracle BPM
  2. Migration with my framework
  3. Import into PCS
  4. Application Validation
  5. Test & Deploy
  6. Running the process from the Process Workspace

Now it's time to see an actual migration in action

Below you will find videos describing a real migration done for a customer by using the migration framework to migrate Oracle BPM processes to PCS, ICS and Integration Analytics. Note that even though this process was done for a previous version of OIC(PCS & ICS), the majority of procedures and techniques shared below would be valid for OIC as well.

Part 1 BPM to OIC/PCS Migration

This is the first step towards generate the first BPM project to be imported into PCS. It walks you through the original Oracle BPM application(BPM Composer and Studio) and shows how to create the first migratable project on Oracle OIC/PCS by leveraging the BPM Cloud Migration framework available at this github repository.

Although you can find references to PCS in this video, the same technique applies to OIC as well.

Part 2 OIC(formerly ICS) — the integration Layer

This step demonstrates how to install and setup OIC/ICS connectivity agent to be used by integrations that require access to customer’s Oracle database tables. Also, it shows how to build an integration from scratch in OIC/ICS to access customer database tables and then expose them as REST services to be consumed by Oracle OIC/PCS.

Although you can find references to ICS in this video, the same technique applies to OIC as well.

Part 3 — PCS & ICS Integration

This video demonstrates how to leverage services created in OIC/ICS to replace those from the original process created with Oracle DB adapter within a SOA composite. Also, it showcases how to link those OIC/ICS services to OIC/PCS service call activities and how to map inbound and outbound data. Also, it shows the first deployable version to be tested and run on PCS.

Although you can find references to both ICS & PCS in this video, the same technique applies to OIC as well.

Part 4 — Integration Analytics

This video guides you on how to create a Business Insight model with milestones, business metrics(measures and dimensions), assign them to their respective milestones and finally expose those milestones APIs to be consumed by Oracle OIC/PCS.

Part 5 — OIC/PCS Business Insight Integration

This video shows how to enable and link Business Insight within OIC/PCS and also deploy the final version to be used and tested in run-time.

Although you can find references to PCS in this video, the same technique applies to OIC as well.

PCS/ICS/Integration Analytics(Now OIC) End-to-End demo after a successful migration

This video walks you through all products described earlier, but looking from the run-time perspective. It starts showing a process instance kicked-off through a Web forms, then an approval by a Mobile app, integration with Content Experience Cloud. Also, it guides you through all default and custom dashboards created on Integration Analytics as well as how to monitor integrations and track process integration instances in OIC/ICS. This is a comprehensive and seamlessly integrated demo that highlights how this Oracle PaaS service can work to bring more value and benefits for customers that have the same or a similar use case.

Although you can find references to both ICS & PCS in this video below, the same technique applies to OIC as well.

Stuff to Know

Here is a summary of all available migration paths considering the current BPM offerings: Oracle BPM, PCS and OIC(the latest one), with their respective caveats/comments depending on the forms technology being used for you process automation.

Oracle BPM->Oracle PCS

  • Web forms: Migration will be smoothly since PCS supports the old web forms technology based on frevvo web forms.
  • ADF: Although you can migrate processes and all other assets, you should rewrite your forms. Recommendation is to do it by leveraging the new Web Forms technology.

BPM->OIC

  • Regardless the forms technology it is being currently used in your Oracle BPM project, they will have to be created from scratch if you need a straight migration to OIC.
  • Oracle is working in a forms migration tool. When available, it will allow you to migrate your old web forms based on frevvo to the latest web forms technology. As such, a reasonable approach(only applied if you are using frevvo web forms) would be to migrate from BPM->PCS to keep forms as they are, followed by a migration from PCS->OIC by leveraging the new web forms migration expected to be available this calendar year.

PCS->OIC

  • Transparent migration since the forms have been made in the new forms technology also available in PCS, otherwise it will be needed to rewrite the forms or wait until the migration framework, mentioned in the item above, is available to be used, which will allow to migrate the forms of the PCS built with old forms technology(frevvo) to be properly migrated to the OIC.

Conclusion

Hopefully this article has provided to you with some guidance on how to perform a migration from Oracle BPM to our managed version in the cloud called OIC, and also has indicated some of the options currently available depending on the sort of technology being employed during implementation with Oracle BPM. Below you will find some highlights of the key steps for an end-to-end migration.

Disclaimer

Although the procedure described in this blog post is a result of multiple success engagements done for some customers while migrating them from Oracle BPM to Oracle OIC/PCS, please be advised that this is not supported by Oracle and must be used at your own discretion.

Please clap on this article if it has helped you to understand the migration procedures from Oracle BPM to Oracle Autonomous Integration Cloud Service. And please leave a comment and state your feedback. This is very important to help me keep writing new articles about this sort of content.

--

--

Andre Boaventura
Oracle Developers

Principal Solutions Architect driving Cloud, AppDev, Serverless, Mobile, Chatbot, AI/ML, Container & Cloud Native technologies @AWS