25
Metastorm BPM® Release 7.6 Database Schema Developer Guide May 2008 Metastorm Inc. email: [email protected] http://www.metastorm.com

Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

  • Upload
    donhu

  • View
    241

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Metastorm BPM® Release 7.6

Database Schema Developer Guide May 2008

Metastorm Inc. email: [email protected]

http://www.metastorm.com

Page 2: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Metastorm BPM Release 7.6

Page ii May 2008 © Metastorm Inc., 2007

Copyrights and Trademarks

© 1996-20078 Metastorm Inc. All Rights Reserved.

Copyright Notice

Metastorm, Metastorm BPM, e-Work, Process Pod and Enterprise Process Advantage are registered trademarks of Metastorm.

Microsoft®, Outlook®, SQL Server™, Windows®, Active Directory®, Visual Basic®, JScript®, SharePoint® and BizTalk® are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

Adobe® is a registered trademark of Adobe Systems, Inc. Netscape® is a registered trademark of Netscape Communications Corporation. Other trademarks are the property of their respective owners.

Disclaimer

Every effort has been made to ensure the accuracy of the features and techniques presented in this publication. However, Metastorm accepts no responsibility, and offers no warranty whether expressed or implied, for the accuracy of this publication. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, recording, or otherwise, without the express written permission of Metastorm, Inc. The information in this document is subject to change without notice.

Metastorm Inc. email: [email protected]

http://www.metastorm.com

Page 3: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Contents

Metastorm BPM Release 7.6 May 2008 Page iii

Metastorm BPM Release 7.6 Database Schema Developer Guide 1 INTRODUCTION..................................................................................................................................................1

1.1 DOCUMENT STRUCTURE.................................................................................................................................1 2 DATA TYPES .........................................................................................................................................................2

3 TABLES ...................................................................................................................................................................3 3.1 PROCEDURE DATA..........................................................................................................................................3

3.1.1 eProcedure Table...............................................................................................................................4 3.1.2 eMap Table.........................................................................................................................................4 3.1.3 eStage Table.......................................................................................................................................5 3.1.4 eAction Table .....................................................................................................................................5 3.1.5 eStart Table ........................................................................................................................................6 3.1.6 eForm Table.......................................................................................................................................6 3.1.7 eField Table........................................................................................................................................7 3.1.8 eRole Table.........................................................................................................................................8 3.1.9 eDatasetDefinition Table...................................................................................................................8 3.1.10 eMapRole Table.................................................................................................................................8 3.1.11 eProcedureLibrary Table ..................................................................................................................9

3.2 FOLDER DATA ................................................................................................................................................9 3.2.1 eFolder Table...................................................................................................................................10 3.2.2 eFolderID Table...............................................................................................................................11 3.2.3 Custom Variable Tables ..................................................................................................................11 3.2.4 eEvent Table.....................................................................................................................................11 3.2.5 eAlert Table......................................................................................................................................11 3.2.6 eAlertGeneratorLock Table.............................................................................................................12 3.2.7 eAlertRequest Table.........................................................................................................................12 3.2.8 eWait Table ......................................................................................................................................13

3.3 SERVICE DATA..............................................................................................................................................14 3.3.1 eServer Table ...................................................................................................................................14 3.3.2 eActiveEngine Table ........................................................................................................................15 3.3.3 eSession Table..................................................................................................................................15 3.3.4 eAttachment Table ...........................................................................................................................16 3.3.5 eDMSLink Table ..............................................................................................................................16 3.3.6 eLog Table........................................................................................................................................16

3.4 FLAG DATA ...................................................................................................................................................17 3.4.1 eRaisedFlag Table ...........................................................................................................................17

3.5 DIRECTORY DATA.........................................................................................................................................17 3.5.1 eUser Table ......................................................................................................................................18 3.5.2 eAssignment Table ...........................................................................................................................18 3.5.3 eAttribute Table................................................................................................................................19 3.5.4 eRelationshipTable Table................................................................................................................19

3.6 MQ DATA......................................................................................................................................................19 3.6.1 eInMQ table .....................................................................................................................................20 3.6.2 eOutMQ table...................................................................................................................................20

3.7 WORKFLOW DATA........................................................................................................................................20 3.7.1 eMSWorkflow Table ........................................................................................................................20 3.7.2 eMSWorkflowDefinition Table........................................................................................................20

Page 4: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Metastorm BPM Release 7.6

Page iv May 2008 © Metastorm Inc., 2007

3.7.3 eMSWorkflowEvent Table............................................................................................................... 21 3.7.4 eMSWorkflowTracking Table ......................................................................................................... 21

Page 5: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Metastorm BPM Release 7.6 May 2008 Page 1

Metastorm BPM Release 7.6 Database Schema Developer Guide

