2024 April Release

Class COOWF@1.1:ProcessDefinition Permanent link for this heading

This object class is used to define process templates for a workflow process. A process definition is a predefined process which can be used to initialize a process instance (a workflow, that is executed). It consists of a sequence of activity definitions, CASE switches, IF-THEN-ELSE conditons, REPEAT loops and/or other process definitions (subprocesses), which are connected with each other.
Process definitions are used to add a process to an object. Thereby a process instance is created from the process definition and instance elements are created from the definition elements. Embedded subprocesses are resolved either when the process instance is created or when the subprocess is actually initiated. Resolving the subprocess means inserting activity instances into the current process instance. If the process definition is modified after the process instance was created, the modifications are not reflected in the running process instances (with the exception of loops and subprocesses that are not expanded immediately).
Note: When an object is initialized with a process definition the created process instance is stored as a property of the object. Therefore the object class of that object or a base class of the object class must include the property workflow. By default no object class has this property assigned. You have to add this property to your object classes and to the existing object classes depending on the object model of your solution.

Class Hierarchy

Object > ComponentObject > ConfigurationObject > ProcessDefinition

Properties Permanent link for this heading

Type

Property

Name

Content

content

File

LanguageStringList[]

mlname

Multilingual Name

boolean

procdefcommon

Commonly Usable

boolean

procdefcopyinst

Copy Process With Object of Process

EscalationDefinition

procdefescalation

Escalation

boolean

procdefexpand

Expand Immediately

integer(3)

procdefloadsharingvalue

Value for Load Sharing

boolean

procdefnocomplete

Processes Are Not Completed Automatically

boolean

procdefnostart

Processes Are Not Started Automatically

NotificationEntryList[]

procdefnotification

Defined Notifications

WorkFlowPriority

procdefpriority

Workflow Priority

PushNotificationEntryList[]

procdefpushnotification

Defined Push Notifications

DefinitionElement[]

procdefstart

Start Activities

ProcessDefinitionState

procdefstate

State of Process Definition

Actions Permanent link for this heading

Return Type

Signature

object[]

GetDefinitionElements(
  out retval object[] defelems,
  optional object objclass)

WorkFlowCompoundParticipant[]

GetDiagramProcessParticipants(
  optional boolean skipsubprocesses,
  out retval WorkFlowCompoundParticipant[] processparticipants,
  optional boolean forcereferenceddraftversion)

object

InitializeProcessInstance(
  out object coost,
  ref retval object procinst,
  object refobject,
  optional string procinstcommonid)

object

ObjectCopy(
  ref optional object placement,
  out retval object object,
  optional string address,
  optional boolean virtualobject)

integer

ObjectFixVersion(
  boolean autofixed,
  string versdesc,
  out retval integer newversnr,
  optional boolean fixcontents,
  optional boolean converttofinalform,
  optional string finalformat,
  optional boolean noautopurge,
  optional datetime verschangedat,
  optional datetime verssavedat,
  optional User versby)

Properties Permanent link for this heading


File (COOSYSTEM@1.1:content) Permanent link for this heading

Defines the multimedia content of the object and information like the size of the content or the date of the last change.

Explanation:
Defines the content.

Content COOSYSTEM@1.1:content

Additional Information


Multilingual Name (COOSYSTEM@1.1:mlname) Permanent link for this heading

Defines the multilingual name of the object. It stores one name for each supported language.

Explanation:
This field defines the multilingual name of the object.

unique LanguageStringList[] COOSYSTEM@1.1:mlname


Commonly Usable (COOWF@1.1:procdefcommon) Permanent link for this heading

This property defines if a process definition is commonly used. A commonly used process definition can be selected by the user when initializing a process if workflow preferences are defined.

boolean COOWF@1.1:procdefcommon readonly


Copy Process With Object of Process (COOWF@1.1:procdefcopyinst) Permanent link for this heading

This property can be used to define, if process instances, that are generated from this process definition, should be automatically copied, if an object is copied, that has such a process instance attached.
This property is used to initialize the property procinstcopyinst of a process instance.

