Showing posts with label Oracle BPM Studio. Show all posts
Showing posts with label Oracle BPM Studio. Show all posts

Monday, August 18, 2014

ACM Stakeholder and SCA Organization out of sync

Upon case design for Oracle Adaptive Case Management 12c, included in Oracle Business Process Management 12c, you need to take care that the application role table (organization.xml) of the BPM/ACM service component application and case stakeholder table of the case.

In Oracle BPM Studio 12c, create a new SCA application, e.g. called MyAcmApplication.
Add a BPM project (e.g. MyAcmProject) whose composite contains case management.
Since you selected Composite with Case Management, you will be asked to provide a case name, e.g. MyCase.
Now check for the details of organization.xml of the BPM project from the Applications navigator.
Applications navigator in Oracle BPM Studio 12c

(If the Applications navigator is not already open, in 12c you can find it under Windows menu from the main navigation of BPM Studio. This is different from 11g where it was under View menu.)
Once organization.xml opened, you will notice that so fare, ony the Process Owner and the Process Reviewer application role are present for this project.
Now, go to the Stakeholder property page of the case. Open the case file from the Applications navigator (MyAcmProject > BPM > Case > MyCase). Add a new stakeholder (e.g. MyStakeholder) to the stakeholder list. Don't forget to save.
New stakeholder added to case
Switch back to Organizations tab and notice that the new stakeholder has also been added as BPM application role.
Now, go back to the case definition and delete the prior created stakeholder. Save all. Switch back to the BPM application roles. You will notice that the according application role for your stakeholder did not get deleted aswell. At this point, you are out of sync between you case definitions stakeholders and you BPM applocation roles.

Since BPM application roles are global in the OracleBPMProcessRolesApp, this makes somehow sence to prevent deletion active application roles on redeployment of BPM/ACM applications. On the other hand, deployment won't ever delet application roles from OracleBPMRolesApp. Only updation association of user and groups is possible. Therefore, during design time, this behavior is somehow unexpected.
In the end, it is no big deal since you can still manually delete the application roles. This can be done prior to deployment (so that the application roles doesn't even get propagated to OracleBPMProcessRolesApp) or on runtime using BPM Workspace. It is just something you need to be aware of.

Friday, April 25, 2014

Upgrade your Oracle BPM Studio 11g (11.1.1.7)

Just in case some of you might have missed this: When Oracle BPM 11g's MLR3 came out (finally providing a basic OOTB UI for Case Management included in the Business Process Workspace application), also Oracle BPM Studio 11g (hence: Oracle JDeveloper with the extensions SOA Composite Editor and BPMN Editor) got an update:

  • SOA Composite Editor: 11.1.1.7.0.00.08 11.1.1.7.0.00.97
  • BPMN Editor: 11.1.1.7.0.0.8 11.1.1.7.0.0.97
For example, this upgrade includes components to work with Case Management UI, e.g. to generate case data.

Just upgrade your JDeveloper with the integrated update functionality Help > Check for updates ... and reduce the selection in step 3 to Shop upgrades only.

You cannot upgrade both extensions the same time (unless JDeveloper won't warn you on that). Make sure to first upgrade the SOA extension. (Otherwise, when first upgrading BPM, you won't be able to apply the SOA update afterwards.)

You can also download the extension sources first and upgrade the extensions with the integrated functionality Help > Check for updates ... and the Install from local file in step 2.

Thursday, January 30, 2014

JBO-29114 / JBO-25004 with Oracle BPM 11g - Workspace does not load UI for Human Task

A while back, I struggled with the UI of a POC not coming up in Oracle Business Process Workspace. The following has been tested with Oracle BPM 11.1.1.7.0 / 11.1.1.7.2 but may be the same for other releases. To spoil a bit: It's a system fault and once understood, no big deal. However, I passed some time on that since all related sources I found (e.g. on OTN Forums) didn't not exactly cover this context with BPM involved.

Checking the stack trace, I found the following:

Root cause of ServletException.
oracle.jbo.InvalidDefNameException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-25004. Error message parameters are {0=Package, 1=poc-bpm-002_ui.DataBindings}
    at oracle.jbo.mom.DefinitionManager.loadProjectDefinition(DefinitionManager.java:1801)
    at oracle.jbo.uicli.mom.JUMetaObjectManager.findCpx(JUMetaObjectManager.java:667)
    at oracle.jbo.uicli.mom.JUMetaObjectManager.loadCpx(JUMetaObjectManager.java:748)
    at oracle.adf.model.BindingContext.initialize(BindingContext.java:402)
    at oracle.adf.model.BindingRequestHandler.beginRequest(BindingRequestHandler.java:238)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:203)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.share.http.ServletADFFilter.doFilter(ServletADFFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:128)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.bpel.services.workflow.client.worklist.util.WorkflowFilter.doFilter(WorkflowFilter.java:175)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.bpel.services.workflow.client.worklist.util.DisableUrlSessionFilter.doFilter(DisableUrlSessionFilter.java:70)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:180)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:324)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:163)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)


JBO-29114 doesn't say much and JBO-25004 pointing us to the involved package (poc-bpm-002_ui in my case) only helps when we understand where it comes from. Actually, this package for the DataBindings will be generated by Oracle BPM Studio 11.1.1.7 if you auto-generate the Task Form for a Human Task component. On generation, the package name is taken from the ADF project name you are choosing for the UI project. Unless ADF Naming Conventions (v2.00) do not impose any restrictions on ADF project names, this generation procedure requires that you do not use the minus sign "-" in the ADF UI project name. However, the underscore doesn't impose any problems.

Summery: No minus sign in ADF UI project names if you use Oracle BPM Studio 11g auto-generation of Task Flows!