1 INTRODUCTION

This document describes the way in which Metastorm BPM data is stored, and how this information is made available to procedures.

1.1 Document structure

The document describes:

• The data types recognized by Metastorm BPM. It describes how each data type is used, and how it is stored in the various Relational Database Management Systems (RDBMS) certified for use as Metastorm BPM database systems.

• The relational database tables held in any Metastorm BPM database.

Page 6: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Metastorm BPM Release 7.6

Page 2 May 2008 © Metastorm Inc., 2007

2 DATA TYPES

Metastorm BPM supports the data types shown in the following table, mapped into each certified RDBMS:

Metastorm BPM Oracle® Microsoft® SQL Server™

Check NUMBER(1,0) SMALLINT

Integer NUMBER(10,0) INT

Currency NUMBER(19,4) MONEY

Real NUMBER FLOAT

Time DATE DATETIME

ID VARCHAR2 (length) VARCHAR (length)

Text (length, up to 250) NVARCHAR2 (length) NVARCHAR (length)

Memo NCLOB NTEXT

Table 1: Supported Data Types

Metastorm BPM also uses the data types shown in the following table internally:

Metastorm BPM Oracle Microsoft SQL Server

0 to 9 NUMBER (1,0) SMALLINT

option (…) NUMBER (3,0) SMALLINT

Count NUMBER (5,0) SMALLINT

BLOB BLOB IMAGE

Table 2: Internal Data Types

Page 7: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Database Schema Developer Guide

Metastorm BPM Release 7.6 May 2008 Page 3

3 TABLES

This chapter describes the logical structure of the Metastorm BPM database. It is relevant to anyone developing their own reporting and/or administration interfaces, using the industry-standard ADO.NET, ADO/OLEDB, ODBC or JDBC interfaces. It contains one section for each of the following classes of Metastorm BPM data:

• Procedure data. This holds procedure definitions that are written by the Metastorm Designer and read by the Metastorm Process Engine.

Note that in database terms, libraries work in the same way as procedures.

• Folder data. This holds information about individual folders and is maintained and read by the Process Engine. Some information, common to all folders of a particular type, is maintained by the Designer.

• Service data. This holds system configuration parameters, attachment files and event logs and is maintained by the Metastorm Services Manager and the Process Engine.

• Directory data. This information is required by those installations that do not have an existing directory, or do not wish to use the Direct Directory Access capability provided by Version 6 and later.

• Workflow data. This holds information pertaining to Microsoft workflows designed and executed in Metastorm BPM.

3.1 Procedure Data

Procedure data holds procedure definitions, which are written by the Metastorm Designer and read by the Metastorm Engine. It contains an entry for each published:

• Procedure

• Map (a procedure must contain one or more maps)

• Stage (a map must contain one or more stages)

Page 8: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Metastorm BPM Release 7.6

Page 4 May 2008 © Metastorm Inc., 2007

• Action (a stage may provide zero or more actions)

• Start action (any action that can be used to initiate a process)

• Form (a procedure may contain zero or more forms)

• Field (a form may contain zero or more fields)

• Static role (a procedure may contain zero or more static roles)

The following table shows the access rights to procedure data required by each Metastorm BPM application:

Application SELECT INSERT UPDATE DELETE CREATE,

ALTER

Services Manager

Designer Users and Roles

Engine Other software

Table 3: Required Access Rights to Procedure Data

3.1.1 eProcedure Table

eProcedure holds one entry for each published procedure version. eProcedureName and eVersion together uniquely identify a procedure version.

eProcedureName text (31) eVersion integer eProcedureType text (3) xep or xel eProcessOwner text (100) user ID eWorkVersion integer e.g. 6 ePassword text (32) encrypted eLoadedTime time eNotes memo eProcedure BLOB eChecksum text (9)

3.1.2 eMap Table

eMap holds one entry for each map in the most recently published version of a procedure. Two maps cannot have the same name, even if they are defined in different procedures. eMapName uniquely identifies a map definition.

eMapName text (31) eProcedureName text (31) eVersion integer eTableName text (31) custom data eSearchList memo role formula ePrefix text (31) eSubject text (250) text formula

Page 9: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Database Schema Developer Guide

Metastorm BPM Release 7.6 May 2008 Page 5

eSuffixSize 0 to 9 eAdmin check eLoadedTime time eDelegateEvents 0 or 1 Used by Process Events eDelegateEventsBeforeLocal 0 or 1 Used by Process Events

3.1.3 eStage Table

eStage holds one entry for each stage in a map. Two stages in the same map cannot have the same name. eMapName and eStageName together uniquely identify a stage definition.

