NoClassDefination exception for IDynamicAssignmentPattern interface when Round Robin algorithm is used in BPM process (Doc ID 1591751.1)

Last updated on SEPTEMBER 06, 2017

Applies to:

Oracle Business Process Management Suite - Version 11.1.1.7.0 and later
Information in this document applies to any platform.

Goal

 When creating custom dynamic allocation algorithm in BPM to allocate tasks, As per the Oracle documentation http://docs.oracle.com/cd/E25178_01/dev.1111/e10224/bp_workflow.htm#BABEAGIJ

Created own allocation class implementing IDynamicAssignmentPattern interface.Copied the exact code used for ROUND_ROBIN in-build function.
After that deployed the class as library in targetted to Admin Server + SOA server. As a next step added that function in Workflow Task Service Properties using EM.

However when ever using the custom function in BPM process using in BPM process for example:
hwf:dynamicTaskAssign('MMT_ROUND_ROBIN','MMTAllocationGroupTest','group','user','true','OwnerUser')

Our bpm instance get faulted and throws NoClassDef exception for IDynamicAssignmentPattern interface.

Scenario:-


1. Create a java application created using "oracl.bpel.services.workflow.assignment.dynamic.IDynamicAssignmentPattern" interface as par the Oracle document
http://docs.oracle.com/cd/E25178_01/dev.1111/e10224/bp_workflow.htm#BABEAGIJ
2. Write a custom allocation logic by overridding dynamicTaskAssign method for example hwf:dynamicTaskAssign('CUSTOM_ROUND_ROBIN','AllocationGroupTest','group','user','true','OwnerUser')
3. Generate a jar file with the created deployment profille.
4. This class is created by implementing "oracl.bpel.services.workflow.assignment.dynamic.IDynamicAssignmentPattern" interface
5. Deploy the jar as a library in weblogic server and target to Admin and SOA managed server.
5. Open EM console and go to SOA > soa-infra. Right click on soa-infra > SOA Administration > Workflow properties > Task tab.
6. Click on Add Function. On the popup provide a function name as CUSTOM_ROUND_ROBIN, Classpath as com.mmt.bpel.services.workflow.assignment.dynamic.RoundRobin, parameter name as MAX_MAP_SIZE and value as 10000. Click Ok.
7. Click Apply.

Added new custom allocation function in EM Console, Now We need to use it in our BPM Process for allocation.

Create couple of instances as above. As par the above custom allocation function, the instances should be allocated to the users under the "MMTAllocationGroupTest" group in an round robin fasion.

But the instances get faulted with the below fault:


<bpelFault><faultType>0</faultType><bindingFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>oracle.fabric.common.FabricInvocationException: javax.ejb.EJBException: what do i do: seems an odd quirk of the EJB spec. The exception is:java.lang.NoClassDefFoundError: oracle/bpel/services/workflow/assignment/dynamic/IDynamicAssignmentPattern</summary></part><part name="detail"><detail>what do i do: seems an odd quirk of the EJB spec. The exception is:java.lang.NoClassDefFoundError: oracle/bpel/services/workflow/assignment/dynamic/IDynamicAssignmentPattern</detail></part><part name="code"><code>null</code></part></bindingFault></bpelFault>

 

Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms