Skip to content

Instantly share code, notes, and snippets.

@000benniu
Last active November 9, 2023 06:28
Show Gist options
  • Save 000benniu/fa2e48b464c3516a444df5ac5acceb89 to your computer and use it in GitHub Desktop.
Save 000benniu/fa2e48b464c3516a444df5ac5acceb89 to your computer and use it in GitHub Desktop.
WorkFlowScript
<?xml version="1.0"?>
<workflow-definition
xmlns="urn:liferay.com:liferay-workflow_7.4.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:liferay.com:liferay-workflow_7.4.0 http://www.liferay.com/dtd/liferay-workflow-definition_7_4_0.xsd"
>
<name>e2426a9f-ae0c-8cff-5733-53ee5b5f123e</name>
<description>重要なお知らせに対し、広報室長がレビューする</description>
<version>26</version>
<condition>
<name>511a8a85-fe38-4463-81c3-136438f03699</name>
<description>条件付きロジックを実行します。</description>
<metadata>
<![CDATA[
{
"xy": [
318.5546875,
18
]
}
]]>
</metadata>
<labels>
<label language-id="ja_JP">
重要度チェック
</label>
</labels>
<script>
<![CDATA[import com.liferay.portal.kernel.workflow.WorkflowConstants;
import com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil;
import com.liferay.portal.kernel.service.ServiceContext;
try {
System.out.println("=====================Start Script================================");
System.out.println("=====================workflowContext================================");
workflowContext.each{ k, v -> System.out.println "${k}:${v}" }
serviceContextInstance = (ServiceContext)workflowContext.get("serviceContext");
serviceContextInstanceAttributes = serviceContextInstance.getAttributes();
System.out.println("=====================attributes================================");
serviceContextInstanceAttributes.each{ k, v -> System.out.println "${k}:${v}" }
attributesString = serviceContextInstanceAttributes.toString();
needReview = attributesString.contains("重要");
System.out.println("need review:" + needReview);
if(needReview) {
System.out.println("===================== 重要 ================================");
returnValue = "7da5c97c-d1fb-423b-ab7b-da795cc343df"
}else{
System.out.println("===================== 一般 ================================");
returnValue = "7e21c957-0d40-4c90-a595-81f712aea055"
}
} catch(Exception e) {
System.out.println("=====================Error================================");
System.out.println("Error:" + e);
}
System.out.println("=====================End Script================================");]]>
</script>
<script-language>groovy</script-language>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
一般公開
</label>
</labels>
<name>7e21c957-0d40-4c90-a595-81f712aea055</name>
<target>CompleteNode</target>
<default>true</default>
</transition>
<transition>
<labels>
<label language-id="ja_JP">
重要コンテンツ
</label>
</labels>
<name>7da5c97c-d1fb-423b-ab7b-da795cc343df</name>
<target>ReviewByManager</target>
<default>false</default>
</transition>
</transitions>
</condition>
<state>
<name>7e1ad203-b3e3-4579-9849-de866d141a02</name>
<description>ワークフローを開始します。</description>
<metadata>
<![CDATA[
{
"xy": [
318,
-102
]
}
]]>
</metadata>
<initial>true</initial>
<labels>
<label language-id="ja_JP">
開始
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
条件判断へ
</label>
</labels>
<name>ff20aeef-e248-4725-aed5-11f0fd44e18b</name>
<target>511a8a85-fe38-4463-81c3-136438f03699</target>
<default>true</default>
</transition>
</transitions>
</state>
<state>
<name>CompleteNode</name>
<description>内容を公開します。</description>
<metadata>
<![CDATA[
{
"xy": [
685,
18
],
"terminal": true
}
]]>
</metadata>
<actions>
<action>
<name>公開</name>
<description></description>
<script>
<![CDATA[import com.liferay.portal.kernel.workflow.WorkflowConstants;
import com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil;
WorkflowStatusManagerUtil.updateStatus(WorkflowConstants.getLabelStatus("approved"), workflowContext);]]>
</script>
<script-language>groovy</script-language>
<priority>1</priority>
<execution-type>onEntry</execution-type>
</action>
</actions>
<labels>
<label language-id="ja_JP">
公開
</label>
</labels>
</state>
<state>
<name>InvalidNode</name>
<description>非公開でワークフローを終了します。</description>
<metadata>
<![CDATA[
{
"xy": [
676.078125,
163
],
"terminal": true
}
]]>
</metadata>
<actions>
<action>
<name>不公開</name>
<description></description>
<script>
<![CDATA[import com.liferay.portal.kernel.workflow.WorkflowConstants;
import com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil;
WorkflowStatusManagerUtil.updateStatus(WorkflowConstants.getLabelStatus("inactive"), workflowContext);]]>
</script>
<script-language>groovy</script-language>
<priority>1</priority>
<execution-type>onEntry</execution-type>
</action>
</actions>
<labels>
<label language-id="ja_JP">
非公開
</label>
</labels>
</state>
<task>
<name>Revise</name>
<description>指摘事項を対応します。</description>
<metadata>
<![CDATA[
{
"xy": [
318.0546875,
314
]
}
]]>
</metadata>
<actions>
<action>
<name>reject</name>
<description></description>
<script>
<![CDATA[
import com.liferay.portal.kernel.workflow.WorkflowConstants;
import com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil;
WorkflowStatusManagerUtil.updateStatus(WorkflowConstants.getLabelStatus("denied"), workflowContext);
WorkflowStatusManagerUtil.updateStatus(WorkflowConstants.getLabelStatus("pending"), workflowContext);
]]>
</script>
<script-language>groovy</script-language>
<priority>1</priority>
<execution-type>onAssignment</execution-type>
</action>
<notification>
<name>指摘がありました。</name>
<description>
<![CDATA[]]>
</description>
<template>
<![CDATA[作成したコンテンツの指摘がありました。
作成した内容を再確認ください。]]>
</template>
<template-language>freemarker</template-language>
<notification-type>user-notification</notification-type>
<recipients receptionType="to">
<user />
</recipients>
<execution-type>onAssignment</execution-type>
</notification>
</actions>
<assignments>
<user />
</assignments>
<labels>
<label language-id="ja_JP">
指摘対応
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
指摘対応完了
</label>
</labels>
<name>078ad8b6-cf38-46f9-96b0-27c76270fbf2</name>
<target>ReviewByManager</target>
<default>true</default>
</transition>
</transitions>
</task>
<task>
<name>ReviewByManager</name>
<description>室長がコンテンツをレビューします。</description>
<metadata>
<![CDATA[
{
"xy": [
318.0546875,
153
]
}
]]>
</metadata>
<actions>
<notification>
<name>重要度高の内容がありました。</name>
<description>
<![CDATA[重要度高の内容をレビューください。]]>
</description>
<template>
<![CDATA[${userName} が重要の新コンテンツを作成しました。
レビューください。]]>
</template>
<template-language>freemarker</template-language>
<notification-type>user-notification</notification-type>
<recipients receptionType="to">
<roles>
<role>
<role-id>45025</role-id>
</role>
</roles>
</recipients>
<execution-type>onAssignment</execution-type>
</notification>
</actions>
<assignments>
<roles>
<role>
<role-id>45025</role-id>
</role>
</roles>
</assignments>
<labels>
<label language-id="ja_JP">
室長レビュー
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
指摘あり
</label>
</labels>
<name>9585033d-1c5c-48c4-b939-6f240c814a36</name>
<target>Revise</target>
<default>true</default>
</transition>
<transition>
<labels>
<label language-id="ja_JP">
公開許可
</label>
</labels>
<name>52e0f00c-91f0-41cc-b2c4-29ef3ce3bfd5</name>
<target>CompleteNode</target>
<default>false</default>
</transition>
<transition>
<labels>
<label language-id="ja_JP">
不公開
</label>
</labels>
<name>afb870e6-1a3c-458c-9f28-810e30def7c3</name>
<target>InvalidNode</target>
<default>false</default>
</transition>
</transitions>
</task>
</workflow-definition>
<?xml version="1.0"?>
<workflow-definition
xmlns="urn:liferay.com:liferay-workflow_7.4.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:liferay.com:liferay-workflow_7.4.0 http://www.liferay.com/dtd/liferay-workflow-definition_7_4_0.xsd"
>
<name>fe8ada37-849d-d083-eeea-f3288b612b1a</name>
<description>消耗品申請ワークフローです。</description>
<version>45</version>
<fork>
<name>48ff58f1-875b-4910-b763-e944fc0e4ceb</name>
<description>ワークフローを複数のパスに分割します。</description>
<metadata>
<![CDATA[
{
"xy": [
317.95355224609375,
18.560699462890625
]
}
]]>
</metadata>
<labels>
<label language-id="ja_JP">
フォーク
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
調達部へ
</label>
</labels>
<name>536ef1de-cf40-4e6e-a412-1636780cc46f</name>
<target>ProcurementDepartmentTask</target>
<default>true</default>
</transition>
<transition>
<labels>
<label language-id="ja_JP">
管理部へ
</label>
</labels>
<name>04a8d59c-0a4b-4e54-9b4a-ce79d8f68b10</name>
<target>ManagementDepartmentTask</target>
<default>false</default>
</transition>
</transitions>
</fork>
<join>
<name>19759c65-94c3-4398-8b5e-e6ca4b0189d9</name>
<description>すべての対応が完了しました。</description>
<metadata>
<![CDATA[
{
"xy": [
319.9945068359375,
275.724609375
]
}
]]>
</metadata>
<labels>
<label language-id="ja_JP">
両方対応完了
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
調達部通知へ
</label>
</labels>
<name>0408027f-e950-4738-a5c8-cc688f68d869</name>
<target>97b21ae4-fa97-435b-8774-6d412d0302f9</target>
<default>true</default>
</transition>
</transitions>
</join>
<state>
<name>7e1ad203-b3e3-4579-9849-de866d141a02</name>
<description>ワークフローを開始します。</description>
<metadata>
<![CDATA[
{
"xy": [
318,
-103
]
}
]]>
</metadata>
<initial>true</initial>
<labels>
<label language-id="ja_JP">
開始
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
開始
</label>
</labels>
<name>8e0b86a1-d32c-4cd1-8c53-8e763d271b93</name>
<target>48ff58f1-875b-4910-b763-e944fc0e4ceb</target>
<default>true</default>
</transition>
</transitions>
</state>
<state>
<name>CompleteNode</name>
<description>消耗品の申請が承認されました。</description>
<metadata>
<![CDATA[
{
"xy": [
688.421875,
403.0057373046875
],
"terminal": true
}
]]>
</metadata>
<actions>
<action>
<name>公開</name>
<description></description>
<script>
<![CDATA[import com.liferay.portal.kernel.workflow.WorkflowConstants;
import com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil;
WorkflowStatusManagerUtil.updateStatus(WorkflowConstants.getLabelStatus("approved"), workflowContext);]]>
</script>
<script-language>groovy</script-language>
<priority>1</priority>
<execution-type>onEntry</execution-type>
</action>
<notification>
<name>④消耗品申請完了。</name>
<description>
<![CDATA[④消耗品の申請が完了しました。]]>
</description>
<template>
<![CDATA[④消耗品の申請が完了しました。
次は調達部からの連絡をお待ちください。]]>
</template>
<template-language>freemarker</template-language>
<notification-type>email</notification-type>
<notification-type>user-notification</notification-type>
<recipients receptionType="to">
<user />
</recipients>
<execution-type>onEntry</execution-type>
</notification>
</actions>
<labels>
<label language-id="ja_JP">
完了
</label>
</labels>
</state>
<state>
<name>97b21ae4-fa97-435b-8774-6d412d0302f9</name>
<description>ワークフロー内でアクションを実行します。</description>
<metadata>
<![CDATA[
{
"xy": [
320.5546875,
405
]
}
]]>
</metadata>
<actions>
<notification>
<name>③消耗品の申請が完了しました。</name>
<description>
<![CDATA[③消耗品の申請が完了しました。]]>
</description>
<template>
<![CDATA[③${userName}からの消耗品申請が完了しました。 消耗品の渡す手続きへ進んで下さい。]]>
</template>
<template-language>freemarker</template-language>
<notification-type>email</notification-type>
<notification-type>user-notification</notification-type>
<recipients receptionType="to">
<roles>
<role>
<role-id>73630</role-id>
</role>
</roles>
</recipients>
<execution-type>onEntry</execution-type>
</notification>
</actions>
<labels>
<label language-id="ja_JP">
調達部通知
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
完了
</label>
</labels>
<name>8d3ec2b5-2ec0-4f1f-baa9-6830d8f1a94c</name>
<target>CompleteNode</target>
<default>true</default>
</transition>
</transitions>
</state>
<task>
<name>ProcurementDepartmentTask</name>
<description>消耗品の申請がありました。</description>
<metadata>
<![CDATA[
{
"xy": [
487.1990966796875,
143.768798828125
]
}
]]>
</metadata>
<actions>
<notification>
<name>②消耗品の申請がありました。</name>
<description>
<![CDATA[②消耗品の申請がありました。]]>
</description>
<template>
<![CDATA[②${userName}から、消耗品を申請しています。]]>
</template>
<template-language>freemarker</template-language>
<notification-type>user-notification</notification-type>
<recipients receptionType="to">
<roles>
<role>
<role-id>73630</role-id>
</role>
</roles>
</recipients>
<execution-type>onEntry</execution-type>
</notification>
</actions>
<assignments>
<roles>
<role>
<role-id>73630</role-id>
</role>
</roles>
</assignments>
<labels>
<label language-id="ja_JP">
調達部対応
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
対応済み
</label>
</labels>
<name>683c6d9a-a585-4a4d-9d0e-f123cb4d0f34</name>
<target>19759c65-94c3-4398-8b5e-e6ca4b0189d9</target>
<default>true</default>
</transition>
</transitions>
</task>
<task>
<name>ManagementDepartmentTask</name>
<description>消耗品の申請がありました。</description>
<metadata>
<![CDATA[
{
"xy": [
150.0546875,
140
]
}
]]>
</metadata>
<actions>
<notification>
<name>①消耗品の申請がありました。</name>
<description>
<![CDATA[①消耗品の申請を確認ください。]]>
</description>
<template>
<![CDATA[①${userName} が消耗品を申請しています。]]>
</template>
<template-language>freemarker</template-language>
<notification-type>user-notification</notification-type>
<recipients receptionType="to">
<roles>
<role>
<role-id>84113</role-id>
</role>
</roles>
</recipients>
<execution-type>onEntry</execution-type>
</notification>
</actions>
<assignments>
<roles>
<role>
<role-id>84113</role-id>
</role>
</roles>
</assignments>
<labels>
<label language-id="ja_JP">
管理部対応
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
対応済み
</label>
</labels>
<name>70a799cd-9103-4424-b237-244319e7d491</name>
<target>19759c65-94c3-4398-8b5e-e6ca4b0189d9</target>
<default>true</default>
</transition>
</transitions>
</task>
</workflow-definition>
<?xml version="1.0"?>
<workflow-definition
xmlns="urn:liferay.com:liferay-workflow_7.4.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:liferay.com:liferay-workflow_7.4.0 http://www.liferay.com/dtd/liferay-workflow-definition_7_4_0.xsd"
>
<name>90ca9001-a8cf-26d5-d28e-2fcdc0788d16</name>
<description>企画提案ワークフローです。</description>
<version>23</version>
<fork>
<name>48ff58f1-875b-4910-b763-e944fc0e4ceb</name>
<description>ワークフローを複数のパスに分割します。</description>
<metadata>
<![CDATA[
{
"xy": [
317.95355224609375,
18.560699462890625
]
}
]]>
</metadata>
<labels>
<label language-id="ja_JP">
フォーク
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
レビュー依頼
</label>
</labels>
<name>536ef1de-cf40-4e6e-a412-1636780cc46f</name>
<target>CEOTask</target>
<default>true</default>
</transition>
<transition>
<labels>
<label language-id="ja_JP">
レビュー依頼
</label>
</labels>
<name>04a8d59c-0a4b-4e54-9b4a-ce79d8f68b10</name>
<target>DesignTeamManagerTask</target>
<default>true</default>
</transition>
<transition>
<labels>
<label language-id="ja_JP">
レビュー依頼
</label>
</labels>
<name>33831d4b-554d-4d34-af12-f0d0b4e37128</name>
<target>ConsultantTask</target>
<default>false</default>
</transition>
</transitions>
</fork>
<join-xor>
<name>582bfe0d-7933-4ea3-bb4d-39e807d28a14</name>
<description>1つのインタラクションのみを閉じる必要があります。</description>
<metadata>
<![CDATA[
{
"xy": [
316.5546875,
286
]
}
]]>
</metadata>
<labels>
<label language-id="ja_JP">
どちらか承認完了
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
完了へ
</label>
</labels>
<name>1812fd64-1b7c-426e-bec5-948aa41f4c1e</name>
<target>CompleteNode</target>
<default>true</default>
</transition>
</transitions>
</join-xor>
<state>
<name>7e1ad203-b3e3-4579-9849-de866d141a02</name>
<description>ワークフローを開始します。</description>
<metadata>
<![CDATA[
{
"xy": [
320,
-101
]
}
]]>
</metadata>
<initial>true</initial>
<labels>
<label language-id="ja_JP">
開始
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
開始
</label>
</labels>
<name>8e0b86a1-d32c-4cd1-8c53-8e763d271b93</name>
<target>48ff58f1-875b-4910-b763-e944fc0e4ceb</target>
<default>true</default>
</transition>
</transitions>
</state>
<state>
<name>CompleteNode</name>
<description>レビュー完了</description>
<metadata>
<![CDATA[
{
"xy": [
315.421875,
417.0057373046875
],
"terminal": true
}
]]>
</metadata>
<actions>
<action>
<name>公開</name>
<description></description>
<script>
<![CDATA[import com.liferay.portal.kernel.workflow.WorkflowConstants;
import com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil;
WorkflowStatusManagerUtil.updateStatus(WorkflowConstants.getLabelStatus("approved"), workflowContext);]]>
</script>
<script-language>groovy</script-language>
<priority>1</priority>
<execution-type>onEntry</execution-type>
</action>
</actions>
<labels>
<label language-id="ja_JP">
完了
</label>
</labels>
</state>
<task>
<name>CEOTask</name>
<description>新しい企画がありました。ご確認ください。</description>
<metadata>
<![CDATA[
{
"xy": [
318.1990966796875,
155.768798828125
]
}
]]>
</metadata>
<actions>
<notification>
<name>②新しい企画</name>
<description>
<![CDATA[②新しい企画がありました。]]>
</description>
<template>
<![CDATA[②${userName}からの企画がありました。]]>
</template>
<template-language>freemarker</template-language>
<notification-type>user-notification</notification-type>
<recipients receptionType="to">
<user>
<email-address>[email protected]</email-address>
</user>
</recipients>
<execution-type>onAssignment</execution-type>
</notification>
</actions>
<assignments>
<user>
<email-address>[email protected]</email-address>
</user>
</assignments>
<labels>
<label language-id="ja_JP">
社長承認
</label>
<label language-id="en_US">
社長承認
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
承認
</label>
</labels>
<name>80e9a36e-0570-4708-88b6-d1e6aa12f501</name>
<target>582bfe0d-7933-4ea3-bb4d-39e807d28a14</target>
<default>true</default>
</transition>
</transitions>
</task>
<task>
<name>DesignTeamManagerTask</name>
<description>新しい企画がありました。</description>
<metadata>
<![CDATA[
{
"xy": [
31.0546875,
158
]
}
]]>
</metadata>
<actions>
<notification>
<name>①新しい企画</name>
<description>
<![CDATA[①新しい企画がありました。]]>
</description>
<template>
<![CDATA[①新しい企画がありました。レビューください。]]>
</template>
<template-language>freemarker</template-language>
<notification-type>user-notification</notification-type>
<recipients receptionType="to">
<roles>
<role>
<role-id>45025</role-id>
</role>
</roles>
</recipients>
<execution-type>onEntry</execution-type>
</notification>
</actions>
<assignments>
<roles>
<role>
<role-id>45025</role-id>
</role>
</roles>
</assignments>
<labels>
<label language-id="ja_JP">
企画部管理者承認
</label>
<label language-id="en_US">
企画部管理者承認
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
承認
</label>
</labels>
<name>47eacfac-7ac2-4856-9bb2-4da27bdf3f44</name>
<target>582bfe0d-7933-4ea3-bb4d-39e807d28a14</target>
<default>true</default>
</transition>
</transitions>
</task>
<task>
<name>ConsultantTask</name>
<description>新しい企画がありました。</description>
<metadata>
<![CDATA[
{
"xy": [
617.5546875,
156
]
}
]]>
</metadata>
<actions>
<notification>
<name>③新しい企画</name>
<description>
<![CDATA[③新しい企画がありました。]]>
</description>
<template>
<![CDATA[③${userName}からの企画がありました。]]>
</template>
<template-language>freemarker</template-language>
<notification-type>user-notification</notification-type>
<recipients receptionType="to">
<user>
<email-address>[email protected]</email-address>
</user>
<user>
<email-address>[email protected]</email-address>
</user>
</recipients>
<execution-type>onEntry</execution-type>
</notification>
</actions>
<assignments>
<user>
<email-address>[email protected]</email-address>
</user>
<user>
<email-address>[email protected]</email-address>
</user>
</assignments>
<labels>
<label language-id="ja_JP">
コンサルタント承認
</label>
<label language-id="en_US">
コンサルタント承認
</label>
</labels>
<transitions>
<transition>
<labels>
<label language-id="ja_JP">
承認
</label>
</labels>
<name>81fa1129-9717-4572-b831-599bcab565ba</name>
<target>582bfe0d-7933-4ea3-bb4d-39e807d28a14</target>
<default>true</default>
</transition>
</transitions>
</task>
</workflow-definition>
@000benniu
Copy link
Author

000benniu commented Nov 9, 2023

2023-11-09_15-19-53

2023-11-09_15-20-06

2023-11-09_15-19-59

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment