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.