Calendar Factory
The calendar
factory provides access to system-supplied and user-defined
business calendars.
Business Calendar
A 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>