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

Similar Messages

  • Deadline for an interactive activity

    In the process, there is an automatic activity (A) before an interactive activity. Please let me know how to set the deadline for the interactive activty through A.
    The requirement is regarding setting up the SLA for an instance for every interactive activity. The instance should be highlighted in red once the SLA is crossed. I know how to customize the workspace for this. I am looking at how to set up the deadline (SLA) through code based on certain conditions.

    If you want the instance to remain in the Interactive activtiy even though the deadline has passed, you might not want to use a Due transition. The Due transition's whole purpose is to fire and have the work item instance flow through it after the time period specified inside the Due transition's property elapses.
    You might want instead want to create a new project variable that represents some time in the future for the work item instance. This would have to be a time variable since an instance sitting in an Interactivity won't be able to indicate that a time period has elapsed except by comparing the current time with the time value you set in the project variable's time variable.
    I'm not sure that the deadline predefined variable is a fit for what you're trying to do. You'd use the deadline predefined time variable to set an SLA for the entire process. Once this time period expires, the engine will fire an exception (an "InstanceExpiration" exception) that would need to get caught by an Exception Handler activity somewhere inside your process.
    When you create a Due transition for an activity, it's a different type of SLA. It sets an SLA for a specific activity (vs. the entire process). You're not going to find much joy in trying to set the predefined variable activity.deadline. This is automatically set by the engine when the engine sees that an activity has a Due transition. The engine sets this time to the time in the future established by the Due transition. This is a read only predefined variable that you won't be able to set. Instead, consider creating and setting a new project time variable I mentioned above that you can check to see if the time has elapsed by comparing it with the current time.
    To make a primitive instance variable (e.g String, Decimal, Time, etc.) available to a JSP, create a BPM Object with attribute(s) corresponding to the instance variables you want passed to the JSP. Prior to the Screenflow's Interactive Component Call task where you present the JSP, you'd just need to set the primitive instance variable(s) to the attributes in the BPM Object.
    Hope this helps,
    Dan

  • Interactive activity with multiple business rule transitions

    I use BPM standalone and studio 10g. I create two business rules.
    Business rule 1: amount greater than 100.
    Business rule 2: amount greater than 300.
    An interactive activity has two business rule transitions and an unconditional transition. This activity is set to auto complete.
    In an instance, I set the amount is 400. Then, the instance goes business rule 1 transition.
    If I set this interactive activity to user select transition, the workspace lists 2 business rule transitions and let me to select one.

    Hi Ye,
    Eduardo brings up a good point. When you have multiple Conditional transitions leaving an activity, you can specify the order in which you want them to be evaluated by right mouse clicking the originating activity -> "Conditional transitions order". This is helpful because, even though several conditional transitions can evaluate as true coming out of a single activity - you still only want the work item instance to flow out of the activity via one of them.
    It would be good if you could do the same thing when you have multiple business rule transitions leaving an activity, but unless this has been fixed on a patch that I'm not currently using - you cannot do this with business rule transitions. Unlike Conditional transitions, when you have multiple business rule transitions coming out of an activity and more than one evaluates as true, you have no control over the sequence you want them to be evaluated.
    Guessing you've already done this, but I believe your options are to:
    1) Avoid having multiple business rule transitions coming out of a single activity or
    2) Do what Eduardo suggests and to make sure that none of the rules overlap (e.g. "amount > 100 && amount < 300") or
    3) Do Eduardo's other suggestion and have a cascading list of Conditional activities. Each Conditional activity has one unconditional transition (going to another Conditional activity) and one business rule transition. If the business rule is true, you're done. If it's not true then you continue to the next Conditional activity which also has an unconditional transition (going to another Conditional activity if you have 3 business rule transitions you wanted to evaluate) and a second business rule transition.
    Dan

  • Two Due Transitions from tlhe same Interactive Activity

    Hi all,
    I am implementing a process where I need to send a notification to the user two times. One after 2 days to approve the task. Second after 4 days send a user another notification saying that u have not approved the task and therefore the ticket is being closed.
    How do I do this using just one interactive activity?

    Hi,
    You might want to consider using a variable in the Due Transition instead of hard coding '2d' or '4d'. This way you have just the one Due transition leaving the activity and it would timeout based on the interval variable. The interval variable would initially need to be set and then later set again after the first due transition fires.
    hth,
    Dan

  • Is the "deadline" variable also set when the Due transition is used ?

    Hi,
    I needed to understand if the 'deadline' variable is also set when the due transition is used. The reason I am asking is because of the following scenario that we saw:
    1. There is a Due transition form an interactive activity to an automatic
    2. The automatic had a Syntax error (typo) in a SQL statement
    3. When the instance reached this automatic... the instance aborted... [process level Exception level handling is not present :( ]
    My first thought was that there was an instanceExpiration exception, but was not certain.
    An leads would be nice...

    1. The exception is seen in the Engine Logs, but the strange thing is that sometimes the Expection is caught within the localized exception block and still manages to bubble up to the process level exception handler...If you have a 'throw ex' in your catch block its supposed to propagate up to the process level... (there is a setting to prevent this...)
    2. I tried adding the throws clause in the catch block to force it to always bubble up to the process level exception handle, this does not always happenThis sounds strange, that it doesn't always happen? Right click on the project, and go to Preferences, in the Processes category, set the Exception Handling to 'Propagate', that should send the error the parent process.
    3. I tried removing the localized catch blocks to always be caught by the process level handler... this also does not happen consistently... The exception is seen in the engine log and the instance goes on its merry wayIf the exception gets caught, (without an additional 'throw') the instance will continue...
    HTH,
    -Kevin

  • Interactive activity with multiple transitions

    I use BPM standalone and studio 10g. I create a business rule transition after an interactive activity. This activity also has an unconditional transition. If the amount is greater than 100, the process instance should go to the business rule transition.
    However, in the real running process, if I set the amount is greater than 100, workspace will list 2 transitions (business rule transition and unconditional transition) path and let the user to select one.
    If I set the amount to less than 100 (such as 10, 20), workspace just shows the unconditional transition.

    Hi Ye,
    Eduardo brings up a good point. When you have multiple Conditional transitions leaving an activity, you can specify the order in which you want them to be evaluated by right mouse clicking the originating activity -> "Conditional transitions order". This is helpful because, even though several conditional transitions can evaluate as true coming out of a single activity - you still only want the work item instance to flow out of the activity via one of them.
    It would be good if you could do the same thing when you have multiple business rule transitions leaving an activity, but unless this has been fixed on a patch that I'm not currently using - you cannot do this with business rule transitions. Unlike Conditional transitions, when you have multiple business rule transitions coming out of an activity and more than one evaluates as true, you have no control over the sequence you want them to be evaluated.
    Guessing you've already done this, but I believe your options are to:
    1) Avoid having multiple business rule transitions coming out of a single activity or
    2) Do what Eduardo suggests and to make sure that none of the rules overlap (e.g. "amount > 100 && amount < 300") or
    3) Do Eduardo's other suggestion and have a cascading list of Conditional activities. Each Conditional activity has one unconditional transition (going to another Conditional activity) and one business rule transition. If the business rule is true, you're done. If it's not true then you continue to the next Conditional activity which also has an unconditional transition (going to another Conditional activity if you have 3 business rule transitions you wanted to evaluate) and a second business rule transition.
    Dan

  • Due transition without unconditional transition

    Hi,
    I noticed, that it is possible to have a process with an activity, which only have a due transition and no unconditional transition as outgoing transition. I thought, this is not allowed (similar to conditional transitions), since the process instance could stall there. Why is it possible anyway?
    Kind regards
    Matthias

    Dan,
    I don't this is a bug. A due transition will always fire when its time is due as opposed to a conditional transition (with no unconditional transition) which will stall the process if the condition is never met as it will be unable to transition away from the current activity. So whilst the process appears stalled, the engine is correctly blocking this instance from transitioning onto the next activity until the configured interval has elapsed (but given enough time it will).
    TP

  • Activity deadline

    I can get activity deadline if I add a due transition to an interactive activity.
    Except for doing that, is there any other method to add activity deadline and reset it to a new time?

    Hi Ye,
    There are two ways you can reset a deadline caused by an Due Transition coming out of an activity.
    1) Wait for the original deadline in the Due transition to fire. This would be the case if you have a Due transition go to another activity (typically an Automatic activity) -> then have the instance go back into the original activity via an unconditional transition. You'd take this approach if you want to alert someone via email that a work item instance needs to be worked on immediately.
    2) Add a Message Wait activity to the process but do not connect it into the process (no transitions going into or out of the activity). Add an Automaitic activity to the process - similarly - do not connect it into the process (no transitions going into or out of the activity). Add an unconditional transition from the Message Wait actiivty to the Automatic activity. Change the Runtime property of the Message Wait activity to have it wait for either an "External" or "Internal event". Also check this activity's "Allows interruptions" property. In the Automatic activity add this one line of logic:
    action = BACK When the work item instance returns back into the activity, the activity deadline (not the process deadline caused by the "deadline" predefined variable) will automatically be recalculated and reset.
    If you use the second approach, you'd need some way to send a notification to the work item instance. You'd use this approach if you want just want to for the deadline for work item instances sitting in an activity to be reset.
    Dan

  • Sending Email after a period using due Transition

    I have a process where for a particular role only I have to send an email 5 minutes after if that particular activity is not executed.
    Everything works fine with me using a DUE transition to send an email and then go back to the activity every 5 minutes.
    But,
    When I click on the activity,it opens up a presentation form. If I keep the presentation form open for more than 5 mins and then click SUBMIT, the activity disappears from the INBOX giving me an error saying that:-
    " The instance is no longer in the activity"
    How do I solve this problem.

    The suggestion to use a Split is the only way I've kept a Due transition from timing out my Interactive activity once it has entered the screenflow too. Inside the Split / Join Circuit there would just be an Interactive activity in one branch and a Notification Wait activity in the other branch. The end user would have no more key clicks with this than they have today.
    Wish I could send you an attachment. If I could, I'd just send you my project that does this. (just send an email to [email protected] if you'd like it - I have no intent to try to sell you anything).
    Here's what I've done in the past to do what you want to do:
    1. Create a Split / Join circuit. In one leg following the Split I have the Interactive activity that invokes the screenflow. In the other leg following the Split, I have a Notification Wait activity. The property setting for this Notification Wait activity is set to be notified by "External" in 5.7 or "Internal" in 6.0. Coming out of the Notification Wait activity I have two transitions. There's an unconditional (transition taken if an end user is in a screenflow) and a Due transition (transition if no end user invokes the screenflow).
    2. For the Interactive activity, I create a screenflow. I pass in the id.id predefined variable into the screenflow and the copy number of the instance reaching the interactive activity. If I know this, from inside the screenflow, I can have as the first task in the screenflow an automatic task that sends a notification to the process's Notification Wait activity. As part of the notification, I send the Notification Wait acitivity the argument that provides a flag (notifiedBySf variable is this flag in the sample code shown below) that indicates that this notification was caused by the screenflow and not the Due transition timing out.
    3. In the Join activity I have the logic:
    if !copy.notifiedBySf then
    logMessage "Not notified by SF"
    action = RELEASE
    else
    logMessage "Notified by SF"
    end
    hth,
    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?

  • Assigning an interactive activity  by excluding a specific participant

    Hi,
    I'm trying to implement an approval process using ALBPM 6.0, and have a problem couldn't solve effectively.
    There is an interactive activity (let's call it actA) assigned to roleA, a second activity(actB) assigned to roleB. actB executed after actA and an unconditional transition placed between them. Both roleA and RoleB have some common participants. The problem is, both activities shouldn't be assigned to the same participant. How can I guarantee that a participant who has assigned to roleA and roleB does not see actB in his inbox if he executed actA?
    Do you have any suggestions or a solution?
    Thanks.

    Here's the logic that does a "round robin" assignment, but excludes a specific participant.
    role as Role = Role.find(name : "Employee")
    parts as Participant[] = role.participants
    indexStored as String = retrievePropertyFor(Fuego.Server,
                                        application : "RoundRobin",
                                        name : "LastParticipantIndex")
    lastIndex as Int
    finished as Bool = false
    excludedParticipant as String = creation.participant.name
    if indexStored = null or indexStored.empty then
        lastIndex = -1
        // we will start from zero
    else
        lastIndex = Int(indexStored)
    end
    while not finished do
        lastIndex = lastIndex + 1
        if lastIndex >= length(parts) then
            lastIndex = 0
        end
        if parts[lastIndex].name != excludedParticipant then
            finished = true
            participant.next = parts[lastIndex]
            logMessage "This instance is assigned to " + participant.name +
                ", lastIndex = " + lastIndex + ", indexStored = " + indexStored
        end
    end
    storePropertyFor Fuego.Server
        using application = "RoundRobin",
              name = "LastParticipantIndex",
              value = String(lastIndex)Hope this helps,
    Dan

  • How to use Time in Due Transition

    Hello All,
    I have a requirement when I have to fire a due transition based on time. lets say midnight of a certain date
    let assume the date is Jan 28, 2010 12:00:00 AM
    how can i do it since the due transition needs an interval and not time.

    If you're on Oracle BPM 10g or an earlier release of ALBPM, there are two ways to do this.
    1. You could set your Due Transition's property set to "Schedule Based" and set it to some time in the future.
    2. You could use logic to determine the time interval. The logic below assumes that you have a time in the future that you want to fire the Due transition on. Ignore the first two lines where I hard coded the date, they are just in there so you can test it. Similarly, do not code yours with the "display" statements - they are just in there so you can test it. A method like this just needs one incoming parameter - a time in the future (the "timeToFireDue" in the logic shown below). If it's a time in the future, then it will return a valid time interval to wait. If it's in the past, you could either set it to "null" to indicate to ignore the due transition or to '0s' as I've done below to cause the due transition to immediately fire when the work item instance reaches the activity. This logic could be either be in a BPM Object method or inside an Automatic activity upstream of the Due transition. Make the Due transition's property setting "IntervalExpression".
    date1 as String = "30-Jun-2010 12:01"
    timeToFireDue as Time = SimpleDateFormat("dd-MMM-yyyy HH:mm").parse(date1)
    timeIntervalToWait as Interval
    // it's in the future
    if timeToFireDue.minutes > 'now'.minutes then
        minutesInFuture as Int = timeToFireDue.minutes - 'now'.minutes
        timeIntervalToWait = Interval(minutesInFuture + "m")
    else
        // it's in the past so fire the due transition
        timeIntervalToWait = '0s'
    end
    minutesInFuture as Int = timeToFireDue.minutes - 'now'.minutes
    display minutesInFuture
    timeIntervalToWait = Interval(minutesInFuture + "m")
    display timeIntervalToWait Dan

  • Is there a way to hide todos without due dates?

    I have gobs of items without due dates.  iCal shows them all!  Is there any way of having it hide those?
    I am able to hide todos that have a due date in the future (past the view date of the calendar), but I cannot find an option for hiding the masses of chores, list items, things to read, etc. that have no dates on them.  Fortunately, they do show up at the bottom of the list, but...
    Also, is there a way to hide todos of medium or low priority?  Again, I'd like to focus my attention on the most pressing items!

    Hi,
    As far as I'm aware there is no way to do this.
    If you'd like Apple to add this as a feature I suggest you send them feedback.
    Best wishes
    John M

  • 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

  • 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.

Maybe you are looking for