Configure Working Hours in K2 blackpearl 4.7: A Strategy

Adding a working hours configuration in the K2 Workspace is trickier than you’d think.

I have a client who has made email reminders across all of his applications a high priority. Yesterday I discovered that the systems so configured were escalating events over the weekend, so people with multiple instances of a process were greeted by as many as ten unread reminder messages when they opened their email Monday morning.

— Nobody needs that.

I did some digging and found there was no working hours configured in K2.

I also found that making one was not as easy as it looks — by the time I got to configuring the third tab, the data on the first two had disappeared! I think I got it right my fourth time through. Here’s how.

The Working Hours Configuration Interface
The Working Hours Configuration Interface

The Working Hours Configuration interface has three tabs, titled Zone Details, Working Hours, and Special & Exception Dates.

The Zone Details tab appears to allow for the assignment of a configuration name, a GMT offset assignment, a description, and assignment of default status. Two important notes here:

  • Particularly if your client has offices in multiple time zones, choose that GMT offset carefully. My client is on the east coast, but has offices all over the U.S.; I chose a GMT offset of -5 (GMT -5), which is presently Central Daylight Time, because that means the New York headquarters is only an hour ahead of the Working Hours range on the next tab, while its Los Angeles office is only two hours behind it.

  • Don’t bother using the description. For some reason, anything I typed in the field earned me a warning about how special characters weren’t allowed — I began to suspect it was upset that I was using spaces between the words. Skipping this field will let you skip some headache.

Working Hours Configuration
Configure the working hours by clicking on black fields to turn them green (see the key at upper right)

The Working Hours tab might vaguely remind you of the field on a Mattel Football game.

No? Only me? *sighs* Okay.

Configure the working hours by clicking on black fields to turn them green (see the key at upper right.) In my case, I chose to select the range of 7:00 AM to 7:30 PM. Remember that this time range coincides with the GMT offset you chose on the previous tab — meaning that the working hours for New York are now 8:00 AM to 8:30 PM, and the working hours for Los Angeles are 5:00 AM to 5:30 PM.

Now seems like a good place to talk about what these working hours actually mean: they’re used to drive escalations. If an escalation is scheduled to occur outside of working hours, the escalation is suppressed until working hours are reached.

Example: Say you have an email escalation for a workflow activity that is set to start after 3 days. This means that if a process instance waits at this activity for 3 days, the escalation would fire, sending the reminder message. Say this process instance gets forwarded to this activity on a Wednesday at 3:00 PM. The instance sits and waits at this activity, and on Saturday at 3:01 PM, the escalation should fire. With no working hours configured, the escalation will fire on schedule on Saturday. But, if you configured working hours to exclude the weekends, the escalation would not fire on Saturday at 3:01 PM, nor on Sunday at 3:01 PM, but would wait until Monday at 3:01 PM, when the user is presumably available to respond.

So, going back to the time range I selected, you can think about the ranges, combined with the GMT offset, as a range of times when the system will trigger escalations as opposed to when it won’t. For the west coast folks, any escalations scheduled between 5:00 AM and 5:30 PM will fire.

One tip about this Working Hours tab: You can set a range of times by clicking your mouse on one field and dragging; the results aren’t perfect, but it’s faster than clicking on each individual half-hour slot.

Special & Exception Dates Configuration
Special & Exception Dates Configuration

Finally, we arrive at the Special & Exception Dates tab. On the left side are Exception Dates, which are dates like holidays which are to be excluded from working hours; on the right side, Special Dates which are to be included in working hours, like conferences that run outside of normal business hours.

Values for both must be manually entered and managed; the special dates as pictured were entered using the interface above them… eventually.

This was the trickiest of all of the tabs to successfully navigate, actually. I saw lots of warnings about special characters and other things. The start time and end time dropdowns won’t reset when you make an entry; you have to be careful about them.

Also, when you add a new date (of either type), the date may appear in YYYY/MM/DD format, but once you save and return to the tab, the dates will be listed in your chosen format (US: DD/MM/YYYY).

My Strategy

I had a heck of a time getting this thing configured from start to finish, so here’s what I recommend:

  1. On the Zone Details tab, set the name and the GMT offset, then check the “Is Default Zone” checkbox, then click SAVE. At this point, a Working Hours Configuration will be created in the name you specified.

    A Working Hours Configuration
    A Working Hours Configuration
  2. Open the configuration and move to the Working Hours tab. Set the range of hours and days for the configuration, then go back to the Zone Details tab and click SAVE.

  3. If you wish to enter any special dates or exception dates, open the configuration again and move to the Special & Exception Dates tab. Make each entry and click the SAVE button after each date you add or remove.