Spawning multiple approval tasks in parallel in OIM11g SOA Composite

Hi,
We are trying to implement the following scenario.
1) We are trying to develop a SOA composite for AD Group Access
2) The request dataset contains a child table for AD User Group Details which is as follows.
<AttributeReference name="AD User Group Details" attr-ref="UD_ADUSRC" type="String" length="20" widget="text" available-in-bulk="true">
<AttributeReference name="Group Name" attr-ref="Group Name" type="String" length="400" widget="lookup" available-in-bulk="true" lookup-code="Lookup.ADReconciliation.GroupLookup" primary="true"/>
</AttributeReference>
3) Consider the user is already provisioned to AD.
4) User now tries to request for AD Group Access by using a request template
5) The request dataSet for the resource "AD Group Access" will be displayed where the user would "Add" the group(s) to which (s)he want access.
6) Once the request is sumbitted the associated SOA composite would be executed.
7) Now, in the SOA composite the logic should be as follows:
a. For each group selected, there is a corresponding dataApprover who should approve the request.
b. Once the dataApprover approves the request it goes to the next approver who is securityApprover.
c. Once the securityApprover approves the request, the request should go thru and the user should get the membership in the AD Group.
d. Since "AD User Group Details" is a child form in the request dataset, the user can add multiple groups in the same request.
e. If there are muliple groups selected in the same request, then the same request should spawn parallel approval tasks for all corresponding dataApprovers and securityApprovers.
f. Then the user should get membership to those AD Groups for which the corresponding dataApprover and securityApprover had approved the request.
e. If a dataApprover or securityApprover rejects the request then the user shouldn't get membership to the respective group. However, this shouldn't prevent the user from getting membership to other groups for which dataApprover-securityApprover approval was done.
The dataApprover and securityApprover for the groups are stored in a db table mapping to the corresponding group name.
We have implemented a SOA composite for which the logic is fine if we add only one group in the child table of request dataset. As per the current implementation, when a user submits the request, the dataApprover and securityApprover for the selected group are fetched from the table and the global variables in SOA composite are set with the ID of dataApprover and securityApprove using setVariableData. These are sting variables. These variables are used in the approval task. The approval task has two "Single Type" participants - dataApprover and securityApprover. These participants fetch the value of dataOwner and securityOwner from the global variables set using setVariableData.
Now, as mentioned above, if mutiple groups are added like group1, group 2 etc. then there should be multiple approval tasks spawned in parallel that will be approved/rejected by dataApprover1-securityApprover1, dataApprover2-securityApprover2 etc. Depending on the output (approve/reject) the user should get membership to appropriate groups.
Any inputs on how to modify the current composite to spawn multiple approval tasks in parallel depending on the number of groups added from the requestDataSet would be helpful.
Regards,
Swaroop

Single request id then you are bit safe. The way to do it would be:
1. Set the dataApprovers as a comma separated list of all the data approvers for all the groups.
2. Set the securityApprovers as a command separated list of all the security approvers for all the groups.
3. In Human Task assign the first stage to all the dataApprovers and second stage to securityApprovers.
Cons of this approach are:
1. All the approvers would see all the data and they might be confused what they are approving.
2. securityAppprovers for say group1 won't get the item untill all the dataApprovers approve the request even though dataApprover has approved the request for group1.
3. Would be hard to implement the rejection cases; depending upon how you want to handle the rejections. For e.g. what if any dataApprover rejects the request? Should the whole request be rejected? If so what would happen to those which have already been approved by dataApprovers? Same case goes for securityApprovers. Again since you cannot modify the requested data once the request is submitted; thus you cannot remove the rejected groups from the request.
4. You provisioning won't trigger untill all dataApprovers and all securityApprovers have approved the request.
5. Any one approve from comma separated list of approvers would approve the request. Thus you cannot make sure that all the approvers should approve the request. The workaround would be to create parallel stages in human task and assign one group/approver to one parallel stage. This would mean that you will have to hard code the number of parallel approvals which can be generated in your BPEL human task (This would again depend upon the number of groups requested). To workaround this you could use BPEL extenal routing program where you can pragmatically assign tasks but again since there is no entitlement based request engine in OIM, thus there would be issues there too.
As a workaround, make sure that you allow only one group to be requested per request and reject the request outright if multiple groups are requested in a single request. You will need to buy in the business on this one.
Have heard the grapevine that 12G which is in the pipeline would have entitlement based request engine and also would allow for modification of request data once the request is submitted.
HTH,
BB

