2016-06-24 6 views
1

Мой пример использования довольно прямолинейный для использования единого рабочего процесса утверждения для веб-содержимого.Liferay kaleo workflow issue

  1. пользователя создать веб-контент
  2. It Goes для обзора
  3. Если рецензент одобрил он получил дисплей
  4. Если Рецензент отвергает, он должен смотреть, как отрицаются и пользователь должен иметь возможность повторно отправить его снова для рассмотрения

у меня вопрос в пункте 4.

Когда рецензент отвергает, то г как отрицается. Но когда созданный пытается переконфигурировать веб-контент и «отправить на публикацию», он всегда остается в режиме «Черновик». Рецензент не выполнял никаких задач в своей задаче рабочего процесса.

Я использую liferay 6.2 ce ga 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

Тот, который приходит OOTB с Liferay, когда рецензент отвергает веб-контент, который он идет с «до» состояния в виде списка и до (обновлений) в полном виде. Это немного запутанно для обычных пользователей. То, что я ищу, это показывает «отклонено» на панели управления, и оттуда пользователь может обновить контент и затем повторно отправить. Несмотря на то, что рабочий процесс по умолчанию с одним утверждением дает то же самое с состоянием «Ожидание (обновление)». – aston

+0

Я не уверен, что полностью преследую вас, но похоже, что вы хотите изменить поведение контейнера поиска больше, чем поведение рабочего процесса. Вероятно, ваш статус задан в рабочем процессе, и контейнер поиска может быть настроен для отображения только записей определенного статуса. Это стоит проверить. Найдите JSP, в котором интересующий вас контейнер поиска настроен и выполните поиск 'WorkflowConstants'. Я просто угадываю здесь. –

0

Я считаю, что вы хотите установить статус «отказано», как вы уже сделали в задаче обновления, но затем сразу же в том же сценарии действий установите статус «ожидающий».

Packages.com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil.updateStatus(Packages.com.liferay.portal.kernel.workflow.WorkflowConstants.toStatus("pending"), workflowContext);