Interface ActionDefinition
- All Known Subinterfaces:
ActionDefinitionEntity
- All Known Implementing Classes:
ActionDefinitionEntityImpl
public interface ActionDefinition
An action definition is used as the model and meta information in order to create a new Action based on such
a definition.
Most likely such an action is composed in the frontend and then posted as an action within a conversation and then
processed by a com.flowable.engage.data.api.bot.Bot.
Action definition are registered within the ActionDefinitionRegistry and can be looked up and searched for, most likely in the context of an existing conversation.
Action definitions can either be optional or mandatory (see
Action definitions can setup their context where they are made available:
Action definitions can have meta information to describe what they need and do:
Optionally, an action definition can have a dynamic payload, which means it has to be fetched at runtime when rendering the action definition. Such a payload can be requested through com.flowable.engage.conversation.api.ConversationService#getActionDefinitionPayload(String, String) and it might contain some data according the context of the conversation the action is created for. Most likely, a dynamic payload is used in combination with a form to input data from the user in a rich way and builds the baseline of data behind the payload later sent as part of the action.
The action definition might have a more rich way of requesting data from the user by using a form. A form is then referenced through the
Action definition are registered within the ActionDefinitionRegistry and can be looked up and searched for, most likely in the context of an existing conversation.
Action definitions can either be optional or mandatory (see
isMandatory()
) with the
difference that a mandatory action definition needs to be executed at some time and is most likely assigned to a
certain user or user group.
Action definitions can setup their context where they are made available:
- global: in that case, the action is available in all conversations (e.g.
/remind
) - existing conversation: use
getScopeType()
to return the explicit id of the conversation where the action should be made available (e.g. if the conversation is a case, existing tasks can be exposed over an action definition that way)
Action definitions can have meta information to describe what they need and do:
getName()
: the name of the action (most likely mapped to the slash-action menu in the conversation)
Optionally, an action definition can have a dynamic payload, which means it has to be fetched at runtime when rendering the action definition. Such a payload can be requested through com.flowable.engage.conversation.api.ConversationService#getActionDefinitionPayload(String, String) and it might contain some data according the context of the conversation the action is created for. Most likely, a dynamic payload is used in combination with a form to input data from the user in a rich way and builds the baseline of data behind the payload later sent as part of the action.
The action definition might have a more rich way of requesting data from the user by using a form. A form is then referenced through the
getFormKey()
.
The form is most likely rendered within a conversation or as a dialog and its data is then sent along as the payload
of the action.
TODO: rewrite the description to adapt to the new action engine- Author:
- Micha Kiener
-
Method Summary
Modifier and Type Method Description java.util.List<ActionDefinitionLink>
getActionDefinitionLinks()
Returns the action definition links that are linked to the action definition.java.lang.String
getAssignedGroupId()
Returns the id of the assigned group of this object.java.lang.String
getAssigneeId()
Returns the id of the assignee of this object.java.lang.String
getBotKey()
Returns the key of the bot this action is implemented.java.util.Set<java.lang.String>
getCandidateGroupIds()
Returns a set view of the optional list of candidate group ids of this object.java.util.Set<java.lang.String>
getCandidateUserIds()
Returns a set view of the optional list of candidate user ids of this object.java.util.Date
getCreationTime()
Returns the creation timestamp of this data object.java.lang.String
getCreatorId()
Returns the id of the user creating this data object.java.lang.String
getDeploymentId()
java.lang.String
getFormKey()
If this action has an attached form definition, this method returns the form key of it with which the form definition might be requested through Form Engine.java.lang.String
getId()
java.lang.String
getKey()
java.lang.String
getName()
Returns the name of this action which is also used as the slash action name (e.g.java.lang.String
getOwnerId()
Returns the id of the owner of this object, most likely representing the user actually creating it or being created as part of an operation that user executed.java.lang.String
getResourceName()
java.lang.String
getScopeType()
Returns the type of scope if this action definition is bound to a certain type of scoped objects (e.g.java.lang.String
getTenantId()
java.lang.String
getUpdaterId()
Returns the optional id of the user having last modified this data object, if any,null
otherwise.java.util.Date
getUpdateTime()
Returns the timestamp of the last update of this data object, in most cases where events are immutable, this timestamp is the same as the creation timestamp, but must never benull
.int
getVersion()
boolean
isGlobal()
Whether the action definition is globalboolean
isMandatory()
Returnstrue
if this is a mandatory action definition, which means it has to be executed (as an action) at some point (most likely it is then backed by a user task or anything which needs to be completed somehow).
-
Method Details
-
getId
java.lang.String getId() -
getKey
java.lang.String getKey() -
getVersion
int getVersion() -
getDeploymentId
java.lang.String getDeploymentId() -
getTenantId
java.lang.String getTenantId() -
getBotKey
java.lang.String getBotKey()Returns the key of the bot this action is implemented. When receiving an action, the bot will be looked up and send the action there for processing.- Returns:
- the key of the bot to send the action to for processing
-
isMandatory
boolean isMandatory()Returnstrue
if this is a mandatory action definition, which means it has to be executed (as an action) at some point (most likely it is then backed by a user task or anything which needs to be completed somehow). This is an optional flag and defaults tofalse
if not provided explicitly.- Returns:
true
if this action definition is mandatory
-
getName
java.lang.String getName()Returns the name of this action which is also used as the slash action name (e.g. name 'foo' would be exposed within a conversation with '/foo' to execute it).- Returns:
- the name of the action
-
getResourceName
java.lang.String getResourceName() -
getFormKey
java.lang.String getFormKey()If this action has an attached form definition, this method returns the form key of it with which the form definition might be requested through Form Engine.- Returns:
- the key of the form to be used to render this action definition and get input to create an action object
-
getScopeType
java.lang.String getScopeType()Returns the type of scope if this action definition is bound to a certain type of scoped objects (e.g. conversation, user, etc).- Returns:
- the type of scoped objects this action definition is bound to
-
isGlobal
boolean isGlobal()Whether the action definition is global- Returns:
true
if the AD is global,false
otherwise
-
getCreationTime
java.util.Date getCreationTime()Returns the creation timestamp of this data object.- Returns:
- the creation timestamp
-
getUpdateTime
java.util.Date getUpdateTime()Returns the timestamp of the last update of this data object, in most cases where events are immutable, this timestamp is the same as the creation timestamp, but must never benull
.- Returns:
- the timestamp of the last update / modification of this data object
-
getCreatorId
java.lang.String getCreatorId()Returns the id of the user creating this data object.- Returns:
- the id of the creation user
-
getUpdaterId
java.lang.String getUpdaterId()Returns the optional id of the user having last modified this data object, if any,null
otherwise.- Returns:
- the optional id of the user having last updated this data object
-
getOwnerId
java.lang.String getOwnerId()Returns the id of the owner of this object, most likely representing the user actually creating it or being created as part of an operation that user executed.- Returns:
- the id of the user being the owner of this object
-
getAssigneeId
java.lang.String getAssigneeId()Returns the id of the assignee of this object. What the assignee actually represents is up to the objects use cases and implementation.- Returns:
- the optional id of the user being the assignee of the object
-
getAssignedGroupId
java.lang.String getAssignedGroupId()Returns the id of the assigned group of this object. What the assigned group actually represents is up to the objects use cases and implementation.- Returns:
- the id of the optional assigned group
-
getCandidateUserIds
java.util.Set<java.lang.String> getCandidateUserIds()Returns a set view of the optional list of candidate user ids of this object. In most cases, this is used to allow access to the object for a selected list of users.- Returns:
- the optional list of candidate user ids attached to this object
-
getCandidateGroupIds
java.util.Set<java.lang.String> getCandidateGroupIds()Returns a set view of the optional list of candidate group ids of this object. Like with the list of candidate users, all users being at least a member of one of the candidate groups will also have access to this object.- Returns:
- the optional list of candidate group ids attached to this object
-
getActionDefinitionLinks
java.util.List<ActionDefinitionLink> getActionDefinitionLinks()Returns the action definition links that are linked to the action definition.- Returns:
- the optional list of action definition links
-