boolean COOWF@1.1:procdefcopyinst readonly


Escalation (COOWF@1.1:procdefescalation) Permanent link for this heading

Defines the escalation definition that is to be used for activity instances in process instances generated from this definition.
This property is used to initialize the property procinstescalation of a process instance.

EscalationDefinition COOWF@1.1:procdefescalation readonly

Additional Information


Expand Immediately (COOWF@1.1:procdefexpand) Permanent link for this heading

Defines whether the process definition should be expanded immediately or not. If the value is True, the process definition is expanded immediately.
If a process instance is created from a process definition with this property set to True, all sub processes within this process definition are expanded immediately, even if the sub process has this property set to False.
The advantage of setting this property to False is that activity instances are not created, if a path of an IF-element or CASE-element is not executed. A disadvantage could be that the sub process is expanded after the creation of the process instance. This means that modifications of the sub process definitions between the creation and the expansion do influence the process.

boolean COOWF@1.1:procdefexpand readonly


Value for Load Sharing (COOWF@1.1:procdefloadsharingvalue) Permanent link for this heading

This property defines the load sharing value for the process definition.

unsigned integer(3) COOWF@1.1:procdefloadsharingvalue readonly


Processes Are Not Completed Automatically (COOWF@1.1:procdefnocomplete) Permanent link for this heading

If set to true the process instances of this process definition are not completed automatically

boolean COOWF@1.1:procdefnocomplete readonly


Processes Are Not Started Automatically (COOWF@1.1:procdefnostart) Permanent link for this heading

If set to true the process instances of this process definition are not completedstarted automatically

boolean COOWF@1.1:procdefnostart readonly


Defined Notifications (COOWF@1.1:procdefnotification) Permanent link for this heading

Configured notification settings for instances of the process definition. Each configured event type setting overrides the settings of notification definition stored at the current domain.

Explanation:
Defines in which case a notification is sent.

unique NotificationEntryList[] COOWF@1.1:procdefnotification readonly


Workflow Priority (COOWF@1.1:procdefpriority) Permanent link for this heading

Defines the priority of the process definition. This property is used to initialize the property procinstpriority of a process instance.

WorkFlowPriority COOWF@1.1:procdefpriority not null readonly


Defined Push Notifications (COOWF@1.1:procdefpushnotification) Permanent link for this heading

Configured push notification settings for instances of the process definition. Each configured event type setting overrides the settings of push notification definition stored at the current domain.

unique PushNotificationEntryList[] COOWF@1.1:procdefpushnotification readonly


Start Activities (COOWF@1.1:procdefstart) Permanent link for this heading

Defines the list of start activities of the process definition.

unique DefinitionElement[] COOWF@1.1:procdefstart


State of Process Definition (COOWF@1.1:procdefstate) Permanent link for this heading

Defines the state of the process definition. The process definition can be in definition, visible to other users (enabled), and not visible to other users (disabled).

ProcessDefinitionState COOWF@1.1:procdefstate not null readonly

Actions Permanent link for this heading


COOWF@1.1:GetDefinitionElements Permanent link for this heading

This action can be called to retrieve all definition element objects of a process definition that have the specified class. If no class is specified, all definition elements in the process definition are returned.

object[] COOWF@1.1:GetDefinitionElements(
  out retval object[] defelems,
  optional object objclass)

Name

Description

defelems

The list of definition elements.

objclass

The desired class.

COOWF@1.1:GetDiagramProcessParticipants Permanent link for this heading

Get the participants used in the executable processes of the process diagram

WorkFlowCompoundParticipant[] COOWF@1.1:GetDiagramProcessParticipants(
  optional boolean skipsubprocesses,
  out retval WorkFlowCompoundParticipant[] processparticipants,
  optional boolean forcereferenceddraftversion)

Name

Description

skipsubprocesses

If set to true the subprocesses contained in the process diagram will not be scanned for participants

processparticipants

the result

forcereferenceddraftversion

if to true the draft version of all referenced diagrams is used. If set to false the released version of the referenced processes is used. If the parameter is not defined the current referenced object is used

