Workflow
MetaParticipant
The customization point MetaParticipant defines how the meta participant is resolved and which attributes of the participant control are needed to correctly define the meta participant.
Syntax |
customize MetaParticipant<objclass, metapart> { newparticipant = expression {...} properties = ...; } |
Description:
- objclass
The customization applies to objects of the defined object class. - metapart
Defines the meta participant that should be resolved. - newparticipant
Defines the expression that is used to resolve the meta participant to a participant. - properties
Defines a list of attribute definitions of the participant aggregate which are used for the abstract participant. All other attributes of the participant aggregate, except the meta participant himself, are cleared and hidden when this meta participant is selected in the participant control.
If this parameter is empty all values of the participant aggregate will be kept.
If only the meta participant himself should be displayed for the whole participant aggregate the property COOWF@1.1:wfpmetaparticipant has to be listed in the parameter. For all other options the property COOWF@1.1:wfpmetaparticipant does not have to be listed in the parameter.
Possible values for this parameter are:- COOWF@1.1:wfpmetaparticipant
- COOWF@1.1:wfpuser
- COOWF@1.1:wfpgroup
- COOWF@1.1:wfpposition
- COOWF@1.1:wfporgunittype
- COOWF@1.1:wfpattribute
In the expression following additional variables are available:
- object
The object, on which the process is running. - activity
The current activity instance. - process
The object of the current process. - participant
The current participant of the activity.
Example |
customize MetaParticipant<Object, WFMP_INITIATOR> { newparticipant = expression { @owner = object.objowner; COOWF@1.1:WorkFlowParticipant @part = {}; if (@owner != null) { @roles = @owner.userroles[COOSYSTEM@1.1:default==true]; if (count(@roles) > 0) { @role = @roles[0]; @rolegroup = @role.userrolegroup; if (@rolegroup != null) { if (@role.userrolepos == #FSCFOLIO@1.1001:HeadPos) { @supergroups = @rolegroup.grsupergroups; if (count(@supergroups) > 0) { @part.COOWF@1.1:wfpgroup = @supergroups[0]; } else { @part.COOWF@1.1:wfpgroup = @rolegroup; } @part.COOWF@1.1:wfpposition = #FSCFOLIO@1.1001:HeadPos; } else { @part.COOWF@1.1:wfpgroup = @rolegroup; @part.COOWF@1.1:wfpposition = #FSCFOLIO@1.1001:HeadPos; } } else { @part.COOWF@1.1:wfpmetaparticipant = participant.COOWF@1.1:wfpmetaparticipant; } } else { @part.COOWF@1.1:wfpmetaparticipant = participant.COOWF@1.1:wfpmetaparticipant; } } else { @part.COOWF@1.1:wfpmetaparticipant = participant.COOWF@1.1:wfpmetaparticipant; } @part; } } |
Note: In the Fabasoft Folio Domain the customization gets defined in the workflow configuration.
ProcessOwnership
The customization point ProcessOwnership defines the owner and the group of the workflow process. If no configuration was made the current user is used as the owner of the process and the group of the current role will be used as owning group of the process.
The customization point ProcessOwnership is evaluated when creating a new process in the action COOWF@1.1:CreateWorkFlowObject.
Syntax |
customize ProcessOwnership<objclass> { owner = expression {…} group = expression {…} } |
Description:
- objclass
The customization applies to objects of the defined object class. - owner
Defines an expression to get the owner of the process. - group
Defines an expression to get the owning group of the process.
Example |
app.ducx Customization Language customize ProcessOwnership<Object> { owner = expression { TeamRoom tr = cooobj.objteamroom; if (tr && tr.HasClass(#TeamRoom)) { return tr.objowner; } else { return cooobj.objowner; } } group = expression { TeamRoom tr = cooobj.objteamroom; if (tr && tr.HasClass(#TeamRoom)) { return tr.objowngroup; } else { return cooobj.objowngroup; } } } |
InsertActivityDef
The customization point InsertActivityDef calculates an activity definition for a specified object class with a supplied context.
Syntax |
customize InsertActivityDef<objclass, scope> { insertactdef = expression {...} } |
Description:
- objclass
The customization applies to objects of the defined object class. - scope
A component object, that is used in combination with the object class to retrieve an activity definition. - insertactdef
Defines a Fabasoft app.ducx Expression to calculate the activity definition. Following values are available in the local scope:- activity: The currently used activity instance of the current process
- process: The currently used process instance
- participant: The participant of the current activity instance
- object: The object of the current process
Example |
app.ducx Customization Language customize InsertActivityDef<Object, SIGN_APPROVAL_ACCEPTED> { insertactdef = expression { return #ActDefApprovalAccepted; } } |
Note: In the Fabasoft Folio Domain this customization gets defined in the workflow configuration.