Any stage whose eLoadedTime does not match that of its enclosing eMapName is out of date. It is not deleted in case it, or any other obsolete stage that might feed into it, still contains folders. The Metastorm BPM Services Manager tool provides a capability to remove obsolete stages when it is safe to do so.

eMapName text (31) eStageName text (31) eStageType option ( 1=User, 2=Group, 3=System, 4=Archive, 5=Subprocedure 6=Map segment) ePriority count eLoadedTime time index eFolderPages text (250) form list eToDoList memo role list formula eTrackList memo role list formula eOnEntry memo operation formula eOnExit memo operation formula

Secondary Indexes

eIX_eStage1 ePriority

eIX_eStage1 may be used to list all stages in a map in the correct order.

3.1.4 eAction Table

eAction holds one entry for each action from a stage, or, if eStageName is empty, for each creation action in a map. Two actions from the same stage cannot have the same name. eMapName, eStageName and eActionName together uniquely identify an action definition.

eMapName text (31) eStageName text (31) eActionName text (31) eActionID count index eActionType option ( 1=User, 2=Timed, 3=Flagged, 4=Conditional, 5=Rendezvous) eDoCopy check clones folders eChain check re-open after commit eRemoveFromToDoList check loopbacks only eFlag text (250) (flag name[ folder ID]) eAfterTime text (250) time formula eUserPage text (250) form name; ? for confirmation dialog only;

Page 10: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Metastorm BPM Release 7.6

Page 6 May 2008 © Metastorm Inc., 2007

! for immediate commit eToStage text (250) stage name formula (null for a loopback that does not modify the to do list, name of the stage for a loopback that re-builds the to do list) eChainedAction text (250) name formula eAlertMessage text (250) text formula eRaiseFlag text (250) flag data formula eUserAccess memo role list formula eRequiredFields memo field list eReadOnlyFields memo field list eHiddenFields memo field list eOnInvoke memo check formula eOnCommit memo operation formula

Secondary Indexes

eIX_eAction1 eActionID

eIX_eAction1 may be used to list all actions from a stage in the correct order.

3.1.5 eStart Table

eStart holds one entry for each initiation (Blank Form) or administration (Admin Form) in an published procedure. eMapName and eActionName together uniquely identify a start definition.

eMapName text (31) eActionName text (31) eFormType text (1) B[lank] or A[dmin] eGroupName text (31) eProcedureName text (31) eUserPage text (250) form name; ? for confirmation dialog only; ! for immediate commit eDescription text (250) eUserAccess memo eLoadedTime time eVersion integer [from eMap]

3.1.6 eForm Table

eForm holds one entry for each form in a published procedure. Two forms in the same procedure cannot have the same name, although (unlike maps) two forms in different procedures may have the same name. eProcedureName and eFormName together uniquely identify a form definition.

eProcedureName text (31) eFormName text (31) eLoadedTime time eLayout memo eUserAccess memo role list formula eOnLoad memo operation formula eOnSave memo operation formula

The following additional columns may also exist in your database. They were required in previous versions for supporting Version 5 clients, but are no longer used, and will be removed in a future release:

eTableName text (31)

Page 11: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Database Schema Developer Guide

Metastorm BPM Release 7.6 May 2008 Page 7

eHeight count pixels eWidth count pixels eExtensions memo client extensions formula

3.1.7 eField Table

eField holds one entry for each field component of a form, and an (image) entry for the form’s background if one is specified. Two fields in the same form cannot have the same eFieldID, and should not have the same name. eProcedureName, eFormName and eFieldID together uniquely identify a field definition.

eProcedureName text (31) eFormName text (31) eFieldID1 count defines load & tab order eFieldName text (63) eDataSet text (31) eTableName text (31) eDependent check eFieldType option ( 1=Rule, 2=Label, 3=Button, 4=Data (no dependants) or clip, 5=Auto (data with dependants) or image, 6=Grid, 7=Status, 8=Dataset) eDataType2 option ( 1=Check, 2=Option, 3=Integer, 4=Real, 5=Time, 6=Edit grid, 7=unused, 8=Text or attachment file) eOptions memo list formula eDataValue memo formula eColumnList memo formula eOnUpdate memo operation formula

The following additional columns may also exist in your database. They were required in previous versions for supporting Version 5 clients, but are no longer used, and will be removed in a future release:

eHasDependants check eLabelAlignment option ( 1=Left, 2=Right, 3=Centered, 4=Top, 5=Bottom) eAttachments option ( 1=Single, 2=Multiple (unused), 3=None) eTop count pixels eHeight count pixels eLeft count pixels eWidth count pixels eRange text (250) eCaption text (250) eHint text (250)

eDelimiter text(1) delimiter for list/combo eExtensions memo client extensions formula

Page 12: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Metastorm BPM Release 7.6