Similar Messages

  • Restrictions on using multiple user tasks in parallel ?

    Hi there,
    are there any restrictions on creating / managing multiple user tasks sequentially or in parallel in a BPEL process ?
    Sometimes my BPEL engine (OC4J/2.0.11) generates an error about "unregistered object ..." and the BPEL process failes.
    The BPELConsole then is not able to display the process state anymore.
    Thanks,
    Wolfgang

    There should be no restriction on how many task you can run in parallel. The only requirement is to use distinct partnerLinks (the partnerLink is statefull and embedded the correlation information).
    If you are combining flowN and tasks, you can achieve this by using local partnerlink (not supported by the designer but supported by the engine so a local partnerlink can be added to the process using the XML source representation of the BPEL).
    -Edwin

  • OIM11gR2PS1 - Invalid task definition Error when deploying soa composite

    Hi,
    I am having a issue modifying the approval policies.
    I cant select the composite for approval workflow.
    I can see the composite as "Active" in soa-infra and it is shown in the search box when selecting the composite to be used in approval policies.
    The following error is shown,
    The same composite, I am able to deploy and select in the approval policies in a different instance.
    java.lang.ArrayIndexOutOfBoundsException: 2
      at oracle.iam.platform.workflowservice.impl.WorkflowRepositoryImpl.getOIMHostAndPort(WorkflowRepositoryImpl.java:530)
      at oracle.iam.platform.workflowservice.impl.WorkflowRepositoryImpl.updateHumanTaskURI(WorkflowRepositoryImpl.java:412)
      at oracle.iam.platform.workflowservice.impl.WorkflowRepositoryImpl.registerWFDefinitionNoMapping(WorkflowRepositoryImpl.java:245)
      at oracle.iam.platform.workflowservice.impl.WorkflowRepositoryImpl.registerWorkFlowDefinition(WorkflowRepositoryImpl.java:180)
      at oracle.iam.platform.workflowservice.impl.WorkflowServiceImpl.registerWorkFlowDefinition(WorkflowServiceImpl.java:279)
      at oracle.iam.platform.workflowservice.impl.WorkflowServiceImpl.registerWorkFlowDefinition(WorkflowServiceImpl.java:251)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      at oracle.iam.platform.utils.DMSMethodInterceptor.invoke(DMSMethodInterceptor.java:25)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy399.registerWorkFlowDefinition(Unknown Source)
      at oracle.iam.request.impl.ApprovalPolicyManager.checkForWorkflow(ApprovalPolicyManager.java:177)
      at oracle.iam.request.impl.ApprovalPolicyManager.modifyApprovalPolicy(ApprovalPolicyManager.java:267)
      at oracle.iam.request.impl.ApprovalPolicyServiceImpl.modifyApprovalPolicy(ApprovalPolicyServiceImpl.java:24)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      at oracle.iam.platform.utils.DMSMethodInterceptor.invoke(DMSMethodInterceptor.java:25)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy396.modifyApprovalPolicy(Unknown Source)
      at oracle.iam.request.api.ApprovalPolicyServiceEJB.modifyApprovalPolicyx(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
      at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
      at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
      at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
      at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy395.modifyApprovalPolicyx(Unknown Source)
      at oracle.iam.request.api.ApprovalPolicyService_1nib43_ApprovalPolicyServiceRemoteImpl.__WL_invoke(Unknown Source)
      at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
      at oracle.iam.request.api.ApprovalPolicyService_1nib43_ApprovalPolicyServiceRemoteImpl.modifyApprovalPolicyx(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:85)
      at $Proxy228.modifyApprovalPolicyx(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
      at $Proxy393.modifyApprovalPolicyx(Unknown Source)
      at oracle.iam.request.api.ApprovalPolicyServiceDelegate.modifyApprovalPolicy(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      at oracle.iam.platform.utils.DMSMethodInterceptor.invoke(DMSMethodInterceptor.java:25)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy394.modifyApprovalPolicy(Unknown Source)
      at oracle.iam.request.agentry.approval.ModifyActor.perform(ModifyActor.java:622)
      at oracle.iam.consoles.faces.mvc.canonic.Model.perform(Model.java:579)
      at oracle.iam.consoles.faces.mvc.admin.Model.perform(Model.java:326)
      at oracle.iam.consoles.faces.mvc.canonic.Controller.doPerform(Controller.java:257)
      at oracle.iam.consoles.faces.mvc.canonic.Controller.doSelectAction(Controller.java:179)
      at oracle.iam.consoles.faces.event.NavigationListener.processAction(NavigationListener.java:99)
      at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcast(UIXComponentBase.java:675)
      at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:179)
      at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
      at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
      at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
      at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
      at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
      at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
      at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
      at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
      at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
      at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:889)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:379)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:194)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
      at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
      at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
      at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
      at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
      at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
      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:60)
      at oracle.iam.platform.auth.web.OIMAuthContextFilter.doFilter(OIMAuthContextFilter.java:107)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
      at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:179)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
      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:315)
      at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
      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:60)
      at oracle.security.wls.filter.SSOSessionSynchronizationFilter.doFilter(SSOSessionSynchronizationFilter.java:321)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
      at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
      at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3729)
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3695)
      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:2285)
      at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2184)
      at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1459)
      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
      at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    [2013-10-10T11:09:29.668-07:00] [wls_oim1] [ERROR] [] [oracle.iam.platform.utils] [tid: [ACTIVE].ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 0000K6ZZmIR9lZC_zDO5yW1ILiOo00006h,0] [APP: oim#11.1.1.3.0] An error occurred while loading the parent resource bundle oracle.iam.platform.workflowservice.impl.resources.Logging
    [2013-10-10T11:09:29.675-07:00] [wls_oim1] [ERROR] [] [oracle.iam.platform.workflowservice] [tid: [ACTIVE].ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 0000K6ZZmIR9lZC_zDO5yW1ILiOo00006h,0] [APP: oim#11.1.1.3.0] There are no valid definitions with the definition name default/TestApprovalWorkflowProj!2.0
    [2013-10-10T11:09:29.677-07:00] [wls_oim1] [ERROR] [] [oracle.iam.platform.workflowservice] [tid: [ACTIVE].ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 0000K6ZZmIR9lZC_zDO5yW1ILiOo00006h,0] [APP: oim#11.1.1.3.0] Workflow DN default/TestApprovalWorkflowProj!2.0 is invalid
    [2013-10-10T11:09:29.678-07:00] [wls_oim1] [ERROR] [] [oracle.iam.request.impl] [tid: [ACTIVE].ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 0000K6ZZmIR9lZC_zDO5yW1ILiOo00006h,0] [APP: oim#11.1.1.3.0] Auto registration of approval process default/TestApprovalWorkflowProj!2.0 failed while creating policy SelfModify_RL. Register the approval process manually.
    [2013-10-10T11:09:29.680-07:00] [wls_oim1] [ERROR] [] [oracle.iam.request.agentry.approval] [tid: [ACTIVE].ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 0000K6ZZmIR9lZC_zDO5yW1ILiOo00006h,0] [APP: oim#11.1.1.3.0] Exception :[[
    oracle.iam.request.exception.ApprovalPolicyServiceException: Auto registration of approval process default/TestApprovalWorkflowProj!2.0 failed while creating policy SelfModify_RL. Register the approval process manually.
      at oracle.iam.request.impl.ApprovalPolicyManager.checkForWorkflow(ApprovalPolicyManager.java:185)
      at oracle.iam.request.impl.ApprovalPolicyManager.modifyApprovalPolicy(ApprovalPolicyManager.java:267)
      at oracle.iam.request.impl.ApprovalPolicyServiceImpl.modifyApprovalPolicy(ApprovalPolicyServiceImpl.java:24)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      at oracle.iam.platform.utils.DMSMethodInterceptor.invoke(DMSMethodInterceptor.java:25)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy396.modifyApprovalPolicy(Unknown Source)
      at oracle.iam.request.api.ApprovalPolicyServiceEJB.modifyApprovalPolicyx(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
      at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
      at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
      at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
      at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy395.modifyApprovalPolicyx(Unknown Source)
      at oracle.iam.request.api.ApprovalPolicyService_1nib43_ApprovalPolicyServiceRemoteImpl.__WL_invoke(Unknown Source)
      at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
      at oracle.iam.request.api.ApprovalPolicyService_1nib43_ApprovalPolicyServiceRemoteImpl.modifyApprovalPolicyx(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:85)
      at $Proxy228.modifyApprovalPolicyx(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
      at $Proxy393.modifyApprovalPolicyx(Unknown Source)
      at oracle.iam.request.api.ApprovalPolicyServiceDelegate.modifyApprovalPolicy(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      at oracle.iam.platform.utils.DMSMethodInterceptor.invoke(DMSMethodInterceptor.java:25)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy394.modifyApprovalPolicy(Unknown Source)
      at oracle.iam.request.agentry.approval.ModifyActor.perform(ModifyActor.java:622)
      at oracle.iam.consoles.faces.mvc.canonic.Model.perform(Model.java:579)
      at oracle.iam.consoles.faces.mvc.admin.Model.perform(Model.java:326)
      at oracle.iam.consoles.faces.mvc.canonic.Controller.doPerform(Controller.java:257)
      at oracle.iam.consoles.faces.mvc.canonic.Controller.doSelectAction(Controller.java:179)
      at oracle.iam.consoles.faces.event.NavigationListener.processAction(NavigationListener.java:99)
      at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcast(UIXComponentBase.java:675)
      at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:179)
      at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
      at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
      at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
      at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
      at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
      at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
      at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
      at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
      at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
      at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:889)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:379)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:194)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
      at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
      at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
      at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
      at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
      at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
      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:60)
      at oracle.iam.platform.auth.web.OIMAuthContextFilter.doFilter(OIMAuthContextFilter.java:107)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
      at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:179)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
      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:315)
      at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
      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:60)
      at oracle.security.wls.filter.SSOSessionSynchronizationFilter.doFilter(SSOSessionSynchronizationFilter.java:321)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
      at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
      at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3729)
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3695)
      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:2285)
      at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2184)
      at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1459)
      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
      at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused by: oracle.iam.platform.workflowservice.exception.IAMWorkflowException: Registration of workflow default/TestApprovalWorkflowProj!2.0 failed. Following values were passed for registering the workflow: \n(1)Category=Approval \n(2)OperationId=process \n(3)PayloadID=payload \n(4)ProviderType=BPEL \n(5)Service Name=RequestApprovalService \n(6)ListOfTasks=ApprovalTask.\nTry registering the workflow manually using the ant script.
      at oracle.iam.platform.workflowservice.impl.WorkflowServiceImpl.registerWorkFlowDefinition(WorkflowServiceImpl.java:262)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      at oracle.iam.platform.utils.DMSMethodInterceptor.invoke(DMSMethodInterceptor.java:25)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy399.registerWorkFlowDefinition(Unknown Source)
      at oracle.iam.request.impl.ApprovalPolicyManager.checkForWorkflow(ApprovalPolicyManager.java:177)
      ... 128 more

    For this check the OIMFrontEndURL in oim-config.xml and see if your front end url does not have a port. This issue would come up if the port is missing. Even if you are using any load balancer (which is on port 80) in front of OIM, then you can use it as http://lbUrl:80 to fix this issue.
    Basically the OIM code is expecting a port in the oimFrontEndUrl for this to work.
    If you talk to Oracle via SR then you can refer to bug: 16409132 which is fixed in 11gR2PS2
    -Bikash

  • Multiple parallel approval task

    Hi,
    Can anybody tell me how we can acheive multiple approval in OIM?
    I have a requirement where I have to send approval task to multiple approvers and based on each approvers response I have to AD group. Currently I have a request where a user can request for multiple groups and for each group we have to send approval. I am not able to send multiple approval task from one request.
    Thanks in advance,
    Amitesh

    This might help:
    {thread:id=2423034}
    {thread:id=2304343}
    {thread:id=2318652}
    -Bikash

  • Create ADF Task Flow for Human task outside of SOA Composite

    Hi,
    Is there any way you can create ADF Task Flow form (for the task Details to be display in worklistapp) for a Human task out side of the SOA Composite applicaiton?. I know we can create ADF Task flow form for task details based on Human Task in SOA composite application. But I dont want to do that. I dont want to keep any association between Human task and ADF Task Flow.
    If there is a way to do this, How can we assiciate this ADF Task flow form with worklist applicaiton?
    Thanks
    --Sreeny                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    By using these services appropriately:
    http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10224/bp_workflow.htm

  • How to create parallel tasks using parallel for loops

    Hi,
    I am setting up a program that communicates with six logic controllers and has to read the system status every 100 ms. We are using OPC datasockets for this, and they appear a little slow. 
    I have created a uniform comm. method for all controllers, and now I find myself programming this method six times to communicate with each system. I am wondering if this could be done more elegant using the parallel for loop, in which case I would program an exchange once and then have six workers running simultaneously. Since a picture is more clear that a thousand words, what I am asking is this:
    Is it possible to replace something like
    by
    and have this for loop running these tasks in parallel (on different cores / in different threads)?
    I have configured the loop to create 8 instances at compile, so I would have 2 instances surplus available at runtime if I find I need an additional system.
    The benefits of the method show in the second picture to me are:
    * takes less space
    * modifications have to be made only once
    * less blocks, wires and stuff makes it more clear what's going on.
    * flexibility in the actual number of tasks running (8 instances available at runtime)
    * if more tasks are required, I need only to update the maximum number of instances and recompile, i.e. no cutting and pasting required. 
    Unfortunately, I don't have those system available yet, so there's no way to test this. Yet, I would like to know if the above works as I expect - unfortunately the labview help is not completely clear to me on this.
    Best regards,
    Frans 
    Solved!
    Go to Solution.

    Dear mfletcher,
    First of all: thanks for confirming that my intuition was right in this case.
    As for your question on the help: below is a copy/paste from the help on the 'configure parallelism dialog box' 
    Number of generated parallel loop instances—Determines the number of For Loop instances LabVIEW generates at compile time. The Number of generated parallel loop instances should equal the number of logical processors on which you expect the VI to execute. If you plan to distribute the VI to multiple computers, Number of generated parallel loop instances should equal the maximum number of logical processors you expect any of those computers to ever contain. Use the parallel instances terminal on the For Loop to specify how many of the generated instances to use at run time. If you wire a larger number to the parallel instances terminal than you specify in this dialog box, LabVIEW only executes as many loop instances as you specify here.The reason for me doubting if what I programmed would work the way I intended lies in the fact that the help only mentions processors here, which would be interpreted as actual cores. Thus on a dual core machine, the number should be 2.
    I think it would be helpful to mention something about threads here, because in some case one would like to have more parallel threads than there are cores in a system.
    In mu case I would like to create six threads, which on my dual core processor would be spread over only two cores. Then these six threads run in parallel.I know that in case of heavy math that would not help, but since I am doing communications, which have timeouts and such, and that probably runs smoother in six parallel tasks even though I only have two cores. 
    Hope this helps in improving the help of the for loop.
    Regards,
    Frans 

  • Spawning multiple Processes in PL/SQL Block

    Hi All
    Does anyone know if it is possible within PL/SQL block to 'spawn' multiple versions of a procedure as parallel processes.
    What I would like to do is something like
    WHILE x = 'CONTINUE LOOP
    load process1...load process2..load process3.
    I could create a UNIX script to run the procedure as a background process multiple times but I would prefer to use PL/SQL solution if one exists.
    Many thanks inadvance

    Hi Martin,
    you should have a look into the package "dbms_Job". With the routines in this package it is possible to submit the execution of stored procedures by the Oracle job scheduler.
    If you are in 10g you could alternatively use the "dbms_Scheduler" package.
    Have a nice day.
    Björn Hachmann

  • Design Suggestions for Multiple DaqMX Task Streaming App?

    I'm working on a LabVIEW application in which I'm streaming high-speed data to disk from multiple PXI devices simultaneously.  Each device has its own DaqMX task, and all tasks stream to the same file.  The PXI device configuration (which devices are in the chassis, which slots they're in, and which channels to read from each device) is determined at runtime.
    Does anyone have a suggestion for a design model for this?  To make matters worse, I'd like to be able to specify a channel to monitor its data during the streaming.  I'm thinking the Producer-Consumer model is the basic approach, and I'm at the point where I have an array of DaqMX tasks, one for each device.  I could probably extend that array to be an array of clusters containing:
       1) DAQ Command (e.g. Initialize, Start, Stop, Acquire, etc)
       1) Task ID
       2) Control reference to 2-D array (where each DaqMX read can be stored)
       3) Array of channel names (to allow selection of channel to be monitored
    This could be passed as notifier data, to a data collection subVI, but the part I'm struggling with is finding the best way to run X number of tasks in parallel, where X is not known until runtime.
    Any suggestions would be appreciated.

    Thanks for the input.  With regards to the file format, the decision has been made by my superiors not to use TDMS - unfortunate, but NI hasn't provided the information to write a MatLab file reader, which is a requirement.  So, I've created a custom file format tailored to the needs of my application, but generic enough to be used for other apps. With it, I've been able to stream 8 channels at 800KHz (4 channels each from 2 PXI-6120s) without breaking a sweat.  However, the performance varies greatly depending on which slots the cards are in (but that's a whole different discussion - see the PXI forum for that one).  Once NI solves that one, I'll feel a lot more comfortable.
    I have already made reentrant subVIs that can perform a specific DAQ task.  The problem with a for loop is that the VI sits and wait for a start trigger, then acquires the streaming data.  I can't start the next VI because I'm in the first one.  I thought about creating a data collection VI, and this VI would start up to 6 other VIs in parallel, based on how many and which cards were present.  It's a bit messy, because each slot can contain one of two devices, so I'd need to check which type it was before calling it.  I'm thinking I'll have to create the task list and the references to the data in the main GUI loop, and then pass this using a notifier or queue to the data collection loop. 

  • Customizing OIM request or approval task pages

    Hi,
    I need help in changing the layout of a particular screen in OIM 11g R1.  Below is the scenario:
    User submit request.
    Request is assigned to corresponding manager(s).
    If request is assigned to multiple managers, one of the managers will ‘Claim’ the request.
    Manager opens the request details and click on ‘Additional Information’.
    Request is again assigned back to requester.
    Requester will open the request from ‘Approval Task’ to submit additional information to approver.
    In this page, request is divided into two parts i) Basic details, Additional Request details, Request information ii) Role/Request details.
    By default, ‘Additional Request Information’ response section can be completely viewed using scrollbar OR can be dragged down. But our requirement is to align the page such that no adjustment should be made to page to view complete content of the page.  Can anyone let me know how to do this?  I wanted to know in which request/approval task ADF pages files (JSFF) are available to customize. I could see only user page (JSFF) to customize, but not related to request/approval task pages.
    - Kalyan Mutya.

    Pending Tasks works in the following manner:
    - User : Any task assigned to a user remains to be visible under its pending tasks unless re-assigned to someone else by the user/admin.
    - Group : Any task which is assigned to a group would not directly come to the user work flow. Whenever you login to OIM, the system checks all your groups and then do a smart calculation for these assigned tasks. So if the user is removed from a group then it would not see these tasks anymore.
    Now for your case, the Group=Business Owner itself is changed. So for new requests the assignment would be to done to the new group but existing tasks remains in the work-flow of the older group, if still required them you might want to re-assign it using OIM API's.
    Thanks
    Sunny

  • Audition how to process tasks in parallel?

    Hi,
    I've to process some feature leght 5.1 mixes via "Stretch & Pitch process..." It will take up to 3h processing time per conversion but barely utilize my CPU or IO ressources.
    So I'm asking me how to run Audition multiple times and process them in parallel?
    Audition is designed as "Single Document Interface" SDI so it should run multiple times to process multiple tasks in parallel.
    In contrast a MDI "Multiple Document Interface" Application would only run in one instance but would allow to work on multiple projects in parallel.
    Hmm - how to get my work done fast and don't waste the ressouces of my fast workstation?

    Hello,
    Thanks. I am using JSF. I did not see some class that can process the request like in Struts in JSF. I am using Jdeveloper 10.1.3.0.3.
    And I have another question. I am trying to keep the user input,such as inputText1, in the page and change or delete that value in another page. To by pass the upper issue. I have set up the managed bean to be valid in the session such as Backing.Login. How could I access/change the value of the Backing.Login bean in other page's managed bean?
    Thanks,
    James

  • Flexible title for approval task

    Hi,
    my current customer wants all approval tasks to be sent to the approver as well as to all delegates that the approver has specified. This means that the approval task shows up in the todo tab of multiple users. These users now need to be able to find out who actually has to approve such a request in the first place and who received that request only because he has been specified as a delegate.
    In order to implement this, we would need to be able to customize the Display name of a task so that we can display information that is depedent on the request.
    Does any know whether this is possible? I tried to add variable names such as %MSKEYVALUE% to the Display name, but this didn't work.
    Best regards
    Holger

    Hello again,
    the tab u201ETo-Dou201C has  the columns u201CRequest Idu201D, u201CNameu201D, u201CTasksu201D and Date. 
    In my last reply I meant the column u201CNameu201D, because I do not know to add the information of you requirement to the column u201CTasksu201D. From my point of view the column u201CTasksu201D shows always the display name if the approval task.
    So you have to use the column u201CNameu201D like I explained in my last reply.
    If you use a PVO and a Release before 7.1 SP5 I do not know how to fulfill your requirement. This is the reason why SP5 has this feature.
    If you use release 7.1 SP5 use the column u201CNameu201D to show this information.
    I hope this will help.
    Best regards,
    Christoph

  • Flexible Title for Approval Tasks

    Hi,
    my current customer wants all approval tasks to be sent to the approver as well as to all delegates that the approver has specified. This means that the approval task shows up in the todo tab of multiple users. These users now need to be able to find out who actually has to approve such a request in the first place and who received that request only because he has been specified as a delegate.
    In order to implement this, we would need to be able to customize the Display name of a task so that we can display information that is depedent on the request.
    Does any know whether this is possible? I tried to add variable names such as %MSKEYVALUE% to the Display name, but this didn't work.
    Best regards
    Holger

    Hi Holger,
    Is the approval task a User decision step or an actiivity step?
    In any case save the actual approver in a workflow container (say 'Approver'). Now:
    1. If it is a User decision, set the container as parameter 1 in the step. and in the Title put say to be approved by &, where & serves as the place holder for the parameter.
    2. If it is an activity, Pass the worklfow container into the task container of the activity ( Define one task container for this purpose)  and call the container in the work item text.
    I hope this solves your issue.
    Regards,
    Sankar

  • OIM Multiple Approval

    Hi,
    I would like to have multiple approval with this following workflow:
    1) User requests a resource object
    2) The request will appear to Todo-List to the line manager or direct manager of the requester (user requested).
    3) Manager approve or disapprove the request
    4) Once approved, an OIM administrator will have final approval (so this will kick-off my provisioning tasks too)
    How do I achieve this in OIM?
    Thank you very much.

    this has been discussed multiple times please refer to this.
    Re: Approval Process

  • Servlet spawning multiple threads causes server to freeze PC

    I'm attempting to write a servlet which, upon receipt of a particular GET request, spawns a thread to do various work which can then be queried by a different GET request. A third type of GET request stops a specified thread.
    This is working fine, except that I can only seem to have spawned one thread at a time. When I spawn another thread, my entire PC stops responding (even Windows Task Manager becomes so sluggish that I cannot kill the server) , and I have to do a hard reset of my PC. I'm using Sun Java System Application Server. The server logs do not contain any errors. I've tried the NetBeans debugger a bit, and it seems to happen when I call the start() method of the Thread.
    This is my first experience with servlets, as well as my first experience with Sun Java System Application Server. I'm also not a Java expert by any means. I'm sure I'm doing something stupid, but I haven't a clue what.
    I can post my code if necessary, but does anyone have any idea what could be causing the server to stop responding just because a servlet spawns two threads? Should I post my code?
    Sorry if this is a n00b question. Thanks in advance.

    I think you may need to spawn it into HTML frame. Each frame will perform
              and download independently.
              Is it what you need ?
              Siros
              "sam ernie" <[email protected]> wrote in message
              news:[email protected]..
              > Hi,
              >
              > In our application, the content of the main page is being
              > retrieved from different databases. All the requests originiate from
              > one JSP to different databases to retrieve the info. As the JSP
              > processes each of the request sequentailly, there is considerable delay
              > before the contents are displayed to the user.
              >
              > What I want to acheive is spawn multiple threads and display the content
              > to the user in fractions as each thread returns. For eaxmple, if the
              > user has subscribed to three news servers.. I want to be able to
              > display the news from first server to the user without waiting to
              > recieve response from the other two servers.
              >
              > What is the best approach to follow for such requirements ?? Any
              > thoughts on this would be highly appreciated.
              >
              > Thanks,
              >
              > Sam
              >
              

  • Send Email from approval task form

    In my reusable workflow, I have added an approval action. Everything works perfectly. What I want is - When approver comes to approval form, he should be able to send notification email to the initiator (From that form) that he has started working on that document.
    What I have tried - I have added a button clicking on which will submit the form to initiator. 
    But it fails. possible reason - when I create a data connection in workflow's infopath form to submit form as email, I am getting following warning
    "Domain trust form templates cannot be sent as email attachments. to fix this problem, modify the form option to change the security level of form template to restricted".
    I also tried to update status field and wait for it to changes in workflow and send an email from sp designer workflow. it didn't work.
    Please help or suggest any other possible way to achieve this functionality (Send Email from approval task form to initiator).

    Hi mry,
    I could reproduce on my SharePoint 2013 on-premise based on your another
    post.
    Based on the the following article, SharePoint workflow cannot use the InfoPath form in restricted mode which doesn't allow the data connection, but as your image warning message shows sending InfoPath form as mail attachments will need restricted level.
    http://msdn.microsoft.com/en-us/library/office/ee526352.aspx
    You can consider to send a mail to initiator in "Whe a Task Completes" step when you click button approved/rejected, and construct the current task form link format as follow,
    http://sp/_layouts/15/WrkTaskIP.aspx?List=WorkflowTasksListGUID&ID=[%Current Task:ID%]
    Thanks
    Daniel Yang
    TechNet Community Support

