September 16 2014

There are a lot of benefits to be reaped by migrating a BPM 10g project to 12c. For one, Oracle BPM 12c is built on a Service Component Architecture (SCA) runtime. SCA is an industry standard architecture that provides a model for composing applications that follow SOA principles, like component reuse, OOTB error handling and transaction management, and flexible development to name a few.

With the introduction of Oracle BPM Suite 12c (12.1.3), one of the key features introduced is a migration path for Oracle BPM 10g projects to 12c. Such a feature was not available in 11g and there was little to no hope for BPM 10g projects to be migrated to 11g. That hope has come alive with the introduction of 12c and so I decided to give it a shot. Below I have listed the steps to follow to do a 10g to 12c migration and summarized by findings.

1) Install Oracle BPM Suite 12c

First off, download the Oracle BPM Suite 12c quick start installer from Oracle’s website here. This installer includes JDeveloper 12c with SOA and BPM extensions. The installer also includes the migration utility, which is an ANT task.

2) Install ANT

The migration utility readme.txt recommends to use ANT version 1.8.4.

3) Execute the ANT task

The migration utility can be found under $JDEV_HOME\soa\plugins\jdeveloper\bpm. The build.xml file has all the ANT tasks. The ANT task for the migration from 10g to 12c is “migrate10-12”, where source is the folder location of the 10g project and target is the folder location where the 12c project export will be created. Replace source and target appropriately and execute the below command.

ant migrate10-12 -DprojectLocation=source -Ddestination=target

4) Analyze the ANT task execution

Once the ANT task execution completes successfully, it creates the 12c project export in the target folder specified. This folder contains the following:

  • The exported version of the 12c project (.exp).
  • The migration report (.xml) and its stylesheet (.xsl). Best when viewed via a browser.
  • The 10g project artifacts list (.csv).
  • The folder with 12c project SOA components.

5) Import the 12c project

To import the exported version of the 12c project into JDeveloper, open the 12c JDeveloper. Create a BPM Application. Go to File -> Import  -> Import BPM Project. Browse to the target folder and select the .exp file. This is a list of some of the artifact mappings:

  • Organization -> Organization, except Groups and Participants.
  • Process -> Process
  • Screenflow -> Synchronous Process
  • Process and Screenflow Begin/End -> Process Begin/End
  • Swim Lanes -> Role Lanes
  • Argument Mappings -> Data Associations
  • Transitions -> Sequence Flows
  • Conditional Transitions -> Exclusive Gateways
  • Global Creation -> Interactive Initiator
  • Process Instance Variable -> Process Data Object
  • Screenflow Interactive Component Call -> User Interactive with it's Human Task. Since Human Tasks did not exist in 10g, the migration utility follows a naming convention for the Human Tasks. It is ActivityName_ProcessName or ModuleName_BPMObjectVariable_PresentationName.
  • Automatics -> Script Activity. The PBL (Process Business Language) code in the 10g Automatics can be found in the Script Activity's Groovy code editor.

The above does not list all the artifacts that might be part of a project, but it gives a good idea of what to expect. Also, there are certain artifacts that will not migrate to 12c. Here is the list of some of the artifacts that do not migrate:

  • Process and Screenflow folders. If the project process(es) and screenflow(s) are sorted in folders in 10g, these folders do not migrate and the folder hierarchy is lost.
  • Process Global Interactive.
  • Out-of-the-box Modules (Fuego and Plumtree) and some developer created Modules.
  • BPM Object - Group type.
  • BPM Object - Presentations.
  • Web Resources which includes JSP, CSS, JS files. Some of the JSP code can be copied over to ADF forms, but the Fuego Tag Library is not migrated though.
  • Predefined Variables, for example result, action, description etc.
  • Organization - Groups and Participants.

The migration process detailed above (Steps 1 thru 5) takes no longer than a few hours and the ANT task itself (Step 3) only takes a few minutes depending on the size of your BPM project. Also, I want add a caveat that BPM 10g could be a standalone suite. Unlike 10g, BPM 12c is just one of the components of the Oracle FMW stack. The FMW stack includes many other components including SOA and BPEL. In 12c, leaving all the imported BPM processes as-is may not be the best option. For example, converting system to system processes to BPEL might be a better fit and is something worth exploring.

In summary, the migration utility is a good head-start, but is not a one-and-done solution to a BPM 10g migration strategy. It does not do a one-to-one mapping for some artifacts and certain other artifacts will not migrate. It is not a production deployment ready migration and time and effort will be needed to modify and/or refactor some artifacts, but it certainly gives you a solid start on your Oracle BPM 10g to 12c initiative. Oracle BPM 12c certainly extends a hand of friendship to BPM 10g which was missing in BPM 11g.

Join the Conversation

September 17, 2014

What would be the fate of global automatic activity when migrated from 10g to 12c. I am referring to regular as well as global automatic activities configured as listeners in 10g.

September 17, 2014

What would be the fate of global automatic activity when migrated from 10g to 12c. I am referring to regular as well as global automatic activities configured as listeners in 10g.

September 17, 2014

Hi Subho,

10g Regular Global Automatic -> 12c Start Timer Activity.
10g Regular Global Automatic's associated method PBL code -> 12c Script Activity with Groovy code.

I have not tried the 10g Listener Global Automatics.

October 29, 2014

Any idea as to how to implement the global interactive combining bpm and adf?

October 29, 2014

Hi Shay,

A 10g Global Interactive does not migrate to 12c.
But if a Global Interactive is backed by a Screenflow, meaning the execution of it activates a Screenflow, that Screenflow did migrate to 12c as a BPM process. To closely mimic the 10g behavior of this in 12c, you can add a User Initiator activity to this new BPM process, which is tied to a Human Task which is tied to an ADF form.

Hope this helps.

Hari Krishna
July 29, 2016

Hi Avio,

Nice post about migration of BPM from 10g to 12c I didn't tried it. But I have some doubts regarding taskforms?  are the pages(jspx,jsff) are also migrate directly or do we need to redesign them in 12c ?

any Help Please ?


Hari Krishna

May 1, 2017


How to implement Fuego components in 12c?

Fuego Mail (where we can specify the folder to poll)

Fuego participant (like assign next participant,grab instances,etc)

Enter your first name. It will only be used to display with your comment.
Enter your email. This will be used to validate you as a real user but will NOT be displayed with the comment.