liferay ワークフローを使用しています。独自のワークフロー定義を作成したいと考えています。
デフォルトのワークフロー「Single Approver」では、特定のドキュメントがユーザーによってドキュメントおよびメディア ポートレットとともにアップロードされたことを管理者に直接通知するだけです。私が欲しいものはこの画像で説明されています。
組織 A のユーザーがドキュメントをアップロードするときは常に、ユーザーを承認する通知をメインの ADMIN に送信するのではなく、組織 A の管理者に送信してユーザーを承認する必要があります。
私の質問が理解できることを願っています...
組織 A のユーザーがドキュメントをアップロードするときは常に、ユーザーを承認する通知をメインの ADMIN に送信するのではなく、組織 A の管理者に送信してユーザーを承認する必要があります。
私の質問が理解できたと思います...
ワークフローでこのように実行しました 単一の承認定義があります メディアおよびドキュメント ポートレットの 1 つのフォルダにその定義を与えました 現在、自動的に作成された 4 つのロールがあります
1)portal Legal Reviewer - Auto generated role from workflow definition
2)portal Content Reviewer - Autogenerated role from workflow definition
3)organization Legal Reviewer - Autogenerated role from workflow definition
4)organization Content Reviewer - Autogenerated role from workflow definition
そのフォルダーに何かをアップロードするたびに、サイトの所有者に通知が送信されます
そして、その中で2つのオプションがあります
1)assign to me
2)assign to -> users (who have role from above 4 they created automatically)
ここで、4 つ以上のロールを持つユーザーに割り当て、そのユーザーのアカウントを開くと、表示できるコントロール パネルやワークフロー タスク アクションが表示されないとします。
もう1つ、xmlでロールを編集する必要があるため、サイト所有者へのデフォルトの方法ではなく、xmlで説明されている特定のロールに通知します
コントロールパネルにのみアクセスできる組織承認者の役割を持つ管理者の役割を持つユーザーを作成した場合にのみ、ワークフロータスクで割り当て先と割り当て通知を見つけることができます
私のワークフローの定義はここにあります
<?xml version="1.0"?>
<workflow-definition
xmlns="urn:liferay.com:liferay-workflow_6.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:liferay.com:liferay-workflow_6.1.0 http://www.liferay.com/dtd/liferay-workflow-definition_6_1_0.xsd"
>
<name>UPLOAD 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 a reviewer, please modify and resubmit.</template>
<template-language>text</template-language>
<notification-type>email</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>You have a new submission waiting for your review in the workflow.</template>
<template-language>text</template-language>
<notification-type>email</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>
<roles>
<role>
<role-type>organization</role-type>
<name>Organization APPROVER</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>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>
</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[
Packages.com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil.updateStatus(Packages.com.liferay.portal.kernel.workflow.WorkflowConstants.toStatus("approved"), workflowContext);
]]>
</script>
<script-language>javascript</script-language>
<execution-type>onEntry</execution-type>
</action>
</actions>
</state>
</workflow-definition>
次のように、デフォルトで単一の承認定義にある2つのロールを含めていません..
<role>
<role-type>organization</role-type>
<name>Organization Administrator</name>
</role>
<role>
<role-type>regular</role-type>
<name>Administrator</name>
</role>
特定のユーザーに管理者の役割と組織の承認者の役割を与える必要があるのですが、そのユーザーに管理者権限を与えると、彼だけがコントロールパネルにアクセスでき、ワークフロータスクオプションに移動できますが、そうではありませんコンテンツを承認するだけの仕事をしているユーザーに管理者権限を与えるという本当のアイデア..だから私はどういうわけか組織の承認者にコントロールパネルを使用する許可を与えるだけでなく、ワークフロータスクオプションにアクセスするためだけに与えたい.ワークフロー タスク オプション。