2016-06-24 7 views
1

Webコンテンツに単一の承認者ワークフローを使用するのはかなり簡単です。Liferay kaleoワークフローの問題

  1. ユーザーレビューはレビューが拒否した場合は拒否されたとして、それは見なければならないと、ユーザーが にでき、再びそれを再提出する必要があります表示
  2. を持って、それを承認した場合は、審査
  3. のために行くのWebコンテンツ
  4. を作成レビュー

のために私は、レビュー担当者が拒否した場合、それはGポイント4.

で問題を抱えています拒否されたようにしかし、作成されたWebコンテンツを再編集しようとしたときには、常に「下書き」モードにとどまります。レビュー担当者はワークフロータスクでタスクを取得しませんでした。

私はliferayを使用しています。6.2 ce 3.以下は私のワークフローの定義です。

<?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>Single 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); 
        ]]> 
       </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> 
       <default>true</default> 
      </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 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 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> 

ポイント4を達成するために他の状態またはアクションを追加する必要がありますか?

答えて

0

あなたのXMLを見ずに(自分の電話でこれに答えています)、説明は自動的にインストールされた単一の承認者のワークフローと同じように聞こえます。このワークフローのXMLをダウンロードして検査し、現在のワークフローと比較することができます。

+0

レビュー担当者がリストビューで「保留中」の状態になり、フルビューで保留(更新)するWebコンテンツを拒否すると、LiferayでOOTBになるもの。これは通常のユーザーにとっては少し混乱します。私が求めているのは、コントロールパネルに「拒否」と表示され、そこからユーザーはコンテンツを更新してから再送信できます。ただし、デフォルトの単一承認者ワークフローでは、「保留(更新)」状態で同じことが行われます。 – aston

+0

私は完全にあなたに従っているかどうかはわかりませんが、ワークフローの動作以外の方法で検索コンテナの動作を変更するように思えます。ステータスがワークフローに設定されている可能性があり、検索コンテナが特定のステータスのエントリのみを表示するように設定されている可能性があります。それはチェックアウトの価値がある。興味のある検索コンテナが設定されているJSPを探し、 'WorkflowConstants'を探します。私はちょうどここで推測しています。 –

0

私はあなたが更新タスクですでに行ったようにステータスを「拒否」に設定したいと思うが、すぐに同じアクションスクリプトでステータスを「保留中」に設定する。

Packages.com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil.updateStatus(Packages.com.liferay.portal.kernel.workflow.WorkflowConstants.toStatus("pending"), workflowContext); 
関連する問題