Page 8 May 2008 © Metastorm Inc., 2007

1 eFieldID values are assigned, starting at zero, in the following sequence:

• Form background, if one is specified

• All images and rules, in any order

• All labels, in any order

• All buttons, data fields and grids, in tab order 2 eDataType is only used if eFieldType is 4 (data/clip) or 5 (auto/image).

3.1.8 eRole Table

eRole holds one entry for each Metastorm BPM role (both static and dynamic) defined in each published procedure. This is used to provide Metastorm BPM’s Users and Roles tool with a list of available roles; eProcedureName ensures that when a role is removed from one procedure, it is only removed from the table if it is not used by any other procedure. In previous versions of the product (prior to v7) only static roles would be inserted into this table. The table has been altered to store Dynamic role information so that it may be used for reporting purposes. The eDynamic field has been added to distinguish between the two different types of role. When using the Users and Roles tool you will notice that only static roles will be displayed and are editable.

eRoleName text (31) eProcedureName text (31) eDescription text (100) eFormula memo eDynamic check

3.1.9 eDatasetDefinition Table

eDatasetDefinition holds one entry for each custom list Administration form. The eDatasetName column stores a unique eProcedureName.eFormName value.

eDatasetName text (100) eDataset memo %GetPagedRecordSet eDatasetFilters memo %GetRecordSet or null eDatasetWhere memo eDatasetOrderBy memo eDatasetType memo eDataset XML definition eViewName text (30)

For more information about the Metastorm Web Parts for SharePoint Server refer to the Metastorm Web Parts and Custom List Web Parts sections of the Administration Guide.

3.1.10 eMapRole Table

eMapRole is an intersection table between a Role and the Map in which it is employed. At publish time the Designer will insert a row into this table for every Role used within a Map. The table has an additional optional relationship with eProcedure this will be maintained if the Role being employed is defined within a Library. If the Role is from a Library the Designer will insert the name and version of the Library in which it resides.

Page 13: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Database Schema Developer Guide

Metastorm BPM Release 7.6 May 2008 Page 9

Depending on the DBMS product used either a foreign Key constraint with cascade delete or eRole trigger is defined to maintain referential integrity for the relationship with eRole (Oracle uses a trigger). Triggers have been applied to eMap and eProcedure to maintain referential integrity in their relationships with eMapRole.

The eMapRole table is provided for reporting purposes.

eMapName text(31) eRoleName text(31) eProcedureName text(31) eLibraryName text(31) eLibraryVersion integer

Secondary Indexes

eIX_eMapRole1 eMapName eIX_eMapRole2 eRoleName, eProcedureName eIX_eMapRole3 eLibraryName, eLibraryVersion

3.1.11 eProcedureLibrary Table

eProcedureLibrary is an intersection table between eProcedure containing a procedure record and eProcedure containing a library record. It provides a facility to determine which libraries are employed within a procedure. At publish time the Designer will insert a row into the table for each Library related to the Procedure being published.

The new eProcedureLibrary table has two relationships with eProcedure via eProcedureName and eVersion. One to identifies the Library and the other the Procedure employing the Library. A trigger is present on eProcedure to ensure that corresponding eProcedureLibrary records are removed on deletion of a procedure or library.

The eProcedureLibrary table is provided for reporting purposes.

eProcedureName text(31) eProcedureVersion integer eLibraryName text(31) eLibraryVersion integer

Secondary Indexes

eIX_eProcedureLibrary1 eLibraryName,eLibraryVersion

3.2 Folder Data

Folder data holds information about individual folders, and is chiefly maintained and read by the Metastorm Engine. Some information, common to all folders of a particular type, is maintained by the Metastorm Designer. It contains an entry for each:

• Folder (each stage of each map in each procedure may contain zero or more folders).

• Folder’s custom variables (each map defines its own custom variables table, and each folder stores its values in the appropriate table).

Page 14: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Metastorm BPM Release 7.6

Page 10 May 2008 © Metastorm Inc., 2007

• Event (each folder may have zero or more events in its audit trail).

• Alert (each folder may have zero or more alerts – one for each interested user).

• Wait (each folder may be waiting on zero or more non-user actions; non-folder waits are also held for each flagged creation action).

• Allocated folder ID. (The related table is only used in Microsoft SQL Server database. It provides an automatically incrementing unique row ID, used when generating new folder IDs).

The following table shows the access rights to folder data required by each Metastorm BPM application:

Application SELECT INSERT UPDATE DELETE CREATE,

ALTER

Designer Services Manager

Users and Roles

Engine Other software

Table 4: Required Access Rights to Folder Data

3.2.1 eFolder Table

eFolder holds one entry for each folder, of any type. eFolderID uniquely identifies a folder.