Maybe you are looking for

  • Why Does iTunes Make Combining Songs Into a Single Album So Difficult?

    Can anyone explain, or refer me to a website, that explains and lists in a "1,2,3" manner the illogic of the iTunes "get info" panes and why iTunes splits, combines and erases data depending upon what you put in the "get info" area. I have looked at

  • SOS:     Exit for ME51n/ ME52n/ ME53n/

    hello erverybody, at First i would like to implement the exit mm06e007 but i have no idea how to do it!! have someone an example, coding or Tips,... ?? Second Problem : how can I Overwrite the <u>Tapstrips name</u> using exit MEREQ001 ?? please i nee

  • Why arent my photos streaming from my iPhone to my iCloud?

    In addition to the question... there are only 85 pictures in my photo stream on my desktop while there are 729 in my photo stream on my iPhone. And my iCloud in at 4.4 GB used.

  • Batch process crashes

    Batch process crashes in 32 bit CS5 but works fine in 64 bit. Deleted preferences file, ran SFC and CHKDSK.  Performed all computer maintenance. Widows 7 64 bit Quad core Q9300 processor 6 gigs of ram.  Ran MEMTest and reinstalled Photoshop over top

  • Event ID 4724 in field Account Name record ComputerName

    Sometimes, the security event register the computer name and not the username that change password. Somebody know why happen that? An attempt was made to change an account's password. Subject:    Security ID:  WIN-R9H529RIO4Y\Administrator    Account