Details

    • Fix Priority:
      3

      Description

      I'm experiencing a problem with the kale workflow engine. Here is my workflow source :

      <?xml version="1.0"?>
      
      <workflow-definition
      	xmlns="urn:liferay.com:liferay-workflow_6.2.0"
      	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      	xsi:schemaLocation="urn:liferay.com:liferay-workflow_6.2.0 http://www.liferay.com/dtd/liferay-workflow-definition_6_2_0.xsd"
      
      	<name>Test Approver</name>
      	<description>A single approver can approve a workflow content.</description>
      	<version>1</version>
      	<state>
      		<name>created</name>
      		<metadata>
      			<![CDATA[{"xy":[36,51]}]]>
      		</metadata>
      		<initial>true</initial>
      		<transitions>
      			<transition>
      				<name>review</name>
      				<target>review</target>
      			</transition>
      		</transitions>
      	</state>
      	<task>
      		<name>update</name>
      		<metadata>
      			<![CDATA[{"transitions":{"resubmit":{"bendpoints":[[303,140]]}},"xy":[328,199]}]]>
      		</metadata>
      		<actions>
      			<action>
      				<name>reject</name>
      				<script>
      					<![CDATA[
      						Packages.com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil.updateStatus(Packages.com.liferay.portal.kernel.workflow.WorkflowConstants.toStatus("denied"), workflowContext);
      						Packages.com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil.updateStatus(Packages.com.liferay.portal.kernel.workflow.WorkflowConstants.toStatus("pending"), workflowContext);
      					]]>
      				</script>
      				<script-language>javascript</script-language>
      				<execution-type>onAssignment</execution-type>
      			</action>
      			<notification>
      				<name>Creator Modification Notification</name>
      				<template>Your submission was rejected by ${userName}, please modify and resubmit.</template>
      				<template-language>freemarker</template-language>
      				<notification-type>email</notification-type>
      				<notification-type>user-notification</notification-type>
      				<execution-type>onAssignment</execution-type>
      			</notification>
      		</actions>
      		<assignments>
      			<user />
      		</assignments>
      		<transitions>
      			<transition>
      				<name>resubmit</name>
      				<target>review</target>
      			</transition>
      		</transitions>
      	</task>
      	<task>
      		<name>review</name>
      		<metadata>
      			<![CDATA[{"xy":[168,36]}]]>
      		</metadata>
      		<actions>
      			<notification>
      				<name>Review Notification</name>
      				<template>${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>
      				<execution-type>onAssignment</execution-type>
      			</notification>
      			<notification>
      				<name>Review Completion Notification</name>
      				<template>
      					Your submission is been reviewed.</template>
      				<template-language>freemarker</template-language>
      				<notification-type>email</notification-type>
                                      <notification-type>user-notification</notification-type>
      				<recipients>
      					<user>
      						<screen-name>user-test</screen-name>
      					</user>
      				</recipients>
      				<execution-type>onEntry</execution-type>
      			</notification>
      		</actions>
      		<assignments>
      			<roles>
      				<role>
      					<role-type>organization</role-type>
      					<name>Organization Administrator</name>
      				</role>
      				<role>
      					<role-type>organization</role-type>
      					<name>Organization Content Reviewer</name>
      				</role>
      				<role>
      					<role-type>organization</role-type>
      					<name>Organization Owner</name>
      				</role>
      				<role>
      					<role-type>regular</role-type>
      					<name>Administrator</name>
      				</role>
      				<role>
      					<role-type>regular</role-type>
      					<name>Portal Content Reviewer</name>
      				</role>
      				<role>
      					<role-type>site</role-type>
      					<name>Site Administrator</name>
      				</role>
      				<role>
      					<role-type>site</role-type>
      					<name>Site Content Reviewer</name>
      				</role>
      				<role>
      					<role-type>site</role-type>
      					<name>Site Owner</name>
      				</role>
      			</roles>
      		</assignments>
      		<transitions>
      			<transition>
      				<name>approve</name>
      				<target>approved</target>
      			</transition>
      			<transition>
      				<name>reject</name>
      				<target>update</target>
      				<default>false</default>
      			</transition>
      		</transitions>
      	</task>
      	<state>
      		<name>approved</name>
      		<metadata>
      			<![CDATA[
      				{"xy":[380,51]}
      			]]>
      		</metadata>
      		<actions>
      			<action>
      				<name>approve</name>
      				<script>
      					<![CDATA[
      						import com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil;
      						import com.liferay.portal.kernel.workflow.WorkflowConstants;
      
      						WorkflowStatusManagerUtil.updateStatus(WorkflowConstants.toStatus("approved"), workflowContext);
      					]]>
      				</script>
      				<script-language>groovy</script-language>
      				<execution-type>onEntry</execution-type>
      			</action>
      		</actions>
      	</state>
      </workflow-definition>
      

      The problem comes from the second notification in the review task because of the add of the user-notification notification-type. I first try the onExit execution-type (which was the suited type) but i got a NullPointerException (for the user-notification).
      When i try the onEntry execution-type, i do have a user-notification but this notification contains the review process which means that the user (which is not a reviewer) may assign the task to itself and then approve it's own content...

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                victor.ware Victor Ware
                Reporter:
                vcarnino vcarnino
                Participants of an Issue:
                Recent user:
                Esther Sanz
              • Votes:
                1 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Days since last comment:
                  3 years, 51 weeks, 3 days ago

                  Packages

                  Version Package