Interactive activity, external task example???

Hi,
I'm trying to search for a simple external task example, however it is totally imposible to find anything ... :(
I would like to make a few questions about it. When you create an external task in a interactive activity, you can specify an URL where the request will be redirected when you click on a external task, but how do you send the information about the specific process you want to work with in the URL? is it possible to pass parameters to this URL ? which is exactly the correct use of the external URL configuration? if I pass the control to an external system, how this system is able to know which BPM process instance to work with?
Regards,
Antonio.

Hi,
I've recently found out that Aqualogic simply sends the information about the process as request parameters to the external system:
taskIn:0
activity:TareaExterna
instanceId:/ExpenseReport#Default-1.0/6/0
participantId:Peter Jones
Very easy, however it is quite frustrating not finding anything about it. I agree with you that it is an upcoming technology, however the documentation of a product should have a minimum of quality, specially coming from an important company as BEA. They offer a functionality and simply do not explain how it works.
In any case, thanks a lot for answering my question!! :)
Best regards,
Antonio.

Similar Messages

  • OEDQ - External Task Example

    Team, can you someone help me on External Task.
    I see Command, Working Directory and Arguments on External Task.
    Header 1
    Header 2
    Command
    java -jar jmxtools.jar runjob -job TestProject -project ABC -u dnadmin localhost:8090
    Working Directory
    \opt\local\software\edq\tools
    Arguments
    I am getting error "....... is not located in one of the designated command areas.
    I tried even specified like below still no luck, someone please help me  with this.. Thanks in advance!!!
    Header 1
    Header 2
    Command
    java -jar jmxtools.jar runjob
    Working Directory
    \opt\local\software\edq\tools
    Arguments
    -job TestProject -project ABC -u dnadmin localhost:8090
    Thanks in advance!

    Hi,
    See the online help section on external tasks - particularly the section regarding security considerations.
    I suggest you put your "java -jar jmxtools.jar ........." command in a batch/file and drop this in the config/commandarea folder. Use the name of the batch file/script as the 'command' parameter of the executable external task.
    regards,
    Nick

  • How to "unget" an instance via Papi from External Interactive activity?

    Using ALBPM5.7, am trying to create a java app to implement an external interactive activity following this general process:
    1. poll for next "gettable" instance in desired process/task (in order of priority, receivedtime)
    2. call Get the instance to reserve it to current user
    3. call prepareExternalActivity for instance to get arguments from FBL
    4. do some work on the instance
    5. call commitExternalActivity to pass args back in to FBL
    I have created something like the following code snippet based sample code from the PAPI docs:
    // get the instance to be worked, assumes previously found the "next" one based on priority/recievedtime to variable ii
    Filter filter = ProcessService.createFilter();
    filter.setSearchScope(new SearchScope(ParticipantScope.ALL, StatusScope.ALL, null));
    filter.addAttribute(VarDefinition.getDefaultVarDefinition(VarDefinition.INSTANCE_NUMBER), Comparison.IS, ii.getInstanceIn());
    InstanceInfo[] instances = new InstanceInfo[0];
    instances = papiSession.getInstancesByFilter( new String[] { processId }, filter );
    if ( instances.length == 0 ) return null;
    Arguments arguments = Arguments.create();
    arguments = session.prepareExternalActivity(instance.getId(), instance.getActivityName(), Arguments.create());
    String info = (String) arguments.getArgument("preArgOut");
    // do some work...
    arguments = Arguments.create();
    arguments.putArgument("comArgIn", info);
    session.commitExternalActivity(instance.getId(), instance.getActivityName(), arguments);
    I have a question, though. If, during the "do some work" step the user cannot finish for any reason, how do I cancel the "get" (or "unget" it) on the instance so that it remains in the same activity for the next user to work?
    Thanks,
    Todd

    More info...
    If I dump the instanceInfo object (converted to xml using the com.thoughtworks.xstream library), I get the xml below. While the Status shows as 1 (=Running), the isExecuting is "false". For this same instance (ii), since there is only one task (TaskIn=0), the call to abortActivity is:
    papiSession.abortActivity(ii.getId(), ii.getActivityName(), 0);
    Which yields the "Instance '/ExtInterTest#Default-1.2/110619/0' is not running." exception.
    I have previously "selected" the instance prior to calling prepareExternalActivity, but at this point instanceCanBeUnselected(ii) is false.
    ...not sure what to try next. Is there possibly some way to raise an exception from the papi client back to the engine that would allow me to abort the activity from within the process flow (e.g. just put it back to available at the ExternalInteractive activity that was not completed)?
    ------------------------ xml dump of instanceInfo object ------------------------
    <fuego.papi.impl.InstanceInfoImpl>
    <instanceIn__d>110619</instanceIn__d>
    <processIn__d>229</processIn__d>
    <threadIn__d>0</threadIn__d>
    <creationTime__d>
    <microSeconds__d>1240499309197000</microSeconds__d>
    </creationTime__d>
    <roleId>Unattended</roleId>
    <HIGH>4</HIGH>
    <HIGHEST>5</HIGHEST>
    <LOW>2</LOW>
    <LOWEST>1</LOWEST>
    <NORMAL>3</NORMAL>
    <activityName__d>Task1</activityName__d>
    <author__d>-1</author__d>
    <cThreads>0</cThreads>
    <description__d>ExtInterTest110619</description__d>
    <externalVariables__d>
    <long>110619</long>
    <string></string>
    </externalVariables__d>
    <internalState__d>12289</internalState__d>
    <isExecuting__d>false</isExecuting__d>
    <nAttachments>0</nAttachments>
    <nNotes>0</nNotes>
    <nThreads__d>0</nThreads__d>
    <numberOfChanges>105</numberOfChanges>
    <parentThreadIn__d>-1</parentThreadIn__d>
    <participantIn__d>0</participantIn__d>
    <pendingTaskIn__d>-1</pendingTaskIn__d>
    <priority__d>3</priority__d>
    <receptionTime__d>
    <microSeconds__d>1240508930000000</microSeconds__d>
    </receptionTime__d>
    <roleIn__d>50000496</roleIn__d>
    <status__d>1</status__d>
    <taskInfo__d>
    <fuego.papi.impl.InstanceInfoImpl_-TaskInfo>
    <participantId__d>unattended</participantId__d>
    <retryCounter__d>0</retryCounter__d>
    <status__d>48</status__d>
    <taskIn__d>0</taskIn__d>
    <valid__d>true</valid__d>
    </fuego.papi.impl.InstanceInfoImpl_-TaskInfo>
    </taskInfo__d>
    </fuego.papi.impl.InstanceInfoImpl>

  • BPM process interactive activity(JSP) - external webservice method interac

    I am using Oracle BPM studio 10.3.1.0.
    I have one external web service published on glassfish application server, I have introspected it in my BPM process using its WSDL.
    Now one of my BPM process interactive activity is there, which is represented by one JSP, I am giving some input to my JSP.
    I want this input to be passed to the web service method as a parameter, and it should fetch the output, so basically I want to invoke the web service method, could you please guide me how to do it?
    Thanks & Regards
    Ashish

    Hy Ashih
    I dont know if this is best way to do that, but I have a similar situation here, and I'm using AJAX do call the webservice method by BPM and retrieve data.
    Something like this:
    1 - Create the XMLHttpRequest() object in your jsp (if you need I have the entire code)
    2 - Create the a JavaScript method for to call the OBPM method in your component
    function mymethod(arg1, arg2, arg3)
    xmlhttp.onreadystatechange=function()
                                                      if( xmlhttp.readyState==4 )
                                                           document.getElementById("AnyDIV").innerHTML = xmlhttp.responseText;
         var resp = "<f:invokeUrl var='YourComponenteName' methodName='YourMethodName'/>";
    //Incude how many args your need here
         resp+="&arg1=" + arg1;
         resp+="&arg2=" + arg2;
         resp+="&arg3=" + arg3;
         xmlhttp.open("POST",resp,true);
         xmlhttp.send(null);
    3 - You'll need a div html tag called "AnyDIV" to receive the BPM answer
    4 - On you BPM component, in YourMethodName method (needs to be ServerSide = no), create two args, the first is httpRequest type (name request), and the second is httpResponse type (name response) (fuego lib)
    5 - Type the code below in your BPM method to send info back to the JSP
    //getting the args
    String arg1 = request.getParameter(string : "arg1");
    String arg2 = request.getParameter(string : "arg2");
    String arg3     = request.getParameter(string : "arg3");
    //Do the webservice call here, prepare the html answer and put it into an string variable
    strReturn = "bla bla bla";
    //Send the anwser back to the jsp
    response.bodyTextContent(arg1 : strReturn);
    Or you can do this using xml answer and deal with the tags with javascript
    that's it

  • Error in external interactive activity redirection from workspace

    I'm not able to configure external interacitve activity in studio 6.0.
    Here what's done:
    -added activity, main task imlementation = external
    -assigned prepare(), commit() methods
    -added new server configuration
    When launching workspace, the > sign on activity in inbox, throws:
    "The task is external and it needs to be invoked through an API call and not through the Classic WorkSpace."
    I should redirect to external server, as promised with studio help:
    "Configuration: you can optionally define an URL. When the task is executed from WorkSpace, WorkSpace redirects the execution to the URL. "
    The same happens if project is deployed to standalone 6.0
    Any solution or exact instuction how to configure external activities for albpm 6.0?

    I'm not able to configure external interacitve activity in studio 6.0.
    Here what's done:
    -added activity, main task imlementation = external
    -assigned prepare(), commit() methods
    -added new server configuration
    When launching workspace, the > sign on activity in inbox, throws:
    "The task is external and it needs to be invoked through an API call and not through the Classic WorkSpace."
    I should redirect to external server, as promised with studio help:
    "Configuration: you can optionally define an URL. When the task is executed from WorkSpace, WorkSpace redirects the execution to the URL. "
    The same happens if project is deployed to standalone 6.0
    Any solution or exact instuction how to configure external activities for albpm 6.0?

  • Unassign a task using Global Interactive activity.

    Hi,
    There is a task assigned to a particular user. I want to unassign that task from Global Interactive activity but it is not working. Steps followed by me are:
    1. Global Interactive activity for unassigning any task at any time from the instance drop down.
    2. A screenflow is called in the Global Interactive activity for unassign.
    3. In the screenflow I have an automatic activity where I have written Participant.next=Participant.Unselect;
    The log message in the automatic activity after the above written code shows participant value is blank. But when it comes out of the screenflow to the main process the participant automatically gets assigned. In the workspace the activity shows that it is still assigned to the user.
    Note: I cannot use OOTB feature of Unassign because I need to show a screen with some reasons for Unassign, so I'm using a screenflow.
    Kindly revert ASAP.

    Hi Yasmin,
    Try executing the code at the process level or use the product feature 'Unassign'.Hope it helps.
    Regards,
    Ritu S.
    Edited by: Ritu Singh on May 17, 2010 1:21 AM
    Edited by: Ritu Singh on May 17, 2010 2:04 AM

  • Configuring Main Task of Interactive Activity to use Portlets

    Hi,
    I currently have a ALBPM implementation where we are using Screenflows in our Main Task of the Interactivity Activity to interact with the user.
    Now we plan to replace the screenflow with portlets as we are implementing the Weblogic Portal Server and would like to have all the UI be developed using portlets.
    Unfortunately we are unable to find any tutorial or guide that can help us with the steps involved with the same. And also who can we test the invocation of the portlets using the ALBPM workspace.
    Regards,
    Kartik

    Hi Ritu,
    I'm guessing you might have logic inside your Interactive activity that looks like this:
    input "Enter the customer id: " : customerName
        using title = "Customer Information",
              buttons = ["Ok", "Cancel"]
        returning selectedButton = selectionAlthough I find "input" and "display" statements useful for initial prototyping and some testing, don't take it beyond that. The problem with these statements is that they tie up a thread as long as someone has the input or displayed dialog up. Quickly you'll run out of threads as people march off to lunch with these dialogs left up on their screens. Instead use Screenflows with either JSPs or BPM Object presentations to render information to end users.
    In direct answer to your question though, if you're using the input statement (again - don't do this in production) be sure to handle the variable that contains the value of the button clicked. The above logic would be changed to the logic shown below to handle the Cancel button being clicked:
    selectedButton as String
    input "Enter the customer id: " : customerName
        using title = "Customer Information",
              buttons = ["Ok", "Cancel"]
        returning selectedButton = selection
    if selectedButton = "Cancel" then
       // action is a predefined variable that is an enumeration used in this case to cancel the user's input
       action = CANCEL
    endHope this helps,
    Dan

  • Optional Task in Interactive Activity usage?

    Hi Gurus,
    BPM version : 10.3.2
    You will be appreciated if some could explain about the optional tasks in the Interactive activity? and how can I execute the same using PAPI?
    Thanks in advance.
    -Narasimha

    Hi Ritu,
    I'm guessing you might have logic inside your Interactive activity that looks like this:
    input "Enter the customer id: " : customerName
        using title = "Customer Information",
              buttons = ["Ok", "Cancel"]
        returning selectedButton = selectionAlthough I find "input" and "display" statements useful for initial prototyping and some testing, don't take it beyond that. The problem with these statements is that they tie up a thread as long as someone has the input or displayed dialog up. Quickly you'll run out of threads as people march off to lunch with these dialogs left up on their screens. Instead use Screenflows with either JSPs or BPM Object presentations to render information to end users.
    In direct answer to your question though, if you're using the input statement (again - don't do this in production) be sure to handle the variable that contains the value of the button clicked. The above logic would be changed to the logic shown below to handle the Cancel button being clicked:
    selectedButton as String
    input "Enter the customer id: " : customerName
        using title = "Customer Information",
              buttons = ["Ok", "Cancel"]
        returning selectedButton = selection
    if selectedButton = "Cancel" then
       // action is a predefined variable that is an enumeration used in this case to cancel the user's input
       action = CANCEL
    endHope this helps,
    Dan

  • External Task - prepared and commit method

    Hey guys,
    I have a problem with External Task. I don't know how make a prepared and commit method for use with J2EE Application Server.
    Anyone have an example?
    tks

    I am having some issue with the Externhal Task prepare and commit method,
    Actually I am ponting the interactive activity to external Task and in the external task i am getting instanceID , participantId and activity as query paramenters.Using those query paramemeters i am initalizing the ProcessServiceSession and then making call to prepareActivate Method as below.
    I am getting query string instnaceId value like " %2FScorecardChallenge%23Default-1.0%2F4%2F0 " .
    And I tried to call the IntsnaceID method InstanceId.getProcessId(instanceId), but this getProcessId method gives Null value.
    Is there any idea why i am getting the Null processID value for the instanceIdString " %2FScorecardChallenge%23Default-1.0%2F4%2F0 ".
    My sampel code looks like below ....
    String instanceId = this.getRequest().getParameter("instanceId");
                   String activity = this.getRequest().getParameter("activity");
                   String participantId = this.getRequest().getParameter("participantId");
                   this.getRequest().setAttribute("activity",activity);
                   this.getRequest().setAttribute("isFromBpm","true");
                   try
                        System.out.println("########### BPM params" + instanceId + " : " + activity + " : " +participantId);
                        ProcessServiceSession bpmSession = ConnectPAPI.createSession(participantId,this.getRequest().getRemoteHost());
                   String pid=InstanceId.getProcessId(instanceId);
                   System.out.println("Process ID value "+ pid);
                   System.out.println("Instance ID value "+ InstanceId.getInstanceId(instanceId));
                   System.out.println("Instance ID value "+ InstanceId.getInstanceIn(instanceId));
                        if(bpmSession != null)
                        {  try{
                                                                               Arguments args = bpmSession.activityPrepare(activity,instanceId,Arguments.create());
                                       Map argument =(Map) args.getArguments();
                                       Iterator it = argument.entrySet().iterator();
                                       while (it.hasNext()) {
                                       Map.Entry pairs = (Map.Entry)it.next();
                                       String key = (String)pairs.getKey();
                                       Object value = pairs.getValue();
                                       System.out.println("########### BPM args" + key + " : " + value + " : " );
    But my problem here is I am getting null pointer exception like below ( I found that null pointer exception is coming because processID ivelue is null).
    Stack Trace is output :
    Process ID value null
    Instance ID value %2FScorecardChallenge%23Default-1.0%2F4%2F0
    Instance ID value -1
    bpmSesssion instance details abstract class fuego.papi.ProcessServiceSesion
    bpmSesssion instance is not null
    java.lang.NullPointerException
         at fuego.directory.DirDeployedProcess.isConsolidatedId(DirDeployedProcess.java:114)
         at fuego.papi.impl.ProcessServiceSessionImpl.getProcessControl(ProcessServiceSessionImpl.java:2328)
         at fuego.papi.impl.ProcessServiceSessionImpl.processGetInstance(ProcessServiceSessionImpl.java:1926)
         at fuego.papi.impl.ProcessServiceSessionImpl.activityPrepare(ProcessServiceSessionImpl.java:1128)
         at com.rollsroyce.gsp.poc.samplePOC.SamplePOCController.begin(SamplePOCController.java:57)
         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:585)
         at org.apache.beehive.netui.pageflow.FlowController.invokeActionMethod(FlowController.java:879)
         at org.apache.beehive.netui.pageflow.FlowController.getActionMethodForward(FlowController.java:809)
         at org.apache.beehive.netui.pageflow.FlowController.internalExecute(FlowController.java:478)
         at org.apache.beehive.netui.pageflow.PageFlowController.internalExecute(PageFlowController.java:306)
         at org.apache.beehive.netui.pageflow.FlowController.execute(FlowController.java:336)
         at org.apache.beehive.netui.pageflow.internal.FlowControllerAction.execute(FlowControllerAction.java:52)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
         at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.access$201(PageFlowRequestProcessor.java:97)
         at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor$ActionRunner.execute(PageFlowRequestProcessor.java:2044)
         at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors$WrapActionInterceptorChain.continueChain(ActionInterceptors.java:64)
         at org.apache.beehive.netui.pageflow.interceptor.action.ActionInterceptor.wrapAction(ActionInterceptor.java:184)
         at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors$WrapActionInterceptorChain.invoke(ActionInterceptors.java:50)
         at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors$WrapActionInterceptorChain.continueChain(ActionInterceptors.java:58)
         at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors.wrapAction(ActionInterceptors.java:87)
         at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processActionPerform(PageFlowRequestProcessor.java:2116)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
         at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processInternal(PageFlowRequestProcessor.java:556)
         at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:853)
         at org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:631)
         at org.apache.beehive.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:158)
         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    Please help me , is any knows the problem.........................................

  • External task and Multiple-join

    In a process, the order of activities is: Begin->interactive activity A -> multiple -> interactive activity B -> Join -> interactive activity C
    This process has 2 instance variable, var1 and var2.
    var1's type is BPMObject
    var2's type is String.
    PBL code in Mulitple is as follow.
    ---------------------------Multiple------------------------------
    participants as Participant[]
    ts as String[]
    ts=var1.selectParticipants;
    v as Int
    v=length(ts)-1
    for i2 in 0..v
    do
         participants(i2)=Participant.find(name : ts(i2))
    end
    for each p in participants do
    copy = clone(this)
    copy.participant.next = p
    copy.var1.voteResult="O"
    end
    The main task type of interactive activity B is set to external.
    The PBL code in the interactive activity B is as follow
    ------------------------interactive activity Prepare--------------------------------------------------------
    var1.voteResult=arg1
    arg2=var1.voteResult
    arg1 and arg2 in this interactive activity are fine.
    Interactive activity B does not have a commit method .
    The PBL code in the Join is below.
    ---------------------------------------------------Join-----------------------------------------------
    var2=var2+"*"+copy.var1.voteResult
    I also try: this.var2=this.var2+"*"+copy.var1.voteResult
    However, it only outputs *
    It only output *. The number of * equals the number of branch.
    The main task of Interactive activity C is an external task.
    This activity only has a very simple prepare method: arg1=var2
    arg 1 is the argument. I just want to see the value of var2. However, the value of var2 is just *
    I cannot get the value of each branch.
    How to get the correct value of each branch?

    I change the value type to Int. Then, it works.
    How to get the value of String type?

  • External Task

    Hi Everyone,
    Have any body used external task for an interactive activity. If any body have samples to call prepareExternalActivity() and commitExternalActivity( ) from a standalone java program please help?
    Thanks

    Hi Nick,
    Thanks for help!
    My bat file runs without any errors from external tasks in EDQ.
    The account has full control on all the shared folders i am using.
    My script:
        set ss_temp_dir=D:\Datanomic\dnDirector\config\landingarea\EDQ_Notification
    echo s1 > log.txt
        set srm_analyzer_path=\\<appsrvr4>\d$\sba81\siebsrvr\BIN
    echo s2 >>log.txt
    COPY /Y \\<appsrvr1>\d$\sba81\siebsrvr\BIN\*.fdr \\qssdvucmgtw301\siebfile\FDR
    COPY /Y \\<appsrvr2>\d$\sba81\siebsrvr\BIN\*.fdr \\qssdvucmgtw301\siebfile\FDR
    COPY /Y \\<appsrvr3>\d$\sba81\siebsrvr\BIN\*.fdr \\qssdvucmgtw301\siebfile\FDR
    :: The above copy is not working from EDQ - no files copied - running the commands from cmd or double clicking the bat works fine for all commands.
    echo s3 >>log.txt
    ::  log s1-s2-s3 created in commandarea.
    setLocal DisableDelayedExpansion
    pushd  \\<sharedloc>\siebfile\FDR\
    setLocal EnableDelayedExpansion
    echo s4 >>log.txt
    for /f "tokens=* delims= " %%G in ('dir/b/od T*.fdr') do (set newest=%%G)
    echo s5 >>log.txt
    copy %newest% %ss_temp_dir%
    echo s6 >>log.txt
    :: log s4-s5-s6 created in   \\<sharedloc>\siebfile\FDR\
      pushd %ss_temp_dir%
    echo s7 >>log.txt
      for %%F in (%ss_temp_dir%\*.fdr) do (
         ::set outfile=%ss_temp_dir%\%%~nF.csv &&
      %srm_analyzer_path%\sarmanalyzer.exe -o %ss_temp_dir%\Snapshot_Working_CSV.csv -x -f %%F
    :: The above saqrm_analyzer is not working from EDQ - no files copied - running the commands from cmd or double clicking the bat works fine for all commands.
    echo s8 >>log.txt
    MOVE /Y %ss_temp_dir%\*.fdr %ss_temp_dir%\BU\
    echo s9 >>log.txt
    :: The above move is not working from EDQ - no files copied - running the commands from cmd or double clicking the bat works fine for all commands.
    ::Log s7-s8-s9 created in %ss_temp_dir%
    Thanks,
    Sid

  • External Tasks

    I'm trying to use the implementation type "External" of interactive activities, but I'm having some difficulties. I don't understand how I make the client, also I don't know how the BPM engine knows whom to call.
    Does anyone have any sample project that can send me?
    Rodrigo Zuchetto

    Hi Rodrigo
    You can follow the following steps
    In BPM
    1. Under External Resource, create a new resource of type 'Server Configuration'. Specify your host, port and the servlet/jsp path.
    2. For the main task of interactive activity, choose implementaion type as 'External'.
    3. Create a prepare and commit method. Prepare method will be called from your servlet, and you can define arguments (as output args) that will be passed from BPM to your external java app
    4. Commit method will be called from your java app, once you are done with the processing. You can define args (as input) here. These args will be set from java app when it calls this commit method.
    In JavaApp
    1. For the servlet you define in step 1 above, define a default handler and initialize a papi session here.
    2. Call activityPrepare on this papisession, and get hold of the variables passed from step 3 above
    3. Do your processing
    4. Call activityCommit on the papisession and pass back the parameters
    HTH

  • Interactive activity deadline without due transitions

    I need to define deadline for all interactive activities. However, I do not want to add due transitions or Connector to every interactive activity. How to set the activity deadline without due transitions?
    Or, I add a due transition / deadline to all interactive activities. If the deadline is reached to any of them, an exception will start.
    Or, if any activity is expired, it should go to a specific activity. How to do that?
    For example, a process has 2 interactive activities, named a1 and a2. The first activity has a method:
    activity as Activity
    activity=Activity("a2")
    t as Time
    t = addSeconds(activity.deadline, i : 20)
    It sets the deadline of a2. However, after it is deployed to BPM standalone 10g, when sending a1, Standalone shows error.
    Sincerely
    Edited by: YE on Jun 5, 2009 4:01 PM

    Hi Ye,
    There is a predefined variable called "deadline" you might want to consider using for this. Instead of having to add due transitions for each activity, if you set the deadline variable to some time in the future, once that time is exceeded the work item instance automatically throws an "InstanceExpiration" exception.
    1) I usually set the deadline variable in the Begin activity in the process to some time in the future. Although you can set it there, it can be changed anywhere in the process if you want the deadline to be different in the next activity. You just need to be sure to set the deadline upstream of the activity.
    2) Add an exception handler to catch the InstanceExpiration exception by:
    a) adding an orphan Interactive activity
    b) if an exception handler does not exist in the process, right mouse click anywhere in the white space of the process -> "Add an exception transition to" -> select the Interactive activity you added in the first step -> click the "Properties" tab -> select the Exception Name combo dropdown and pick "InstanceExpiration" -> click Ok and then Yes.
    c) the logic in the Interactive activity that catches the overdue instances needs at least these statements:
    // reset the deadline so another exception is not immediately thrown
    deadline = 'now' + '2d'
    // code here to do what it is that you want done (e.g. escalate the priority, send someone an email, etc.)
    // now send the instance back to the activity where the deadline expired
    action = BACK Hope this helps,
    Dan

  • Equivalent of Global Interactive Activity in 11g

    Hello,
    Is there an equivalent of Global Interactive (not Global Creation) activity in OBPM 11g? What I intend to do is to be able to have certain stand alone activities in the workflow bounded independently to different taskflows (there taskflows are associated with the business process but not directly linked to it). E.g. Let's say I have a requirement that the 'Manager' role in the workflow should be able to assign the primary process participants to different Line of Businesses based on day to day needs. All I need is a UI to achieve this. But I am also trying to leverage BPM roles so that only 'Managers' are able to see this link in their workspace / worklist and able to access this UI. We have previously implemented this using 'Global Interactive' in 10g. All we did was to place the activity in a manager swimlane and associate a screenflow to it. Trying to understand what 11g has to offer for this requirements.
    Thanks,
    Gaurav

    One of the things that helps end-users train themselves on a process is to present a picture of where a work item instance that they are working on is located in the process. This is commonly referred to as the “you are here” map. In Oracle BPM 10g, this is done like this:
    1.     Add a Global Interactive activity to an abstract role (role with a name).
    2.     Name this new Global activity “You are here”.
    3.     Click Runtime in the left pane and check the "Has instance access" (do not check the checkbox labeled “Use activity for instance presentation").
    4.     Click the OK button.
    5.     Right mouse click this new activity and select Main task from the popup.
    6.     Change the Implementation type to "Show Process Image".
    7.     Click OK.
    8.     Save the project and reload the project.
    9.     Start the WorkSpace again. Log out and relogin.
    10.     On the right side of the inbox, for an existing work item instance click the "Select action" dropdown.
    11.     Click the new "You are here" action.
    12.     Note the red flag above the activity where this work item instance is located in the process.
    Hope this helps,
    Dan

  • Problem with WebService to Create Interaction Activity

    Hi everybody,
    I am currently trying to create a new Interaction Activity using WSNavigator. However, I haven´t managed referencing an existing account. I always get the answer "Enter   Activity partner".  The Interaction Activity can be created, but without an Account.
    Can anybody tell me which information I have to provide in my request to make an account reference or where I can obtain this information? I have already tried out all variations, but nothing has worked so far. Documentation doesn´t provide any information on this.
    This is one example I have tried out (but as I said only one of many).

    The concrete error message is the following:
      <Item>
              <TypeID>119(COM_PARTNER)</TypeID>
              <SeverityCode>3</SeverityCode>
              <Note>Enter   Activity partner</Note>
            </Item>
    What does  "119(COM_PARTNER)" mean?

Maybe you are looking for

  • Globally open and close all accordion panels

    Is there a way to globally open and close all accordion panels? For example, it would be nice to have an "Expand all" and "Collapse all" link at the top of the page, before the accordion, that has this functionality.

  • How do we delete duplicates songs easily and not one at a time in iTunes?

    how do we delete duplicate songs easily and not one by one in iTunes?

  • SQL Plus username and password

    I have downloaded Oracle 10g from a CD I received in my Oracle Developer Book and I can't do any of the chapter assignments, because it is asking me for username and password. I have registered at the oracle website and received a keycode, but it nev

  • Best way to manage multiple users and multiple devices?

    I would like some advice on the best way to manage iTunes and devices synced to it for multiple users -- Here's the scenario: I have 2 grade-school aged kids, who each have an iPod Nano and are going to get my old iPhone 3G to use as an iTouch after

  • Repair runtime c   error in Itunes

    when I updated Itunes, I got a Runtime C++ error and Itunes no longer works. I've unintalled, then reinstalled from the website. Still nothing but the Runtime Error