eFolderID text (31) eParent text (31) folder ID eFolderName text (31) eStageName text (31) eMapName text (31) eServerName text (31) service name eCategory text (31) eOriginator text (100) user name eSubject text (250) eArchived check ePriority integer 0 to 9 eActionCount integer eCreationTime time eEntryTime time eUpdated time eDeadline time eActionTime time eActionName text (31) eActionUser text (100) user name eFragmentStack memo stage name stack

Secondary Indexes

eIX_eFolder1 eParent

eIX_eFolder1 may be used to look up all a folder’s sub-folders.

Page 15: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Database Schema Developer Guide

Metastorm BPM Release 7.6 May 2008 Page 11

3.2.2 eFolderID Table

eFolderID is only used in the Microsoft SQL Server database. It holds one entry for each folder, of any type. eFolderID is an automatically generated unique folder ID, in numeric form.

eFolderID integer

3.2.3 Custom Variable Tables

Each map may have its own custom variable table. The table is identified by the map’s eTableName property. Each table holds one row for each folder of that type in the database, and one column for each custom variable. eFolderID uniquely identifies a folder.

Each custom table has an associated folder name suffix generation object. In the case of SQL Server it is a table containing a single auto incrementing column called eFolderNameSuffix. This is used when generating new folder names for folders of the type stored in the custom variable table. The name of this object is the custom variable table name prefixed with seq. For example, a custom variable table name of Flight has an associated table called seqFlight.

For Oracle, the suffix generation object is a sequence. The sequence is assigned the lowercase version of the custom variable table name to which it is associated.

eFolderID text (31) { * custom variable any }

3.2.4 eEvent Table

eEvent holds one event for each action (including creation actions) in the history of each folder. eFolderID and eEventID together uniquely identify each event.

eFolderID text (31) eEventID integer eVersion integer from eProcedure ePriority 0 to 9 from eFolder eEventTime time eEntryTime time only if moving to new stage eDeadline time from eFolder eMapName text (31) eFromStage text (31) stage name eActionName text (31) eToStage text (31) stage name eUserName text (100) eFlagName text (63) eFlagFolder text (31) folder ID eAlertMessage text (250)

eOnInvokeWorkflowBatchID ID (36) eOnCommitWorkflowBatchID ID (36) eNotes memo

3.2.5 eAlert Table

Page 16: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Metastorm BPM Release 7.6

Page 12 May 2008 © Metastorm Inc., 2007

eAlert holds one entry for each folder on each user’s To Do or Watch list. eUserName and eFolderID together uniquely identify each alert. eUserName and eAlertTime are used together to look up all of a user’s alerts that are more recent than a specified time.

eUserName text (100) eFolderID text (31) eMapName text (31) eStageName text (31) eFolderName text (31) eEngineName text(31) eCategory text (31) ePriority 0 to 9 eAlertNr int eAlertTime time eDeadline time eUpdated time eAlertType text (1) !Watch,~delete,<SP>ToDo eSubject text (250) eAlertMessage text (250)

Secondary Indexes

eIX_eAlert1 eUserName, eMapName, eStageName

eIX_eAlert1 may be used to look up all maps and stages for which a user has alerts.

3.2.6 eAlertGeneratorLock Table

eAlertGeneratorLock table is used to ensure that alert processing for a given folder can only be performed by a single alert generator on a Metastorm BPM system at a specific point in time. An alert generator is referenced by an engine name and thread number.

eFolderID text (31) eEngineName text (31) eThreadNo check eAlertNr int eStarted time [default DBMS system time]

Secondary Indexes

eIX_ eAlertGeneratorLock1 eEngineName, eThreadNo

eIX_eAlertGeneratorLock1 is used internally by the MBPM engine.

3.2.7 eAlertRequest Table

eAlertRequest acts as a queue of alert requests, which are used to drive alert generation. Each alert generator on an Metastorm BPM system dequeues an alert request from this table one at a time and makes the necessary updates to the eAlert table.

eFolderID and eAlertNr together uniquely identify each entry.

eFolderID text (31) eAlertNr int eSequenceNo integer automatically generated eAbsolveUser text (100) ePriority count 0 to 9 eUpdated time eDeadline time

Page 17: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Database Schema Developer Guide

Metastorm BPM Release 7.6 May 2008 Page 13

eMapName text (31) eStageName text (31) eFolderName text (31) eSubject text (250) eAlertMessage text (250) eToDoList memo eWatchList memo

Secondary Indexes

eIX_eAlertRequest1 eSequenceNo

3.2.8 eWait Table

eWait holds one entry for each action awaiting a flag or timer. eFlagName, eWaitTime, eFolderID, eMapName and ePriority together uniquely identify each wait.

