Skip to main content

Hi there,


I am using InfoPath and require an approval process to resemble the following:


I require approval of a form located in a task list from 'user1'. If this user doesn't approve this within a given time then an email is sent to 'user2' with a link to the task item, asking them to approve it. If this is not approved within a given time, then an email is sent to and administrator informaing them of the delay.


The problems I'm having are as follows: 


I have put both 'user1' and 'user2' in the destination rule, but this creates 2 task list items when ideally I only want to have 1 that is accessible by both users.


I don't seem to be able to post a link to the task list item within email escalations.


I have read about creating a new 'redirect' escalation rule (through tools - templates), which sounds like it could hold the key, but in order to set it up I need K2Escalations.dll, but can't find it anywhere. I have SP2 installed, but I cannot locate it.


Any help on how to get this 'redirect' escalation rule working or another way around the issue mentioned above, would be much appreciated.


Many thanks.

Hi Faccenda,


You've got a couple things you'll need to do to get this working just as you described.  First be aware that the redirect escalation template does not send emails to either the user who previously owned the task or the person who now owns the task.  What it does it does do is simply shift ownership from a database perspective and the task will now show up on the new person's (user2) task list.  If the send of an email is a fast requirement than what you can do is setup multiple possible destination within the destination rule for your activity.  Than place a condition around each of destinations so that only one of your three (user1, user2, Admin) destinations can be activated.  (First, see how to create multiple destinations for an activity) Note that the image shows only two destinations, to create a third you would right click anywhere in the white space on the right and select "Create New Destination".  Now for your conditions as mentioned before, what you'll need is a process level DataField to hold an integer counter value and you'll need to increment this counter each time you leave this activity. 


Now that you have an integrer counter ready for use, three possible destinations setup and some activities that need to be wired correctly do the following.  Create a line that leaves the activity in question (with the three destinations) and loop back to itself (creating a U turn looking line).  Now this line needs a line rule.  The line rule here is that some process level datafield or activitylevel datafield in not equal to something; like, "Approved", Accepted", or "Work Complete". Once you've got that rule behind the line open the properties for the line and click to edit the code for the line.  Mindful not to change any of the code generated by the previous step we need to increment the counter field, K2.ProcessInstance.DataFieldsc"Counter"].Value = ++;  If you set your counters default value to start at 1 than the rule on your first destination (user1) would be counter = 1. The rule for your second destination is that Counter = 2, and so on.


Next you mentioned that you wanted user1 and user2 to both see the task but only allow one person to action the item.  This is completely different funtionality than what is mentioned above so you'll need to take your pick or find a middle ground that works for your solution.  In order to complete this you simply need to open the properties for the activity and on the left pane ensure "Activity General" is selection.  Now "Limit the number of slots to" 1.  This creates the concept of a shared task for all destination users of the activity.


Also, please download the components Blake mentioned to get your environment up to date.


-mike


Reply