Skip to content

Latest commit

 

History

History
229 lines (152 loc) · 6.43 KB

process-beans.md

File metadata and controls

229 lines (152 loc) · 6.43 KB

Process beans

Process beans are Spring beans that can be used inside a Camunda BPMN process. The BPMN expression fields have access to all process beans. This page gives an overview of all available process beans.

ConnectorService

This process bean makes it possible to interact with connectors inside the BPMN process.

fun getConnectorTypes()

Lists all connector-types.

fun getConnectorInstances(pageable: Pageable = Pageable.unpaged())

Lists all connector-instances.

fun getConnectorInstancesByType(typeId: UUID, pageable: Pageable = Pageable.unpaged())

Get a list of connector-instances by type ID

fun getConnectorInstancesByTypeName(typeName: String, pageable: Pageable = Pageable.unpaged())

Get a list of connector-instances by type name.

fun getConnectorInstanceById(id: UUID): ConnectorInstance

Get a connector-instance by id.

fun loadByName(name: String)

Loads the connector-instance by name.

fun loadByClassName(clazz: Class<T>)

Loads the connector-instance by class name

CorrelationService

This process bean provides a way to manipulate jobs within the current process.

fun sendStartMessage(message: String, businessKey: String)
fun sendStartMessage(message: String, businessKey: String, variables: Map<String, Any>?)
fun sendStartMessageWithProcessDefinitionKey(message: String, targetProcessDefinitionKey: String, businessKey: String, variables: Map<String, Any>?)
fun sendCatchEventMessage(message: String, businessKey: String)
fun sendCatchEventMessage(message: String, businessKey: String, variables: Map<String, Any>?)
fun sendCatchEventMessageToAll(message: String, businessKey: String)
fun sendCatchEventMessageToAll(message: String, businessKey: String, variables: Map<String, Any>?)

Information on all methods can be found here.

JobService

This process bean provides a way to manipulate jobs within the current process.

fun updateTimerDueDateByActivityId(dueDateString: String, activityId: String, execution: DelegateExecution)
fun addOffsetInMillisToTimerDueDateByActivityId(millisecondsToAdd: Long, activityId: String, execution: DelegateExecution)

Information on all methods can be found here.

ProcessDocumentGenerator

This process bean provides an interface for generating documents.

fun generate(execution: DelegateExecution, mediaType: String, templateIdentifier: String)

Provides an interface for generating documents. This method only works if your implementation has overriden the interface to actually generate a document.

MailService

This process bean is for sending emails.

fun sendElementTemplateTaskMail(execution: DelegateExecution)

Is able to send an email using the configured Camunda extension properties. The extension properties are:

  • mailSendTaskFrom - The email-address of the sender.
  • mailSendTaskSubject - The subject of the email.
  • mailSendTaskTo - The email-address of the receiver.
  • mailSendTaskTemplate - The template that is used for the email. The template often has placeholders. The method uses all process variables as possible placeholders for the template.

DocumentDelegate

This process bean is deprecated. Please use the DocumentDelegateService process bean instead.

DocumentVariableDelegate

This process bean is deprecated. Please use the DocumentDelegateService process bean instead.

DocumentDelegateService

This process bean is for retrieving and updating the document.

fun getDocumentVersion(execution: DelegateExecution)

Returns the version of the document.

fun getDocumentCreatedOn(execution: DelegateExecution)

Returns the creation date of the document.

fun getDocumentCreatedBy(execution: DelegateExecution)

Returns the email of the creator of the document.

fun getDocumentModifiedOn(execution: DelegateExecution)

Returns the last modified date of the document.

fun getDocumentAssigneeId(execution: DelegateExecution)

Returns the ID of the person assigned to the document version.

fun getDocumentAssigneeFullName(execution: DelegateExecution)

Returns the full name of the person assigned to the document.

fun getDocument(execution: DelegateExecution)

Returns the entire document as an object.

fun findValueByJsonPointer(jsonPointer: String?, execution: DelegateExecution?)

Returns the value retrieved from the document at a given pointer.

fun findValueByJsonPointerOrDefault(jsonPointer: String?, execution: DelegateExecution, defaultValue: Any)

Returns the value retrieved from the document at a given pointer, or the given default when the property described by the pointer does not exist.

fun setAssignee(execution: DelegateExecution, userEmail: String?)

Assigns a person to a document.

fun setInternalStatus(execution: DelegateExecution, statusKey: String?)

Sets the internal status of a document based on the status key.

fun unassign(execution: DelegateExecution)

Removes the assigned person from a document.

ProcessDocumentsService

This process bean is for functions that affect both the document and the process.

fun startProcessByProcessDefinitionKey(processDefinitionKey: String, documentId: String)
fun startProcessByProcessDefinitionKey(processDefinitionKey: String, documentId: String, variables: Map<String, Any>?)

Starts a new process and attaches it to the current document.

ValueResolverDelegateService

This process bean contains functions for accessing the Valtimo value resolver. More information here

Resolve value

fun resolveValue(execution: DelegateExecution, key: String)

Resolves a value from a specified source. The resolved value is only returned. An example:

${execution.setVariable('firstName', valueResolverDelegateService.resolveValue(execution, 'doc:person.firstName'))}

Handle value

fun handleValue(execution: DelegateExecution, key: String, value: Any)

Handles a value for a specified target. The example below shows how a process-variable is stored in the document on path /person/firstName:

${valueResolverDelegateService.handleValue(execution, 'doc:person.firstName', execution.getVariable('firstName'))}