Migration from Oracle Workflow to Oracle BPM 12c
By Pedro GabrielOracle ADF 11g CertifiedOracle BPM 12c Certified
Agenda• Project Scope
• Work Plan
• Implementation
• Lessons Learned
• Summary
Project ScopeStarting Point
Oracle Workflow
11gFront End
BusinessDatabase
300Main Processes
900Processes
Reusable Process#1
Reusable Process#3
Reusable Process#2
Documentation Not Found!
Project ScopeStarting Point Target Challenges
Oracle Workflow
11gFront End
BusinessDatabase
Oracle BPM 12c
Submit Tasks
Initiate Processes
EnvironmentInstallation
OWF ProcessesAnalysis
Architecture Solution
Lessons Learned
Project Scope• So… What Should I do?
• What’s processes structure?
• Model all processes as is?
• Rethink a new solution?
Work PlanEnvironment Installation
Oracle Workflow Processes Analysis
Development Naming Conventions
Oracle BPM Solution Architecture
Solution Implementation
Environment InstallationStarting Point New Architecture
Internet
LBR: lbr.ui.web.application
Weblogic #1
HTTPHTTP
Application Firewall
Backend Firewall
BusinessDatabase #2
UI Web Application
Business Database #1
Weblogic #2
LBR: lbr.business.databaseLBR: lbr.owf.database
OWFDatabase #2
OWF Database #1
Environment InstallationStarting Point New Architecture
Internet
LBR: lbr.ui.web.application
Weblogic #1
HTTPHTTP
BusinessDatabase #2
UI Web Application
Business Database #1
Weblogic #2
LBR: lbr.business.databaseLBR: lbr.owf.database
OWFDatabase #2
OWF Database #1
LBR: lbr.bpm
BPM #1
HTTPHTTP
Application Firewall
Backend Firewall
BPMDatabase #2
BPM Database #1
BPM #2
LBR: lbr.bpm.database
Internet
LBR: lbr.ui.web.application
Weblogic #1
HTTPHTTP
Application Firewall
Backend Firewall
BusinessDatabase #2
UI Web Application
Business Database #1
Weblogic #2
LBR: lbr.business.databaseLBR: lbr.owf.database
OWFDatabase #2
OWF Database #1
Environment Installation
Environment Installation
Oracle Workflow Processes Analysis
Development Naming Conventions
Oracle BPM Solution Architecture
Solution Implementation
Oracle Workflow Process Analysis
Input / Output Parameters
Process Patterns
DatabaseWeb Service
Reusable Processes Calls
Business Data
900 Processes
Oracle Workflow Process Analysis
Workflow BPM
Business Area
Process Name Process Name
Input Parameters
Output Parameters
Type / Pattern
<PRC_OWF_NAME> <PRC_NAME> <NAME>.<TYPE> <NAME>.<TYPE> <GENERIC> / <SPECIFIC>
BPM
Business Data Database Calls Web Services Sub-Processes
<ATTRIBUTES> <SCHEMA>.<TABLE><SCHEMA>.<PROCEDURE><SCHEMA>.<FUNCTION>
<ENDPOINT_URL> <SUB_PRC_PATTERN_TYPE>
…
foreach (OWF Process){
}
Type / Pattern #1
Type / Pattern #2
Environment Installation
Oracle Workflow Processes Analysis
Development Naming Conventions
Oracle BPM Solution Architecture
Solution Implementation
Development Naming ConventionsFile System - Business Area
Application - Sub Business Area
Project - Process
Naming Convention
<AaaBbbCcc>
/…/…/…
Process
Application Name:
Project Name:
Process Name:
Business Catalog Module:
Business Object:
Process Data Object:
Human Task:
UserTypes
<AaaBbbCcc>BO
<aaaBbbCcc>DO
<AaaBbbCcc>HT
…/
<AaaBbbCcc>
<AaaBbbCcc>
Development Naming Conventions• Attribute Types
• Fault Policies Configuration Files
• XSD Files• Input & Output Parameters• Business Data
• Reusable Processes WSDLs
MDS
<?xml version="1.0" encoding="UTF-8" ?><xsd:schema elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"targetNamespace="http://<COMPANY_NAME>.<COUNTRY_CODE>/.../xsd/process/<PROCESS_NAME>/<XSD_FILE_NAME>Data"xmlns="http://<COMPANY_NAME>.<COUNTRY_CODE>/.../xsd/process/<PROCESS_NAME>/<XSD_FILE_NAME>Data">
...
</xsd:schema>
Environment Installation
Oracle Workflow Processes Analysis
Development Naming Conventions
Oracle BPM Solution Architecture
Solution Implementation
Oracle BPM Solution ArchitectureHow should we develop BPM Processes???
One Application
One Project One Process
One Project
SeveralApplications
OR
Each process isdeployed isolated
All processes aredeployed together
Several Process
JDeveloperperformance issues
Easier to structure byBusiness Area
Oracle BPM Solution ArchitectureHow should we initiate BPM Processes???One Main Process for all Processes Middle Solution
Business Area X
One Main Process Per Business Area
Business Area X
Business Area Y
Harder to maintain inputparameters for all processes
More dynamic solution More flexible… but…
Environment Installation
Oracle Workflow Processes Analysis
Development Naming Conventions
Oracle BPM Solution Architecture
Solution Implementation
Solution Implementation
Several Projects One ProcessSeveralApplications
Each process isdeployed isolated
One Application for eachBusiness Area
One Project for eachOWF Main Process
One project for severalOWF Main Processes
How should we develop BPM Processes???
Solution Implementation
Business Area X
Processes with same modeling butwith different input parametersvalues
Business Area Y
Processes with different modeling
How should we initiate BPM Processes???
Solution Implementation
ojdeploy
antDeployment
Solution Implementation
Start Task BusinessDatabase
My Task List
Task A
Task B Submit
Submit
Submit TaskBusinessDatabase
New Task
End
Processes
Process A
Process B
Start
Start
Solution Implementation
• Multi device application
• Responsive user interfaces
• Faster development cycle
• Integrated with- Oracle BPM- Oracle SOA- Oracle Webcenter Content
Why Link BPM Framework??
Solution Implementation
• Real Time Indicators
• Quick Instant Actions
• Easy Data Access
Lessons Learned
Use Case
Exception occurred when binding was invoked. Exception occurred during invocation of JCA binding:
"JCA Binding execute of Reference operation ‘setDBData' failed due to: Interaction processing error. Error while processing the execution of the SCHEMA.DATABASE_OPERATION API. Cause: java.lang.NullPointerException
Check to ensure that the XML containing parameter data matches the parameter definitions in the XSD. This exception is considered retriable, likely due to a modelling mistake. The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
Lesson #1
Workarround
Use CaseLesson #1
Lesson #2Use Case
http://127.0.0.1:7101/integration/services/TaskService/TaskServicePort?WSDL
oracle.jdeveloper.webservices.model.WebServiceException:
[ERROR] only one globalBindings customizations is allowed in a whole compilation line 7 of wsdlhttp://127.0.0.1:7101/integration/services/TaskService/TaskServicePort?XSD=TaskCommand.xsd
[ERROR] only one globalBindings customizations is allowed in a whole compilation line 5 of wsdl
JDeveloper11.1.2.3
Lesson #2Solution
JDeveloper 11.1.2.3
JDeveloper 11.1.2.4
Was not a option for project
Lesson #3Use Case
parsing WSDL…
[ERROR] “wsdlhttp://127.0.0.1:7101/soa-infra/services/default/myProcess/myXSD.xsd” is not part if this compilation. Is this a mistake for “wsdlhttp://127.0.0.1:7101/soa-infra/services/default/myProcess.Service?WSDL#types?schema1”?
Line 2 of “wsdlfile:/c:/Users/M730B~1.ELB/AppData/Local/Temp/JDev.JaxBinding.5510295535565202477.xml”
JDeveloper11.1.2.3
Lesson #3Workarround
1. Copy WSDL to your File System
2. Run the wizard
3. Select WSDL from file system
4. Specify• Override Default Root Package• Override Default Types Root Package
JDeveloper 12.2.1 works fine
Summary
900
OWF Processes
90
BPM Processes
Summary
DocumentationLess Processes
Automatic Deployments Fully Integrated Solution
Processes
Process A
Process B
Start
Start