Liferay:自定义Kaleo通知



我正在为审查员、管理员做一个自定义通知,任何人都可以帮助我找出我的kaleo工作流中出了什么问题?

以下是的要求

  • 为了安全起见,管理员可以为用户创建一个新帐户
  • 审核人(类似于管理员,但唯一的特权是审核、批准和拒绝管理员和用户的请求)所有从管理员创建新帐户的人都必须在从管理员创建的新帐户之前由审查人审核是否批准

流量:

  1. 管理员为新用户创建一个帐户,然后
  2. 通知审核人审核管理员的请求,然后
  3. A。如果审阅者拒绝了应用程序请求,请通知管理员重新提交以进行更新
  4. B。如果审核人批准了申请,请通知管理员该申请已被批准
  5. 完成

问题是1到3正在工作,但在4审查员批准申请后,管理员没有收到通知

这是我的代码

<?xml version="1.0" encoding="UTF-8"?><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>custom-mrcos-notify</name>
<version>1</version>
<state>
<name>created</name>
<metadata>
<![CDATA[{"transitions":{"review":{"bendpoints":[]}},"xy":[30,30]}]]>
</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":[260,220]}]]>
</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>
<email-address>r@liferay.com</email-address>
</user>
</assignments>
<transitions>
<transition>
<name>resubmit</name>
<target>review</target>
</transition>
</transitions>
</task>
<task>
<name>review</name>
<metadata>
<![CDATA[{"transitions":{"approve":{"bendpoints":[[354,82]]},"reject":{"bendpoints":[]}},"xy":[160,30]}]]>
</metadata>
<actions>
<notification>
<name>Review Notification</name>
<template>${userName} sent you a ${entryType} for review.</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 has been reviewed and the reviewer has applied the following ${taskComments}.</template>
<template-language>freemarker</template-language>
<notification-type>email</notification-type>
<recipients>
<user />
</recipients>
<execution-type>onExit</execution-type>
</notification>
</actions>
<assignments>
<user>
<email-address>r@liferay.com</email-address>
</user>
</assignments>
<transitions>
<transition>
<name>reject</name>
<target>update</target>
<default>false</default>
</transition>
<transition>
<name>approve</name>
<target>Approved</target>
</transition>
</transitions>
</task>
<state>
<name>approved</name>
<metadata>
<![CDATA[{"xy":[740,100]}]]>
</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>
<task>
<name>Approved</name>
<metadata>
<![CDATA[{"transitions":{"Ok":{"bendpoints":[]},"ok":{"bendpoints":[]}},"xy":[470,30]}]]>
</metadata>
<actions>
<notification>
<name>notify-approved</name>
<template>The application of ${entryType} is approved by ${userName}.</template>
<template-language>freemarker</template-language>
<notification-type>email</notification-type>
<execution-type>onAssignment</execution-type>
</notification>
<action>
<name>approved</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>
<assignments>
<user>
<email-address>test@liferay.com</email-address>
</user>
</assignments>
<transitions>
<transition>
<name>Ok</name>
<target>approved</target>
</transition>
</transitions>
</task>

注意我上面给出的代码是用于kaleo工作流的。

我成功地配置了单个审批者工作流,使其与您的场景完全兼容,该场景在文档获得批准时使用用户通知。我对默认工作流定义应用的一个更改是将通知的一部分添加到已批准状态。这是部分代码:

<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>
<notification>
<name>Creator Approval Notification</name>
<template>Your submission was accepted by ${userName}.</template>
<template-language>freemarker</template-language>
<notification-type>user-notification</notification-type>
<recipients>
<user/>
</recipients>
<execution-type>onExit</execution-type>
</notification>
</actions>
</state>

将类似的通知部分添加到您的批准的节点。从另一方面来说,我不确定是否真的需要另一个节点在批准状态之前批准。

我会尝试将执行类型从:更改为

<execution-type>onAssignment</execution-type>

<execution-type>onEntry</execution-type>

在任务的最后一部分批准

以下文件:

发送通知通知需要一个执行类型,可以是onAssignment,onEntry或onExit。

  • onAssignment在工作流中为用户分配任务时生成并发送通知。注意:如果您希望通知不属于
    工作流的用户,则onAssignment通知
    将不起作用。

  • onEntry在进入工作流任务或状态时生成并发送通知。

  • onExit在退出工作流任务或状态时生成并发送通知。

最新更新