Issue
- How can I assign workflow tasks to multiple users by Scripted Assignment, but not by assigning tasks to a role?
Environment
- Quarterly releases
- 7.4
- 7.3
Resolution
-
One common requirement is to notify specific roles or users within an organization when certain logic occur, in case of additional implementation needed to notify users or roles, scripted-assignment functionality can be implemented inside notification task.
- You can find an example below:
<notification>
<name>Review Notification</name>
<description>
<![CDATA[]]>
</description>
<template>
<![CDATA[${userName} sent you a ${entryType} for review in the workflow.
]]>
</template>
<template-language>freemarker</template-language>
<notification-type>email</notification-type>
<notification-type>user-notification</notification-type>
<recipients receptionType="to">
<scripted-recipient>
<script>
<![CDATA[
import com.liferay.portal.kernel.model.Role
import com.liferay.portal.kernel.service.RoleLocalServiceUtil
import com.liferay.portal.kernel.service.ServiceContext
import com.liferay.portal.kernel.workflow.WorkflowConstants
ServiceContext serviceContext = (ServiceContext)workflowContext.get(WorkflowConstants.CONTEXT_SERVICE_CONTEXT)
long roleId = (long)serviceContext.getAttribute("roleIdKey")
Role roleRecipient = RoleLocalServiceUtil.getRole(roleId)
user=null
roles = [roleRecipient]
]]>
</script>
<script-language>groovy</script-language>
</scripted-recipient>
</recipients>
<execution-type>onAssignment</execution-type>
</notification>