COOWF@1.1:InitializeProcessInstance Permanent link for this heading

This action is called when a process instance object is created from a process definition object. This happens, when a new process instance is created from a process definition.
If a software component has derived new classes for process definitions and process instances, it has to implement a method for this action on its new class for process definitions to create the appropriate class for the process instance. Otherwise just the default class for process instances would be used, if an instance is created from the definition.
This action does not create instance elements for the definition elements of the process definition. This has to be done separately.

object COOWF@1.1:InitializeProcessInstance(
  out object coost,
  ref retval object procinst,
  object refobject,
  optional string procinstcommonid)

Name

Description

coost

The COO Store, where the new object should be created.

procinst

If defined, when the action is called, no new object is created. Only the properties of the object are initialized with the templates from the process definition. If not defined, a new object with an appropriate class is created and returned in this parameter.

refobject

The object used in the computation of the affinity of the new process instance objects. This should be the object this process instance will be attached to, if any.

procinstcommonid

if defined the identification is stored in property procinstcommonid for newly created processes. This identification is used to allow to combine commonly started process instances

COOSYSTEM@1.1:ObjectCopy Permanent link for this heading

Creates a new object as the copy of the object. This action called on the source object. This action sets the property objsource on the copied object.

object COOSYSTEM@1.1:ObjectCopy(
  ref optional object placement,
  out retval object object,
  optional string address,
  optional boolean virtualobject)

Name

Description

placement

object

The created copy of the object.

address

The object address for the new object. If this parameter is used, it overrides the specified COO store in parameter coost or the automatically chosen COO store, if no COO store was specified.

virtualobject


COOSYSTEM@1.1:ObjectFixVersion Permanent link for this heading

Defines the current object version of the object with a short description of the version and starts a new version.

For the purpose of migrations, version metadata set by the kernel can be overridden. The implementation attemps to make migration metadata available in both, objversions as well as corresponding properties in associated versions. Kernel values are stored in corresponding backup properties.

The following properties can be overridden:
Version Property Override Mechanism Requirements
verscreatedat objcreatedat Object creation
  objactverscreated Object creation
  ObjectFixVersion parameter verschangedat Subsequent ObjectFixVersion
versby objchangedby ObjectFixVersion before commit
  ObjectFixVersion parameter versby  
verschangedat ObjectFixVersion parameter verschangedat  
verschangedby objcreatedby Object creation
  objchangedby ObjectFixVersion after commit
verssavedat ObjectFixVersion parameter verschangedat  
Limitations:
  • Despite date overrides, the current date and time (coonow / CooRuntime.GetCurrentDateTime) remains unaffected. Undesired values must be handled manually.
  • Despite user overrides, the current user (coouser / CooRuntime.GetCurrentUser) remains unaffected. Undesired values must be handled manually.


To maximize date and user correctness, disable functionality leading to undesired date and time / user values by means of FSCCOLD@1.1001 class and mapping options, configuration changes, and transaction variables.

integer COOSYSTEM@1.1:ObjectFixVersion(
  boolean autofixed,
  string versdesc,
  out retval integer newversnr,
  optional boolean fixcontents,
  optional boolean converttofinalform,
  optional string finalformat,
  optional boolean noautopurge,
  optional datetime verschangedat,
  optional datetime verssavedat,
  optional User versby)

Name

Description

autofixed

If it is true, the new version was started automatically. Otherwise the user started a new version.

versdesc

The version description.

newversnr

The new version number.

fixcontents

converttofinalform

finalformat

noautopurge

verschangedat

The value to override verschangedat with. The kernel value is stored in versrealchangedat and objrealactverscreated.

verssavedat

The value to override verssavedat with. The kernel value is stored in versrealsavedat. If verschangedat is specified and verssavedat is not, the value is based on verschangedat.

versby

The value to override COOSYSTEM@1.1:verssby with. The kernel value is stored in versrealsavedby. If not specified and objchangedby is set in the current transaction, the value is based on verschangedat. Otherwise, the value is based on the current user (coouser / CooRuntime.GetCurrentUser).