I have BPM project that contain a few human task flow for approval. In every human task flow , I have set the boundary event (timer: interrupting event). I have set it to escalate to other project manager if the time cycle :3 days( 0 Months 3 Days 0:0:0).
Right now, after I set this, every 3 day (include weekend) it will escalate to other project manager. Is there any way that I can do to skip the weekend? That means the calculation only calculate working days.
I know the timer have an option to use expression. How can I use the expression to calculate working day?
I haven't had the need yet to skip non-working days, but here's how I'd approach it.
I would not use a boundary timer event for this escalation. Instead, first set up a calendar using the Workspace that does not include weekends as working days. Next, open the human task associated with the Interactive activity -> click the "Deadlines" tab -> check the checkbox in the upper right corner that says "Base Expiration on Business Calendar" -> for the "Task Durations Settings" dropdown, select "Escalate after" -> click the dropdown below it and change this to "By Expression" -> click the XPath expression builder to the right of the field -> from the dropdown under "Functions" select "BPM Functions".
This is where it gets a bit tricky. I'd look at the "getAbsoluteDurationFromBusinessCalendar()" method first.
Hope this gets you going,
The answer from Dan Atwood seems a good tip.
But I'd like just to complement the idea: here in my company we don't use the calendar feature of BPM Workspace because we already have this kind of control in other system outside Oracle BPM. So we built a Java webservice that receives the amount in working hours for the deadline, and this webservice returns the corresponding date considering weekends, holidays, etc.In our processes we call this webservice before the task, to retrieve the deadline date first.