Dear Venkatesh,
Please follow the below procedure to implement the required functionality, please check the attachment for more clarification:
- Create a boolean field in your process context data object, call the field "taskProcessed".
- Create a Parallel Split. The first branch goes to the human activity for which you want to send the reminder. The second branch goes to an Intermediate Timer.
- In the human activity output mapping, set the "taskProcessed" field value to "true".
- In the Intermediate Timer timer configuration, use an expression to set the timer to 30 days before the due date, your expression should look like "subtract-days-from-dateTime(processContext.taskDueDate, 30)".
- After the timer event, create an Exclusive Choice gateway.
- The first alternative condition, should be "processContext.taskProcessed = false", and this alternative is linked to the reminder activity.
- The second alternative condition, should be "processContext.taskProcessed = true", and this alternative is linked to an "End Event" (not Termination).
I hope this would resolve your problem.
Ahmed