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
   257   258   259   260   261   262   263   264   265   266   267