Page 262 -
P. 262
256 M. Adams
TaskInstance: Each task instance is assigned a unique identifier (TaskInstan-
ceID) and the “caseID” of the task instance (EngineInstanceID). There is also a
foreign key reference to the Task table record from which this instance was cre-
ated. Note that the task instance stored in this table may represent a work item
(for atomic tasks) or to a subprocess (for composite tasks), in which case it will
also be recorded in the NetInstance table. There are also foreign keys to the net
of which this task is a member (ParentNetInstanceID) and, for child work items,
to its parent (ParentTaskInstanceID)
Service: A loggable event may be instigated by a Custom Service. A record of
each service that has communicated with the Engine is kept in this table; each
record of the Event table has a foreign key relation to this table
Event: The Event table is arguably the key table in the process logging database,
as it records all events for all runtime instances, whether task or net instances.
Each record contains a unique identifier, a reference to the task or net instance, a
timestamp of when the event occurred, and the type of event. For a net instance,
the event types will include starting, completing and canceling, and updating of
values of any net-level data parameters; for a task instance, the event types will
include any of the work item statuses described in Sect. 9.5 and any event that
updates the value of a work item-level data parameter. Each event may also have
a number of configurable data entries (see Sect. 9.7.2). A foreign key reference to
the instigating Custom Service is included, as is the key of the root net instance,
for querying convenience
DataItem: For all events that modify a data parameter’s value, or include config-
ured data entries, a record is written to the DataItem table. Each record contains
a unique identifier, and the item’s name, data type, and value. There are also two
foreign key references, one to the identifier of the event that contained the data
item, and one to the DataType table
DataType: All entries in the DataItem table must refer to a certain data type.
While some are simple types (e.g., string, integer, boolean) others will refer to
complex data type definitions, which may change over time. To accommodate
this, each data type definition is stored in the DataType table, and consists of a
unique identifier, a name, and a definition
9.7.2 Configurable Logging
Configurable logging refers to the facility for custom services and applications to
append user-defined data attributes and values to events for logging purposes. Such
data items may contain descriptive information pertinent to all events (such as the
resource that triggered the event, e.g., who started a case) or may refer to particular
needs for particular processes (e.g., temperature readings, associated costs and so
on). In any case, the facility is provided to allow process designers and custom
services to store data associated with processes as desired, without the Engine being
aware of what the data actually represents. That is, it is a facility to store data items