Attachments across a process instance (11g PS4)

Hi,
Can you please advise how to allow an attachment from one task to be visible in other tasks further into the process ?
(Example: User A produces a report to be seen and approved by user B at a latter phase).
Thanks,

Hi Meni
I am little confused with your question. When User A, attach a file to a Task and this task goes to next UserB. Now this UserB, should be able to see the attachments of UserA. This is by default out of box feature available. For any Task Details page, out of box, you will have Comments and Attachments. These 2 can be seen by any user who works on that Task like other then Initiator, next approval users etc. Infact they get stored in the backend database also for you to verify like in soa_infra schema wfattachment table etc. The only limitation is the next users cannot delete the attachments attached by the previous users due to security permissions. This is valid though.
Also, you can use APIs or Workflows to manually attach files or add comments. Like the initiator, can do some stuff on tasks page, click on a button and behind the screens you can generate a file and attach to the Task automatically.
Thanks
Ravi Jegga

Similar Messages

  • Process Chains across multiple BW instances?

    We're considering to implement a "CIF" (corporate information factory) approach for BW, using mutiple BW layers (staging, storage, analysis, across regions).  It seems to make sense from a performance management perspective.
    However one concern is the administration / monitoring.  
    Can standard BW tools (e.g. process chains, admin cockpit) customized to be used across multiple BW instances (plus ideally OLTP reporting, which we also have)? Or would we end up having to log in to each system individually?  My gut / understanding tells me it is the latter one, but would appreciate any thoughts.
    Thanks!

    Hi Ingo,
    Thanks for the information. I too have same scenario to work out.
    Is there any possibility of automatic Source/server name conversion from system A to System B while copying all the Universes and Queries.
    For Example: In BI we have an option to datasource server name change convention while transporting from one system to another system through out the landscape.
    As you said in your reply, in life cycle manager, do we need to edit connection for each & every universe or any option for one and all universes.
    Any documentation on this is appreciable...
    Please provide me information.
    Thanks in Advance.
    Regards,
    Ravi Kanth

  • How to access biz data of process instances in workspace at any time in 11g

    Hi,
    We are using Oracle BPM Suite 11g.
    Our users want to be able to check and search the business data associated with the process instance at any time (i.e. even after the instance is completed. And the business data should be included in the task list or search result list in the BPM workspace.
    I am new to Oracle BPM 11g. Please help. For the data to be displayed in the workspace, should I define them as “Process Data Objects”?
    Regarding to how to display the data, I find something about Flexfield. But the Oracle document says the Flexfield is for the data that saved in human workflow database schema. When the process instance is completed, will the data in human workflow database for this instance be removed? Can I setup flexfield for the Process Data Objects?

    Hi Ramandeep,
    Apparently I am not getting the required exception.
    I have a TF that outputs an Invalid Region Site when I run it and the when I run it I only got the loading page image of ADF.
    Looking at JDEV logs, I see an Invalid Region Site error
    Here's what I did, I created a TF template with only one view in it like this.
    <?xml version="1.0" encoding="windows-1252" ?>
    <adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
      <task-flow-template id="TFTemplate">
        <default-activity id="__7">errorPage</default-activity>
        <exception-handler id="__14">errorPage</exception-handler>
        <view id="errorPage">
          <page>/com/test/errorPage.jsff</page>
        </view>
        <use-page-fragments/>
      </task-flow-template>
    </adfc-config>My error page as this:
    <af:panelGroupLayout id="pgl1">
         <af:outputText value="Error has occurred!" id="ot2"/>
         <af:outputText value="#{pageFlowScope.MyErrorHandler.stacktrace}" id="ot1"/>
    </af:panelGroupLayout>...and my bean.
    public class MyErrorHandler
      public String getStacktrace() { 
        ControllerContext context = ControllerContext.getInstance();
        ViewPortContext currentRootViewPort = context.getCurrentRootViewPort();
        Exception exceptionData = currentRootViewPort.getExceptionData();
        if (currentRootViewPort.isExceptionPresent())
          if(exceptionData!=null)
            return exceptionData.getMessage();
        return null;
      }But exception data still returns null.
    I exactly wanted to show this invalid region site but it seems I cannot catch it.
    Any idea why?

  • Updating the priority of a process instance in BPMsuite 11g

    Hi all,
    Is it possible to update the priority attribute of a process instance in BPMsuite 11g via the Java-API? As far as i understand, this is true on a task level but not possible on an instance level.
    Thanks

    Hello,
    If your server only accepts one connection at a time then as more requests are made on your jpd process EJBs will be assigned from the free pool to handle the requests and the requests would be implicitly queued. If the EJBs cannot get a connection to the server they will timeout after the transaction timeout interval (or the timeout interval on socket) if they fail to get a connection in that time. You can easily test this by running a few load tests and reducing the transaction or socket timeout.
    If you did hack the DD and set the max beans in pool to one (which is not such a bad idea and worth an experiment but you will have to recompile the bean)I suspect you would get very similar behaviour i.e. the requests would be queued until the EJB instance became free, these requests would also timeout after the transaction timeout if the bean did not become free in time. This would be a little more efficient on resource usage but I don't think there will be any issues with leaving your implemenation as it is.
    Cheers,
    Hoos
    Message was edited by hoos at Feb 17, 2005 4:24 AM

  • BPM 11g- Terminate process instance

    Hi,
    How can I terminate a process instance that could either be sitting in an Human Interactive or a Timer activity.
    TaskService is one solution but I don't want to take that route to achieve this simple requirement. Is there any recommended pattern to implement this.
    I also thought of an event boundary with interuupting event, but not sure what to write there..
    It was easy in Oracle BPm 10G where you could have a Notification Wait with interrupt and that is attached to an "Automatic" activity where we could say:
    this.action=ABORT;
    Thanks
    Raj

    Hi Raj
    1. Terminate means you want to End that Process no matter where it is at any instance of time. Say if I have BPM Process with 10 SwimLanes it can be at any of the Lanes with any User. I am taking simple Example with Human Tasks, but you can apply for other component like Timer servces etc.
    2. I hope you are aware of 2 things specially for Human Tasks: Action named "Withdraw" and a role named "Process Owner". For any human task, under Actions menu you should See a Withdraw option. You can code your application to capture this output using XOR gateway and if outcome is "WITHDRAW" directly end the process and go to End Node. If you have many places like this, there is easy way instead of running wires eveywhere. Create a simple throw even that goes to End Node. And after each human task check outcome if Withdraw, that that error, which will end the process. I hope you got the point.
    b) The reason I mentioned Process Owner is, generally I do NOT give Withdraw control to each User who can work on any Task. If accidentally that User do this action, thats it. The process ENDS and you can never retriive it back. So under .TASK file, I preven Withdraw action to Asssignee and Instead give this action only to OWNER (Process Owner). Process owner is like admin who can pretty much see any tasks and I would give him all the permissions like these Withdraw, Reassing, Suspend etc etc. This gives more controlled power to your application. Anyhow, in bpm workspace, login as process owner and search for any Task aged for long time and jus Withdraw it.
    You can do all the above using APIs also as far as you have Withdraw action going to the End Node.
    If your requirement is something else, ignore above notes. But still you can think along the above lines, if all you want is to Kill a Running Process anytime.
    Thanks
    Ravi Jegga

  • BPM 11g - Abort process instance

    I have a BPMN process that does 3 things:
    1. Calls the third party interface
    2. Starts the Timer proces aynchronously. This timer process is to make sure that the task gets picked up up an admin user (Human Task);if we don't get the response within the agreed time limit.
    3. Awaits the response.
    So, when we get the response back from the backend system, it should do 2 things:
    1. Stop the timer process.This could either be in a waiting state (i.e if the timer hasn't expired) or might have moved to the Human task step.
    2. Notify the awaiting instance so that it is then moved onto the next step in the process.
    I have used correlationId to match the request and response.It is working (with Send/Receive task) and notifying the waiting instance, but I am not sure how to abort the running Timer process.
    Should I use an interrupting event subprocess in my Timer process, that if called should throw an exception. This will then move the Timer process instance to the Exception handling flow and that will lead to the termination of the process instance, or is there a better way to achieve this. TaskService is the other option I thought of, but to achieve this simple thing, I thought that would be an overkill. Is there a re-commended pattern to meet this requirement.
    Thanks
    Raj
    Edited by: user588394 on 21-Feb-2013 09:04

    Hi Raj
    1. Terminate means you want to End that Process no matter where it is at any instance of time. Say if I have BPM Process with 10 SwimLanes it can be at any of the Lanes with any User. I am taking simple Example with Human Tasks, but you can apply for other component like Timer servces etc.
    2. I hope you are aware of 2 things specially for Human Tasks: Action named "Withdraw" and a role named "Process Owner". For any human task, under Actions menu you should See a Withdraw option. You can code your application to capture this output using XOR gateway and if outcome is "WITHDRAW" directly end the process and go to End Node. If you have many places like this, there is easy way instead of running wires eveywhere. Create a simple throw even that goes to End Node. And after each human task check outcome if Withdraw, that that error, which will end the process. I hope you got the point.
    b) The reason I mentioned Process Owner is, generally I do NOT give Withdraw control to each User who can work on any Task. If accidentally that User do this action, thats it. The process ENDS and you can never retriive it back. So under .TASK file, I preven Withdraw action to Asssignee and Instead give this action only to OWNER (Process Owner). Process owner is like admin who can pretty much see any tasks and I would give him all the permissions like these Withdraw, Reassing, Suspend etc etc. This gives more controlled power to your application. Anyhow, in bpm workspace, login as process owner and search for any Task aged for long time and jus Withdraw it.
    You can do all the above using APIs also as far as you have Withdraw action going to the End Node.
    If your requirement is something else, ignore above notes. But still you can think along the above lines, if all you want is to Kill a Running Process anytime.
    Thanks
    Ravi Jegga

  • 11g BPM - Setting instance data of a running process instance

    Hi,
    What is the recommended pattern for interrupting a running process instance and changing an instance variable (data object) ?
    Scenario is:
    - process instance is launched with an interactive to look at the instance data
    - an event is triggered, effectively interrupting the instance and changing the instance data
    - next time the user opens the screen for the interactive the data has changed
    Any help much appreciated.
    cheers
    Tony

    Hi Dan,
    Hope all is good with you. Thanks for the response.
    I am using 11.1.1.6 and have tried a few things, one of which was using an event subprocess and correlations but it didnt change the Data Object as I expected. Maybe I got something wrong and will try again. So you expect the following to work:
    - Create a simple process with one string data object, a correlation and one interactive showing the data object.
    - Map the correlation to an input parameter
    - Set the string data object to some initial value
    - Create an event subprocess of the above in the automatic handler swimlane (starts with a message and ends with nothing)
    - have the implementation of the start message take a string and an id
    - map the id to the correlation
    - map the string to the data object in the subprocess
    - Create the simple process from Enterprise Manager passing in a correlation id
    - View the interactive in the BPM Workspace and see the initial string
    - Use EM to fire the event subprocess passing the same correlation id and a new string
    - View the interactive in the BPM Workspace and see the new string
    so, if you set the data object in the event sub process, it is the same value as the initial instance ? or have I misunderstood ?
    I will give it another go, just checking my understanding...
    cheers
    Tony

  • Canceling a Process Instance in Process Workspace

    Hi
    I need to provide Admin User a functionality to Cancel a process Instance.
    As per the section 4.5 of User's Guide for Oracle Business Process Management 11g Release1 (11.1.1.6.1) E 15175-07, the Process Owner can Cancel the Process Instance from Process Tracking page.
    I tried by mapping the Admin User with ProcessOwner role, but it didn't work. I can see only Alter Flow in the Actions tab.
    Did any one else came across this issue.
    Please let me know if I am missing some thing in here.
    Thanks

    Is the password oc4jadmin's password? Today, I've gotten ServerAuthFactory to work with oc4jadmin's credentials.
    if this is true... in an environment where me as a developer doesn't have the password for oc4jadmin, how can I use this API? Frankly, my system administrator will not give it to me. I had to turn my head away while he typed it into my code, just to test this.
    Is there a list of EJB's I need to get access to for another account other than oc4jadmin?
    Any help would be greatly appreciated.
    Dan

  • How to look for duplicate process instances?

    In Oracle BPM 11g, is there a good way to look for duplicate process instances based on process data attributes? For example, I have entered an instance of a process for 'John Smith' with a date of '4/1/2010' and I want to see if there is another instance in the same process with these same data values to evaluate as a potential duplicate. I believe we can write a java service to invoke the API to do this, but I am wondering if there is a better way within the process design to do this (XPath extension functions or soemthing?). It seems like this would be a common need.

    I am really looking for an approach to looking for duplicate instances within my process flow, not from EM. So, if the user starts a new instance of a process, I can check for another instance that appears to be a duplicate and direct the flow to a human activity to review the potential duplicate and make a decision as to whether to continue processing the new instance or reject it. My guess is that we need to us a service task to invoke java code which uses the API to investigate other instances with the same values. But, I was hoping for a simpler solution....I have to think that this is not too uncommon.

  • How to get process instance activity information

    We have the following need:
    The process instance will be created either manually or by integration from another system. It is not possible to have two instances running for the same process, so we want to check if there is already one instance running for a given process. The business information that identifies the process uniquely are attributes of the process data object.
    We need to find out how to:
    1) check if there is already existing instance for the process giving the business information that identifies it
    2) check if the existing instance is running or is ended/terminated
    We want to know if there is any existing API we may use to achieve the needs above, what are them and where we can find more information of their use.
    We have tried searching in the API documentation what methods could be of use but we were not able to identify by the existing documentation any one that could attend our needs.
    We also didn't find any topic in this forum about it.
    If possible please give us some examples of use.
    Version: Oracle BPM 11g

    Hi,
    In the SOA Suite 11g you can use the Java API together with Composite Sensor to achieve these behavior:
    1. First, create a composite sensor in the operation that create the process composite instance, initializing the sensor with the business information that identifies the process uniquely. This composite sensor can be used to search for the composite instance either on EM or via API. For more information about how to create Composite Sensor, see http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10224/sca_compsensors.htm#insertedID0
    2. Using the Java API (http://download.oracle.com/docs/cd/E14571_01/apirefs.1111/e10659/toc.htm), search for the composite instance by the Composite Sensor, as explained at: http://blogs.oracle.com/soabpm/2009/08/soa_suite_11g_-apipart_3_-_f.html. With a reference to the composite instance, you can check its internal components states.
    The following libs must be imported in your java project:
    - <middleware_home>/oracle_common/modules/oracle.fabriccommon_11.1.1/fabric-common.jar
    - <middleware_home>/oracle_common/soa/modules/oracle.soa.mgmt_11.1.1/soa-infra-mgmt.jar
    - <middleware_home>/wlserver_10.3/server/lib/weblogic.jar
    - <middleware_home>/oss_11gr1/soa/modules/oracle.soa.fabric_11.1.1/oracle-soa-client-api.jar
    - <middleware_home>/oracle_common/webservices/wsclient_extended.jar
    I hope this can help.
    Regards,
    Rafael

  • Generating dynamic Attachments between bpel process activities

    Dear Experts,
    Please suggest me that how to handle dynamic attachments in BPEL process with JDeveloper.
    The requirement was need to send an attachment between activities in same BPEL process
    and not sending an attachment through mail.
    For Instance consider a scenario "Need to issue an appointment order(Activity3) for the candidate if he successfully completed his assigned task(Activity1) and selected(Activity2)".
    Thanks ,
    Rajesh
    Edited by: Rajesh A on Mar 9, 2009 11:30 AM

    Hi Rajesh,
    That's a nice requirement without using the Notification services to send the attachments.
    However, this can be achieved using the workflow service tasks as mentioned in : http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28981/workflow.htm#BABCAIEF
    Using this you can assign, play with attachments via tasks. Hope this helps to some extent!
    Regards
    Anirudh Pucha

  • Read an Attachment attached within a process instance

    Hi
    I am using BPM 11.1.1.6, can someone tell me how do I read and parse an attachment attached within a process instance. Thank you.
    Regards
    Venkat

    Thank Sudipto for the link.
    Experts,
    I used the API as suggested in the first link and managed to iterate through the attachments attached in a process instance but when i am trying to read the attachments using the getInputStream() its returning null, all the other properties of the taskattachment returns correct information. Is this a known bug?? The sample code snippet is as below:
    List attach= task.getAttachment();
    int i=0;
    for (Object obj :attach){
    i=i+1;
    AttachmentType taskAttachment = (AttachmentType)obj;
    System.out.println("Task Attachment " + i + " " + taskAttachment.getName());
    System.out.println(taskAttachment.getMimeType());
    System.out.println(taskAttachment.getSize());
    InputStream inpStream= taskAttachment.getInputStream();
    if (inpStream == null){
    System.out.println("Stream is empty");
    }

  • In-Flight BPEL Process Instances not getting Completed

    Hi,
    I have BPEL P.M. 10.1.3.1.0 running. In BPEL Console I can see few process in
    In-Flight BPEL Process Instances section. But in realty those process should be in completed section. When I login as bpeladmin in worklist application, I see those process are in completed status.
    What can be issue? Any one come across this? Any patch available from metalink to resolve this?
    Need help resolving this issue.
    Regards,
    Jigar

    I see this too sometimes. In my case it's mostly due to the fact that the first activity that takes places after the callback fails. E.g. a transform that fails with a type error.
    Check the bpel domain log file to find any errors in your bpel that's receiving the callback. There's probably something wrong with an assign or transform there.
    The domain logfile can be found @: $ORACLE_HOME/bpel/domains/<your_domain>/logs/domain.log
    HTH,
    Bas

  • Can not view audit trail of BPMN Process instance in Enterprise Manager

    I can not view the audit trail of BPMN Process instance in Enterprise Manager. When I try to click on BPMN process link inside process instance flow trace a NoClassDefFoundError error occurs. How can I fix this?
    ####<Jan 23, 2014 1:44:24 AM MSK> <Error> <oracle.adfinternal.view.faces.config.rich.RegistrationConfigurator> <vm-vtb-04> <AdminServer> <[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <ab53c740f435f6de:-43ee6bbc:143bbd0bbe7:-8000-0000000000000319> <1390427064715> <BEA-000000> <ADF_FACES-60096:Server Exception during PPR, #2
    javax.servlet.ServletException: java.lang.NoClassDefFoundError: oracle/bpm/draw/diagram/ProcessDiagrammer
            at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:342)
            at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.sysman.emSDK.license.LicenseFilter.doFilter(LicenseFilter.java:102)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:131)
            at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:447)
            at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
            at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:447)
            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:57)
            at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.sysman.emas.fwk.MASConnectionFilter.doFilter(MASConnectionFilter.java:41)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:181)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.sysman.eml.app.AuditServletFilter.doFilter(AuditServletFilter.java:183)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:203)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.sysman.core.model.targetauth.EMLangPrefFilter.doFilter(EMLangPrefFilter.java:158)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.sysman.core.app.perf.PerfFilter.doFilter(PerfFilter.java:141)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:542)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
            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:57)
            at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:163)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            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)
    Caused By: java.lang.NoClassDefFoundError: oracle/bpm/draw/diagram/ProcessDiagrammer
            at java.lang.Class.getDeclaredMethods0(Native Method)
            at java.lang.Class.privateGetDeclaredMethods(Class.java:2436)
            at java.lang.Class.privateGetPublicMethods(Class.java:2556)
            at java.lang.Class.getMethods(Class.java:1412)
            at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1284)
            at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1158)
            at java.beans.Introspector.getBeanInfo(Introspector.java:408)
            at java.beans.Introspector.getBeanInfo(Introspector.java:167)
            at javax.el.BeanELResolver$BeanProperties.<init>(BeanELResolver.java:153)
            at javax.el.BeanELResolver.getBeanProperty(BeanELResolver.java:574)
            at javax.el.BeanELResolver.getValue(BeanELResolver.java:281)
            at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:173)
            at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:200)
            at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
            at com.sun.el.parser.AstNot.getValue(AstNot.java:59)
            at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
            at org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:68)
            at oracle.adfinternal.view.faces.renderkit.rich.GoLinkRenderer.getDisabled(GoLinkRenderer.java:506)
            at oracle.adfinternal.view.faces.renderkit.rich.GoLinkRenderer.isDisabled(GoLinkRenderer.java:681)
            at oracle.adfinternal.view.faces.renderkit.rich.GoLinkRenderer.handleInaccessibility(GoLinkRenderer.java:584)
            at oracle.adfinternal.view.faces.renderkit.rich.GoLinkRenderer.encodeAll(GoLinkRenderer.java:131)
            at oracle.adfinternal.view.faces.renderkit.rich.CommandLinkRenderer.encodeAll(CommandLinkRenderer.java:158)
            at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
            at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
            at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
            at oracle.adfinternal.view.faces.renderkit.rich.BreadCrumbsRenderer._renderLink(BreadCrumbsRenderer.java:420)
            at oracle.adfinternal.view.faces.renderkit.rich.BreadCrumbsRenderer._renderNode(BreadCrumbsRenderer.java:322)
            at oracle.adfinternal.view.faces.renderkit.rich.BreadCrumbsRenderer._renderContent(BreadCrumbsRenderer.java:269)
            at oracle.adfinternal.view.faces.renderkit.rich.BreadCrumbsRenderer.encodeAll(BreadCrumbsRenderer.java:162)
            at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
            at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
            at org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:538)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
            at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer._encodeHorizontalChild(PanelGroupLayoutRenderer.java:499)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.access$100(PanelGroupLayoutRenderer.java:30)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:659)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:601)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:170)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
            at oracle.adfinternal.view.faces.taglib.region.IncludeTag$FacetWrapper.processFlattenedChildren(IncludeTag.java:675)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:160)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
            at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:255)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.encodeAll(PanelGroupLayoutRenderer.java:358)
            at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
            at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
            at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer._encodeHorizontalChild(PanelGroupLayoutRenderer.java:499)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.access$100(PanelGroupLayoutRenderer.java:30)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:659)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:601)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:170)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
            at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:255)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.encodeAll(PanelGroupLayoutRenderer.java:358)
            at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
            at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
            at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelBorderLayoutRenderer.renderSideFacet(PanelBorderLayoutRenderer.java:316)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelBorderLayoutRenderer._encodeAllWithSideFacets(PanelBorderLayoutRenderer.java:163)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelBorderLayoutRenderer.encodeAll(PanelBorderLayoutRenderer.java:83)
            at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
            at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
            at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer._encodeChild(PanelGroupLayoutRenderer.java:432)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.access$300(PanelGroupLayoutRenderer.java:30)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:682)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:601)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:170)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
            at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:255)

    Hi Matt
    Till you get exact answer, try indirect approach. I did view page source and could not find the details in the source code. Then I clicked on image to show in new browser and thats when I got this link: You can dig into this imageRenderer.jsp file that can be found in one of the WAR files shown below. Look into EARs also that my have WARs with this jsp. Mostly there should be some sort of Servlet also to display the audit trail. I just checked from bpm/workspace Process Tracking Tab. I did not looked from EM Console tracking tabs though.
    beaHome\Oracle_SOA1\soa\applications\OracleBPMWorkspace.ear has a OracleBPMWorkspace.war file. See if this direction helps
    http://devlinux04:8001/bpm/workspace/jsf/instance/imageRenderer.jsp?imagePath=/tmp/1pLcNmhd77v9XnLCrpNs6dyby3Vzpv4QR1LdPTTf6hpCTp8Fh2KH!-206223496!1302780477267/GraphicalAuditTrail1328100234265306320.png
    Thanks
    Ravi Jegga

  • [OIM 9.1.0.2] Process Instance.Key missing with provisionResource API

    Hi guys,
    I face issue when i provision resource, i checked and it doesn't works because when resource is provisioned ORC_KEY in OIU table is not setted and i don't know why.. Resource is created in "Ready" state.
    This is what i do:
    ResourceData resData = moUserUtility.provisionResource(UserKey, 522);
    String userOiuKey = resData.getOiuKey().toString();
    String userObiKey = resData.getObiKey().toString();
    $logger.debug("provisionUnipassResource - Getting userOiuKey : " + userOiuKey);     
    $logger.debug("provisionUnipassResource - Getting userObiKey : " + userObiKey);     
    //Getting objectKey of userObjectInstanceKey
    String ObjectKey = "";
    String ProcessInstanceKey = "";
    tcResultSet resultSetObjects = moUserUtility.getObjects(UserKey);
    for (int i1 = 0; i1 < resultSetObjects.getRowCount(); i1++) {
    resultSetObjects.goToRow(i1);
    ObjectKey = resultSetObjects.getStringValue("Object Instance.Key");
    ProcessInstanceKey = resultSetObjects.getStringValue("Process Instance.Key");
    if (Long.valueOf(ObjectKey).equals(userObiKey))
    $logger.debug("provisionUnipassResource - ProcessInstanceKey found with value [" + ProcessInstanceKey + "] for ObjectKey [" + ObjectKey + "]");     
    break;
    //Add form datas
    if ("".equals(ProcessInstanceKey)) {
    $logger.debug("provisionUnipassResource - Can't find ProcessInstanceKey");
    return "KO";
    else {
    long LongProcessInstanceKey = Long.valueOf(ProcessInstanceKey);
    moFormInstanceUtility.setProcessFormData(LongProcessInstanceKey, resourcetHash);
    $logger.debug("provisionUnipassResource - Resource has been created");          
    return "OK";
    Is someone can help me? May i do something wrong?
    Thanks in advance for your help
    Edited by: 993041 on 11 mars 2013 05:34
    Edited by: 993041 on 11 mars 2013 05:34

    Hi guys,
    I face issue when i provision resource, i checked and it doesn't works because when resource is provisioned ORC_KEY in OIU table is not setted and i don't know why.. Resource is created in "Ready" state.
    This is what i do:
    ResourceData resData = moUserUtility.provisionResource(UserKey, 522);
    String userOiuKey = resData.getOiuKey().toString();
    String userObiKey = resData.getObiKey().toString();
    $logger.debug("provisionUnipassResource - Getting userOiuKey : " + userOiuKey);     
    $logger.debug("provisionUnipassResource - Getting userObiKey : " + userObiKey);     
    //Getting objectKey of userObjectInstanceKey
    String ObjectKey = "";
    String ProcessInstanceKey = "";
    tcResultSet resultSetObjects = moUserUtility.getObjects(UserKey);
    for (int i1 = 0; i1 < resultSetObjects.getRowCount(); i1++) {
    resultSetObjects.goToRow(i1);
    ObjectKey = resultSetObjects.getStringValue("Object Instance.Key");
    ProcessInstanceKey = resultSetObjects.getStringValue("Process Instance.Key");
    if (Long.valueOf(ObjectKey).equals(userObiKey))
    $logger.debug("provisionUnipassResource - ProcessInstanceKey found with value [" + ProcessInstanceKey + "] for ObjectKey [" + ObjectKey + "]");     
    break;
    //Add form datas
    if ("".equals(ProcessInstanceKey)) {
    $logger.debug("provisionUnipassResource - Can't find ProcessInstanceKey");
    return "KO";
    else {
    long LongProcessInstanceKey = Long.valueOf(ProcessInstanceKey);
    moFormInstanceUtility.setProcessFormData(LongProcessInstanceKey, resourcetHash);
    $logger.debug("provisionUnipassResource - Resource has been created");          
    return "OK";
    Is someone can help me? May i do something wrong?
    Thanks in advance for your help
    Edited by: 993041 on 11 mars 2013 05:34
    Edited by: 993041 on 11 mars 2013 05:34

Maybe you are looking for