We have a Life Cycle rule which verify user in every 75 days (QEV). I made an operation workflow for this LCR. In this operation workflow there are two levels of approval of supervisor and supervisor of supervisor. In each approval node there are 5 days of escalation limit.

Now suppose LCR has started for certain user and it is pending at first level approval. In this case we want to notify user’s supervisor daily to approve or reject this request until he does so or escalation time out happened. Same we want if a user is waiting at second level approval.

For this case we built a solution. We added an extra attribute to person called “userVerificationStatus”. Now when the LCR started for a user we make the value of this attribute to “QEVSTARTED”. After First Level approval we change it to “QEVSUPAPPROVED” and after completion of both the approval I change it to “QEVVERIFIED”. Now we can use this attribute value to send daily notification to supervisor and supervisor of supervisor. If the value of the attribute is QEVSTARTED we send notification to user supervisor and if it is QEVSUPAPPROVED we send notification to Supervisor of supervisor every day to take immediate action until they take action or until escalation happened.For this reason we built another LCR which use filter (|(userVerificationStatus=”QEVSTARTED”)(userVerificationStatus=QEVSUPAPPROVED)) and send mail notification accordingly.

Now if you see the workflow screen shot when we change the attribute value every time, we run a modify user extension workflow before the approval node.

Some times for any system reason though the approval node failed but the value of the userVerificationStatus attribute already changed and started to send notification.But when the supervisor or the supervisor of supervisor checks there My Activities they can not see any approval.

Please let me know any other better way to perform Quarterly User Verification. Also let me know how to send every day notification to approver.

After every approval we have three transition line

  1. For Approval: activity.resultSummary==activity.APPROVED
  2. For Rejection: activity.resultSummary==activity.REJECTED
  3. For TIMEOUT : (activity.resultSummary!=activity.APPROVED) & (activity.resultSummary!=activity.REJECTED)

In time out I also tried activity.resultSummary==activity.TIMEOUT.There is a suspension extension after time out which makes the user suspended state on time out.

If I use the code “activity.resultSummary==activity.TIMEOUT” for time out in transition line the remaining suspension extension is not executing even the workflow ended. In normal condition the code “(activity.resultSummary!=activity.APPROVED) & (activity.resultSummary!=activity.REJECTED)” for time out is working fine but want to know if any better solution.

Please help me to find solution on both the above mentioned cases.