eSequenceNo integer automatically generated eFlagName text (63) space for a timer eWaitTime time 1/1/1753 00:01:00 for a flag eFolderID text (31) space for a creation eMapName text (31) space for an update eEngineName text (31) [default space] eThreadNo check [default 0] ePriority count index eFlagFolder text (31) folder ID (if specified) eActionName text (31)

eEngineName is used during timer processing. When about to process a timer, an Engine marks it first using this column. This is how contention between different Engines is managed. The ePriority value determines the order in which timers set for the same time are handled.

Note that the primary key for the Oracle database schema is eSequenceNo, eFlagName, eWaitTime, eFolderID, eEngineName, eThreadNo.

Secondary Indexes

eIX_eWait1 eFlagName, eFlagFolder eIX_eWait2 eWaitTime eIX_eWait3 eFolderID eIX_eWait4 (SQL Server only) eFlagName, eWaitTime, eFolderID, eEngineName,

eThreadNo, ePriority

eIX_eWait1 may be used to look up all folders awaiting a particular flag, optionally from a particular folder.

eIX_eWait2 may be used to look up all folders awaiting a particular timer.

eIX_eWait3 may be used to look up (and, typically, delete) all waits for a particular folder.

eIX_eWait4 may be used to look up all flags for a particular map.

Page 18: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Metastorm BPM Release 7.6

Page 14 May 2008 © Metastorm Inc., 2007

3.3 Service Data

Service data holds system configuration parameters, attachment files and event logs. This data is maintained by the Metastorm BPM Services Manager and the Metastorm Engine, and read by the Metastorm Engine. It contains an entry for each:

• Database server (there will only be a single entry for a service, corresponding to the computer hosting that database).

• Active engine (each service may have zero or more active engines at any one time).

• Session (each service may have zero or more current user sessions at any one time).

• Attachment (each folder may hold zero or more attachments; non-folder attachments may also be held for each procedure, and for the service as a whole).

• Exceptions log entry (each of these will identify the responsible procedure, and possibly also the responsible map, stage, action, form, field and/or folder).

The following table shows the access rights to service data required by each Metastorm BPM application:

Application SELECT INSERT UPDATE DELETE CREATE,

ALTER

Designer (publisher)

Services Manager

System Administrator

Users and Roles

Engine Other software

Table 5: Required Access Rights to Service Data

3.3.1 eServer Table

eServer holds one entry which specifies the database type (e.g. Oracle, SQL Server), server-specific timeouts and other service parameters, such as (encrypted) license keys. Any changes made to these parameters will only take effect when an Engine is re-started.

eServerName text (31) [default Metastorm BPM] eDatabaseType text (31) eAlertPollInterval integer seconds eFolderLockTimeout integer minutes [default 60] eSessionTimeout integer minutes [default 60] eKeepAliveInterval integer minutes [default 2] eDeleteDeletionAlerts integer 0 or 1 eDoAlertGeneration integer 0 or 1 eParameters memo XML document

Page 19: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Database Schema Developer Guide

Metastorm BPM Release 7.6 May 2008 Page 15

eGuestUserName text(100) eNotification memo eEventHandlerFunction memo Used by Process Events

eDeleteDeletionAlerts tells the engine whether to store deletion alerts in the eAlert table (0) or to delete them (1). By default this is set to 0.

eDoAlertGeneration tells the Metastorm BPM engine whether or not to do alert generation ie to add alert requests to the eAlertRequest table; and to do alert processing. By default this is set to 1 (indicating that alert generation should be done).

The eKeepAliveInterval is the value which determines how often the Engine updates its eAliveAsOf value in the eActiveEngine table.

eNotification is an expression which is evaluated each time an action is performed, and which can be used as a means to send a notification (e.g. via a call to %ScriptAsync).

eEventHandlerFunction contains the function call that is used by process events. By default this is a call to %ExecuteExtensionEval.

3.3.2 eActiveEngine Table

eActiveEngine holds one entry for each Engine currently active on this service.

eEngineName text (31) eAliveAsOf time [default DBMS system time] eAlertGeneratorConfig text(31) [default on demand] eEventManagerConfig text(31) [default on demand]

The eAliveAsOf column is periodically updated by its Engine, and is used by Metastorm BPM to determine whether service from a particular Engine has been lost.

For more information about the eAlertGeneratorConfig and eEventManagerConfig values refer to the Event Manager and Alert Generator sections of the Administration Guide.

3.3.3 eSession Table

eSession holds one entry for each user currently logged in to this service.

eSessionID text (36) eCallerID text (250) eUserName text (100) eAttributes memo eSessionTimeout integer minutes eLastActivityTime time

Page 20: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Metastorm BPM Release 7.6

Page 16 May 2008 © Metastorm Inc., 2007

