Calendar Factory

The calendar factory provides access to system-supplied and user-defined business calendars.

Business Calendar

business calendar supports temporal computations based on actual working hours rather than pure elapsed time and takes into account holidays. They are frequently used as the basis for service level agreements, both internal and external.

Calendar Meta-data

Calendar meta-data are used to register a business calendar. The basic calendar factory implementation that comes with OBE reads and stores these data in the configuration file BasicCalendarFactory.xml; entries have the format:
<calendar id="nmtoken" type="nmtoken"? threadsafe="true|false"?>
<display-name .../>?
<author .../>?
<description .../>?
<doc-url .../>?
<impl-class .../>
<impl-ctor-sig>?
<class .../>+
</impl-ctor-sig>
</calendar>
impl-class
The fully qualified Java class name of the implementing class.
impl-ctor-sig
The nested class elements define the signature of the constructor for the specified class.
class
The fully qualified Java class name of the constructor parameter.

XPDL Extension

The calendar is specified by an XPDL ExtendedAttribute with the name 'obe.Calendar' whose value is the ID of the calendar to use. Calendars can be specified at any or all of the following levels, in order of descending precedence: Activity, WorkflowProcess, Package.

The syntax is:
<xpdl:ExtendedAttribute Name="obe.Calendar" Value="nmtoken" />
Value
The calendar ID, used as a lookup key by the factory.
For example:
<Activity Id="respond" Name="Respond to RFP">
<Description>
Respond to the request for proposal within 3 working days as defined by the 'Sales' calendar.
<Description>
<Limit>3D<Limit>
  <Implementation>
<Tool Id="my.createDocument" Type="APPLICATION">
<ActualParameters>
<ActualParameter>'PROPOSAL'</ActualParameter>
<ActualParameter>$ref</ActualParameter>
<ActualParameter>$processInstanceId</ActualParameter>
<ActualParameter>proposalURI</ActualParameter>
</ActualParameters>
</Tool>
<Tool Id="obe.editDocument" Type="APPLICATION">
<ActualParameters>
<ActualParameter>$proposalURI</ActualParameter>
</ActualParameters>
</Tool>
</Implementation>
<Performer>SalesDirector</Performer>
<ExtendedAttributes>
<ExtendedAttribute Name="obe.Calendar" Value="Sales" />
</ExtendedAttributes>
</Activity>