3.3.4 eAttachment Table

The Metastorm Engine stores five types of attachment:

• Folder attachments are documents attached to specific folders by users.

• Map attachments are documents specific to a specific map. Examples are server side scripts.

• Procedure attachments are documents specific to a procedure as a whole. Examples are external forms and form images.

• Service attachments are documents common to the service as a whole. Examples are client and server authentication scripts and signature scripts.

• DMS (Document Management System) attachments (links) are stored in the eDMSLink table.

Folder attachments may be retrieved, updated or deleted by end users. Other types of attachment may be retrieved, but not updated or deleted except by the Metastorm Designer (Map and Procedure attachments) or Services Manager (Service attachments).

Each attachment’s key comprises the following tab-separated sub-fields:

• Attachment type – 0 for a folder attachment, 1 for a service attachment, 2 for a map attachment and 3 for a procedure attachment.

• Context – folder ID for a folder attachment, map name for a map attachment, procedure name for a procedure attachment, and empty for a service attachment.

• Name and file extension – by default, attachments are given the same name and extension as the file from which they were created on their originating Client. The extension never changes, and is used by Clients to determine which application to run when the attachment is retrieved. The Engine computer may append a number to the name part, in order to maintain unique names for each attachment within a folder. eKey text (250) eSize integer

eContents BLOB

3.3.5 eDMSLink Table

The eDMSLink Table is used to store links for Document Management System attachments:

DMS attachments are links attached to specific folders by users.

eFolderID text (31) eLinkName text (250)

eLink text (2000)

3.3.6 eLog Table

eLog holds one entry for each occurrence of a procedure definition error or warning detected by the Engine, and one for each publication of a procedure by the Designer.

The table uses an auto-generated numeric primary key, eLogID.

Page 21: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Database Schema Developer Guide

Metastorm BPM Release 7.6 May 2008 Page 17

eLogID integer eTime time eUserName text (100) eProcedureName text (31) eMapName text (31) eStageName text (31) eActionName text (31) eFormName text (31) eFieldName text (63) eComponentType text (31) ePropertyName text (31) eFolderID text (31) eDescription text (250) eDetectedByClass text (250) eDetectedByMethod text (250) ePreEval memo ePostEval memo eDetails memo full exception details

3.4 Flag data

3.4.1 eRaisedFlag Table

The eRaisedFlag table holds one entry for each flag raised.

eSequenceNo integer automatically generated eEngineName text (31) [default space] eThreadNo check [default 0] eFlagName text (63) cannot be null eFlagFolder text (31) folder ID (if specified) eFlagData memo eNextEntry time

3.5 Directory data

Directory data holds information about individual registered users. It is maintained by the Metastorm Users and Roles tool or the Metastorm Directory Extraction process, and is read by the Metastorm Engine. It contains an entry for each:

• Registered user (an Engine computer may support zero or more registered users).

• Static role assignment (a registered user may have zero or more assignments; a static role may be assigned to zero or more registered users).

• Attribute (a registered user may have zero or more attributes, and one or more values for each attribute).

• Custom relationship type (defining a set of two or more extended attributes). Custom relationships are not supported in Metastorm BPM Version 6 or later: however, this table must still be present (although it may be empty).

Each table has an eUpdatedTime column. This is used by the Directory Extraction process for synchronization purposes, and should not be altered by other software.

The following table shows the access rights required, by each application, to directory data:

Page 22: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Metastorm BPM Release 7.6

Page 18 May 2008 © Metastorm Inc., 2007

Application SELECT INSERT UPDATE DELETE CREATE,

ALTER

Services Manager

Designer Users and Roles

Engine Directory Extraction

Other software

Table 6: Required Access Rights to Directory Data

3.5.1 eUser Table

eUser holds one entry for each registered user. eUserName uniquely identifies each user.

eUserName text (100) ePassword text (32) encrypted eReportsTo text (100) user name eDeliverAlertsByEMail check eEmailAddress text (100) eDistinguishedName text (225) eDirectoryTree text (225) eUpdatedTime time

Secondary Indexes

eIX_eUser1 eDistinguishedName,eDirectoryTree eIX_eUser2 eReportsTo

eIX_eUser1 may be used to look up a user with a particular fully distinguished name in an external directory.

eIX_eUser2 may be used to look up all users who report to another user.

3.5.2 eAssignment Table

eAssignment holds one entry for each assignment of a (static) role to a user. eRoleName, eUserName and eFolderID together uniquely identify each assignment. eFolderID is not used, and should always be set to a single space character.

eRoleName text (100) eUserName text (100) eFolderID text (31) eUpdatedTime time

Secondary Indexes

eIX_eAssignment1 eUserName

Page 23: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Database Schema Developer Guide

Metastorm BPM Release 7.6 May 2008 Page 19

eIX_eAssignment1 may be used to look up all static roles held by a user.

3.5.3 eAttribute Table

eAttribute holds one entry for each attribute/value describing a user. A user may have any number of attributes, and may have several values for the same attribute. eUserName, eAttribute and eValue together uniquely identify each row of the table.

eUserName text (100) eAttribute text (31) eValue text (250) eUpdatedTime time

Secondary Indexes

eIX_eAttribute1 eAttribute,eValue

eIX_eAttribute1 may be used to look up all users holding a particular attribute or, optionally, a particular value for an attribute.

3.5.4 eRelationshipTable Table

eRelationshipTable holds one entry for each defined custom relationship table. This table is not used in Version 6, but must be present in order to ensure backward compatibility with Version 5.

eTableName text (31) eCreationTime time eUpdatedTime time

3.6 MQ data

The message queue data holds information about individual message queue definitions. It contains an entry for each registered:

• Incoming message queue.

• Outgoing message queue. Note the message queue definitions should always be modified using the %RegisterXXXX functions

provided. Any direct changes to these tables may not be propagated throughout the system correctly.

The following table shows the access rights required, by each application, to MQ data:

Application SELECT INSERT UPDATE DELETE CREATE,

ALTER

Administrator Designer Users and Roles

Page 24: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Metastorm BPM Release 7.6

Page 20 May 2008 © Metastorm Inc., 2007

Application SELECT INSERT UPDATE DELETE CREATE,

ALTER

Engine Other software

Table 7: Required Access Rights to MQ Data

3.6.1 eInMQ table

eInMQ holds one entry for each incoming message queue that has been registered.

eInQueueName text (100) eQueueSystem text (100) eEworkHost memo eQueueSource text (100) eCredentials memo eAuthenticationProcess text (100) eClientType text (100) eMapName text (31) eStageName text (31) eActionName text (31) eParams memo

3.6.2 eOutMQ table

eOutMQ holds one entry for each outgoing message queue that has been registered.

eOutQueueName text (100) eQueueSystem text (100) eQueueName text (100) eParams memo

3.7 Workflow data

These tables hold information pertaining to Microsoft workflows designed and executed in Metastorm BPM.

3.7.1 eMSWorkflow Table

The eMSWorkflow table holds one entry for each distinct workflow that is published by the Workflow Composer.

eWorkflowName text (256) eWorkflowGuid ID (36)

3.7.2 eMSWorkflowDefinition Table

The eMSWorkflowDefinition table holds one entry for each version of a Microsoft workflow published by the Workflow Composer. This includes the executable definition of the workflow itself, and the project from which it has been generated.

eWorkflowGuid ID (36) eWorkflowName text (256)

Page 25: Metastorm BPM® Release 7 - evolosoft€¦ · Metastorm BPM supports the data types shown in the following table, mapped into each certified ... eHiddenFields memo field list eOnInvoke

Database Schema Developer Guide

Metastorm BPM Release 7.6 May 2008 Page 21

eFileVersion text (256) eFullyQualifiedTypeName text (1024) eFullyQualifiedAssemblyName text (1024) eWorkflowDefinitionType text (1) eRulesDefinitionName text (1024) eLoadedTime time eWorkflowDefinition BLOB eWorkflowProject BLOB

3.7.3 eMSWorkflowEvent Table

The eMSWorkflowEvent table holds an audit trail of Microsoft workflow events that happen to a particular workflow instance.

eSequenceNo integer automatically generated eWorkflowBatchID ID (36) eFolderID text (31) eEventID integer eWorkflowInstance ID (36) eWorkflowLogTime time eTrackingWorkflowEvent text (15) eWorkflowEventState memo

3.7.4 eMSWorkflowTracking Table

The eMSWorkflowTracking table holds an audit trail of Microsoft workflow tracking events for a particular workflow instance.

Note that the eWorkflowBatchID value is used to group tracking information for one or more workflow instances that have been initiated during a particular engine request.

It is possible to set up a join between this table and the eEvent table by using eWorkflowBatchID and eEvent.eOnInvokeWorkflowBatchID and/or eEvent.eOnCommitWorkflowBatchID, so allowing MBPM actions and corresponding Microsoft workflow activity to be seen.

eWorkflowBatchID ID (36) eFolderID text (31) eEventID integer eWorkflowInstance ID (36) eEventOrder integer eActivityType text (255) eAnnotations memo eContextGuid ID (36) eEventDateTime time eExecutionStatus text (15) eParentContextGuid ID (36) eQualifiedName text (255) eTrackingWorkflowEvent text (15) eTrackingEventType text (30) eBody memo eEventArgs memo eUserDataKey text (31) eUserData memo