AnsweredAssumed Answered

Workflow working in 2.0 is not working in 2.1

Question asked by pobe on Aug 23, 2007
Latest reply on Nov 6, 2007 by pobe
I have a workflow that works perfectly fine in 2.0 but when it is run in 2.1 it stops in the middle of the process without any error message. What is wrong?

processdefinition



<?xml version="1.0" encoding="UTF-8"?>

<process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="sgu:workflow">

   <swimlane name="initiator"></swimlane>

   <swimlane name="projektledare">
      <assignment
         class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{sgu_projektledare}</actor>
      </assignment>
   </swimlane>

   <swimlane name="verksamhetschef">
      <assignment
         class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{sgu_verksamhetschef}</actor>
      </assignment>
   </swimlane>

   <swimlane name="enhetschef">
      <assignment
         class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{sgu_enhetschef}</actor>
      </assignment>
   </swimlane>

   <swimlane name="beställare">
      <assignment
         class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{sgu_bestallare}</actor>
      </assignment>
   </swimlane>

   <swimlane name="projektägare">
      <assignment
         class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{sgu_projektagare}</actor>
      </assignment>
   </swimlane>

   <start-state name="start">
      <task name="sgu:startaProcess" swimlane="initiator" />
      <transition name="Sänd" to="Utarbeta utkast"></transition>
   </start-state>

   <task-node name="Utarbeta utkast">
      <task name="sgu:utarbetaUtkast" swimlane="projektledare" />
      <transition name="Öppna för synpunkter" to="fork1"></transition>
   </task-node>

   <fork name="fork1">
      <transition name="tr1" to="Starta granskning"></transition>
      <transition name="tr2" to="Granska och redigera bs"></transition>
      <transition name="tr3" to="Granska och redigera pa"></transition>
      <transition name="tr4" to="Granska och redigera ec"></transition>
      <transition name="tr5" to="Granska och redigera vc"></transition>
   </fork>

   <node name="Starta granskning">
      <action class="org.alfresco.repo.workflow.jbpm.ForEachFork">
         <foreach>#{sgu_ovriga}</foreach>
         <var>reviewer</var>
      </action>
      <event type="node-enter">

      </event>
      <transition name="" to="Granska och redigera ovr"></transition>
   </node>

   <task-node name="Granska och redigera ovr">
      <task name="sgu:granskaRedigera">
         <assignment
            class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
            <actor>#{reviewer}</actor>
         </assignment>
      </task>
      <transition name="Granskning klar" to="join1"></transition>
   </task-node>

<join name="join1">
      <transition name="" to="endredigering"></transition>
   </join>

   <task-node name="Granska och redigera vc">
      <task name="sgu:granskaRedigera" swimlane="verksamhetschef">
      </task>
      <transition name="Granskning klar" to="endredigering" />
   </task-node>

   <task-node name="Granska och redigera bs">
      <task name="sgu:granskaRedigera" swimlane="beställare"></task>
      <transition name="Granskning klar" to="endredigering" />
   </task-node>

   <task-node name="Granska och redigera pa">
      <task name="sgu:granskaRedigera" swimlane="projektägare"></task>
      <transition name="Granskning klar" to="endredigering" />
   </task-node>

   <task-node name="Granska och redigera ec">
      <task name="sgu:granskaRedigera" swimlane="enhetschef"></task>
      <transition name="Granskning klar" to="endredigering" />
   </task-node>

   <join name="endredigering">
      <transition to="Bearbeta synpunkter" />
   </join>

   <task-node name="Bearbeta synpunkter">
      <task name="sgu:submitParallelReviewTask"
         swimlane="projektledare" />
      <transition name="Skicka för godkännande" to="startreview" />
   </task-node>

<node name="startreview">
      <action class="org.alfresco.repo.workflow.jbpm.ForEachFork">
         <foreach>#{sgu_ovriga}</foreach>
         <var>reviewer</var>
      </action>
      <event type="node-enter">
         <script>
            <variable name="sgu_approveCount" access="write" />
            <expression>sgu_approveCount = 0;</expression>
         </script>
      </event>
      <transition name="review" to="fork2" />
   </node>
   
   <fork name="fork2">
      <transition name="tr1" to="review ovr"></transition>
      <transition name="tr2" to="review vc"></transition>
      <transition name="tr3" to="review bs"></transition>
      <transition name="tr4" to="review pa"></transition>
      <transition name="tr5" to="review ec"></transition>
   </fork>
   
   <task-node name="review vc">
      <task name="sgu:reviewTask" swimlane="verksamhetschef"></task>
      <transition name="Ej godkänd" to="endreview" />
      <transition name="Godkänd" to="endreview">
         <script>
            <variable name="sgu_approveCount" access="read,write" />
            <expression>
               sgu_approveCount = sgu_approveCount +1;
            </expression>
         </script>
      </transition>
   </task-node>
   
   <task-node name="review bs">
      <task name="sgu:reviewTask" swimlane="beställare"></task>
      <transition name="Ej godkänd" to="endreview" />
      <transition name="Godkänd" to="endreview">
         <script>
            <variable name="sgu_approveCount" access="read,write" />
            <expression>
               sgu_approveCount = sgu_approveCount + 1;
            </expression>
         </script>
      </transition>
   </task-node>

   <task-node name="review pa">
      <task name="sgu:reviewTask" swimlane="projektägare"></task>
      <transition name="Ej godkänd" to="endreview" />
      <transition name="Godkänd" to="endreview">
         <script>
            <variable name="sgu_approveCount" access="read,write" />
            <expression>
               sgu_approveCount = sgu_approveCount +1;
            </expression>
         </script>
      </transition>
   </task-node>

   <task-node name="review ec">
      <task name="sgu:reviewTask" swimlane="enhetschef"></task>
      <transition name="Ej godkänd" to="endreview" />
      <transition name="Godkänd" to="endreview">
         <script>
            <variable name="sgu_approveCount" access="read,write" />
            <expression>
               sgu_approveCount = sgu_approveCount +1;
            </expression>
         </script>
      </transition>
   </task-node>
      
   <node name="review ovr">
      <action class="org.alfresco.repo.workflow.jbpm.ForEachFork">
         <foreach>#{sgu_ovriga}</foreach>
         <var>reviewer</var>
      </action>
      <event type="node-enter">

      </event>
      <transition name="" to="review ovr ind"></transition>
   </node>

   <task-node name="review ovr ind">
      <task name="sgu:reviewTask">
         <assignment
            class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
            <actor>#{reviewer}</actor>
         </assignment>
      </task>
      <transition name="Ej godkänd" to="join2" />
      <transition name="Godkänd" to="join2">
         <script>
            <variable name="sgu_approveCount" access="read,write" />
            <expression>
               sgu_approveCount = sgu_approveCount +1;
            </expression>
         </script>
      </transition>
   </task-node>

   <join name="join2">
      <transition name="" to="endreview"></transition>
   </join>

   <join name="endreview">
      <transition to="isapproved" />
   </join>

   <decision name="isapproved">
      <event type="node-enter">
         <script>
            <variable name="sgu_reviewerCount" access="write" />
            <variable name="sgu_requiredPercent" access="write" />
            <variable name="sgu_actualPercent" access="write" />
            <expression>
               sgu_requiredPercent = sgu_requiredApprovePercent;
               sgu_reviewerCount = sgu_ovriga.size()+4;
               sgu_actualPercent = ((sgu_approveCount * 100) /   sgu_reviewerCount);
            </expression>
         </script>
      </event>
            
      <transition name="Ej godkänd" to="rejected" />
      <transition name="Godkänd" to="approved">
            <condition>#{sgu_actualPercent > sgu_requiredApprovePercent}</condition>
      </transition>
   </decision>

   <task-node name="approved">
      <task name="sgu:approvedParallelTask" swimlane="initiator" />
      <transition name="Avsluta arbetsflöde" to="end" />
   </task-node>

   <task-node name="rejected">
         <task name="sgu:rejectedParallelTask" swimlane="initiator" />
      <transition name="Avsluta arbetsflöde" to="end" />
   </task-node>

   <end-state name="end" />

</process-definition>


Task model:



<?xml version="1.0" encoding="UTF-8"?>

<model name="sgu:workflowmodel"
   xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <imports>
      <import uri="http://www.alfresco.org/model/bpm/1.0"
         prefix="bpm" />
      <import uri="http://www.alfresco.org/model/dictionary/1.0"
         prefix="d" />
      <import uri="http://www.alfresco.org/model/content/1.0"
         prefix="cm" />
   </imports>

   <namespaces>
      <namespace uri="sgu.workflow" prefix="sgu" />
   </namespaces>

   <types>
      <type name="sgu:startaProcess">
         <parent>bpm:startTask</parent>
         <mandatory-aspects>
            <aspect>sgu:projektledare</aspect>
         </mandatory-aspects>
      </type>

      <type name="sgu:utarbetaUtkast">
         <parent>bpm:workflowTask</parent>
         <overrides>
            <property name="bpm:packageItemActionGroup">
               <default>edit_package_item_actions</default>
            </property>
         </overrides>
         <mandatory-aspects>
            <aspect>sgu:verksamhetschef</aspect>
            <aspect>sgu:enhetschef</aspect>
            <aspect>sgu:projektagare</aspect>
            <aspect>sgu:bestallare</aspect>
            <aspect>sgu:ovriga</aspect>
         </mandatory-aspects>
      </type>
      
      <type name="sgu:reviewTask">
         <parent>bpm:workflowTask</parent>
      </type>

      <type name="sgu:granskaRedigera">
         <parent>bpm:workflowTask</parent>
         <overrides>
            <property name="bpm:packageItemActionGroup">
               <default>edit_package_item_actions</default>
            </property>
         </overrides>
      </type>

      <type name="sgu:rejectedParallelTask">
         <parent>bpm:workflowTask</parent>
         <mandatory-aspects>
            <aspect>sgu:parallelReviewStats</aspect>
         </mandatory-aspects>
      </type>

      <type name="sgu:approvedParallelTask">
         <parent>bpm:workflowTask</parent>
         <mandatory-aspects>
            <aspect>sgu:parallelReviewStats</aspect>
         </mandatory-aspects>
      </type>

      <type name="sgu:submitParallelReviewTask">
         <parent>sgu:submitConcurrentReviewTask</parent>
         <mandatory-aspects>
            <aspect>sgu:verksamhetschef</aspect>
            <aspect>sgu:enhetschef</aspect>
            <aspect>sgu:projektagare</aspect>
            <aspect>sgu:bestallare</aspect>
            <aspect>sgu:ovriga</aspect>
         </mandatory-aspects>
      </type>

      <type name="sgu:submitConcurrentReviewTask">
         <parent>bpm:startTask</parent>
         <properties>
            <property name="sgu:requiredApprovePercent">
               <type>d:int</type>
               <mandatory>true</mandatory>
               <default>99</default>
               <constraints>
                  <constraint type="MINMAX">
                     <parameter name="minValue">
                        <value>1</value>
                     </parameter>
                     <parameter name="maxValue">
                        <value>100</value>
                     </parameter>
                  </constraint>
               </constraints>
            </property>
         </properties>
      </type>

   </types>

   <aspects>

      <aspect name="sgu:ovriga">
         <associations>

            <association name="sgu:ovriga">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>cm:person</class>
                  <mandatory>true</mandatory>
                  <many>true</many>
               </target>
            </association>

         </associations>
      </aspect>

      <aspect name="sgu:enhetschef">
         <associations>

            <association name="sgu:enhetschef">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>cm:person</class>
                  <mandatory>true</mandatory>
                  <many>false</many>
               </target>
            </association>

         </associations>
      </aspect>

      <aspect name="sgu:bestallare">
         <associations>

            <association name="sgu:bestallare">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>cm:person</class>
                  <mandatory>true</mandatory>
                  <many>false</many>
               </target>
            </association>

         </associations>
      </aspect>

      <aspect name="sgu:projektagare">
         <associations>

            <association name="sgu:projektagare">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>cm:person</class>
                  <mandatory>true</mandatory>
                  <many>false</many>
               </target>
            </association>

         </associations>
      </aspect>

      <aspect name="sgu:projektledare">
         <associations>

            <association name="sgu:projektledare">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>cm:person</class>
                  <mandatory>true</mandatory>
                  <many>false</many>
               </target>
            </association>

         </associations>
      </aspect>

      <aspect name="sgu:verksamhetschef">
         <associations>

            <association name="sgu:verksamhetschef">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>cm:person</class>
                  <mandatory>true</mandatory>
                  <many>false</many>
               </target>
            </association>

         </associations>
      </aspect>

      <aspect name="sgu:parallelReviewStats">
         <properties>
            <property name="sgu:reviewerCount">
               <type>d:int</type>
            </property>
            <property name="sgu:requiredPercent">
               <type>d:int</type>
            </property>
            <property name="sgu:approveCount">
               <type>d:int</type>
            </property>
            <property name="sgu:actualPercent">
               <type>d:int</type>
            </property>
         </properties>
      </aspect>

   </aspects>

</model>


web-client-config:




<alfresco-config>

   <config evaluator="string-compare" condition="Languages">
      <languages>
         <language locale="ca_ES">Catalan</language>
         <language locale="se_SE">Swedish</language>
    <language locale="da_DK">Danish</language>
         <language locale="de_DE">German</language>
         <language locale="es_ES">Spanish</language>
         <language locale="el_GR">Greek</language>
         <language locale="fr_FR">French</language>
         <language locale="it_IT">Italian</language>
         <language locale="ja_JP">Japanese</language>
         <language locale="du_NL">Dutch</language>
         <language locale="pt_BR">Portuguese (Brazilian)</language>
         <language locale="ru_RU">Russian</language>
         <language locale="fi_FI">Finnish</language>
         <language locale="tr_TR">Turkish</language>
         <language locale="zh_CN">Simplified Chinese</language>
      </languages>
   </config>
  
   <config evaluator="node-type" condition="sgu:startaProcess" replace="true">
        <property-sheet>
         <separator name="sep1" display-label-id="general"
component-generator="HeaderSeparatorGenerator" />
         <show-property name="bpm:workflowDescription"
component-generator="TextAreaGenerator" />
         <show-property name="bpm:workflowPriority"
display-label-id="wf_review_priority" />
         <show-property name="bpm:workflowDueDate"
display-label-id="wf_review_due_date" />
         <separator name="sep2" display-label-id="users_and_roles"
component-generator="HeaderSeparatorGenerator" />
         <show-association name="sgu:projektledare"
display-label="Projektledare" />
      </property-sheet>
      
   </config>
   
   <config evaluator="node-type" condition="sgu:utarbetaUtkast"
replace="true">
        <property-sheet>

         <separator name="sep1" display-label-id="general"
component-generator="HeaderSeparatorGenerator" />
         <show-property name="bpm:taskId"/>
         <show-property name="bpm:description"
component-generator="TextAreaGenerator"/>
         <show-property name="bpm:dueDate"/>
         <show-property name="bpm:priority"/>
    <separator name="sep2" display-label-id="users_and_roles"
component-generator="HeaderSeparatorGenerator" />
    <show-association name="sgu:verksamhetschef"
display-label="Verksamhetschef" />
    <show-association name="sgu:enhetschef" display-label="Enhetschef" />
    <show-association name="sgu:projektagare" display-label="Projektagare" />
    <show-association name="sgu:bestallare" display-label="Bestallare" />
    <show-association name="sgu:ovriga" display-label="Ovriga" />
   </property-sheet>
   </config>


<config evaluator="node-type" condition="sgu:submitParallelReviewTask"
replace="true">
        <property-sheet>

         <separator name="sep1" display-label-id="general"
component-generator="HeaderSeparatorGenerator" />
         <!–show-property name="bpm:taskId"/–>
         <show-property name="bpm:description"
component-generator="TextAreaGenerator"/>
         <show-property name="bpm:dueDate"/>
         <show-property name="bpm:priority"/>
    <separator name="sep2" display-label-id="users_and_roles"
component-generator="HeaderSeparatorGenerator" />
    <show-association name="sgu:verksamhetschef"
display-label="Verksamhetschef" />
    <show-association name="sgu:enhetschef" display-label="Enhetschef" />
    <show-association name="sgu:projektagare" display-label="Projektagare" />
    <show-association name="sgu:bestallare" display-label="Bestallare" />
    <show-association name="sgu:ovriga" display-label="Ovriga" />
   </property-sheet>
   </config>
     
  
  
<config evaluator="string-compare" condition="Space Wizards">
      <folder-types>
         <type name="sgu:projectSpace"
               description="Utrymme for ett P-projekt"
               display-label="Projektutrymme" />
      </folder-types>
   </config>

   <config evaluator="node-type" condition="sgu:projectSpace">
      <property-sheet>
        <show-property name="sgu:Status" />
        <show-property name="sgu:StartDatum" />
        <show-property name="sgu:SlutDatum" />
        <show-association name="sgu:Projektledare"
show-in-edit-mode="true" show-in-view-mode="true" />
        <show-association name="sgu:Bestallare" show-in-edit-mode="true"
show-in-view-mode="true" />
        <show-association name="sgu:Verksamhetschef"
show-in-edit-mode="true" show-in-view-mode="true" />
      </property-sheet>
    </config>

   <config evaluator="node-type" condition="custom:projektdokumentation">
      <property-sheet>
         <show-property name="mimetype" display-label-id="content_type"
                        component-generator="MimeTypeSelectorGenerator" />
         <show-property name="size" display-label-id="size"
                        converter="org.alfresco.faces.ByteSizeConverter"
                        show-in-edit-mode="false" />
         <show-property name="custom:Projekt" />
         <show-property name="custom:Datum" />
         <show-property name="custom:Projektledare" />
         <show-property name="custom:DokumentNr" />
         <show-property name="custom:DokumentTyp" />
      </property-sheet>
   </config>

   <config evaluator="string-compare" condition="Content Wizards">
      <content-types>
        <type name="custom:projektdokumentation"/>
      </content-types>
   </config>
  
    <config evaluator="node-type" condition="sgu:approvedParallelTask"
replace="true">
        <property-sheet>
             <separator name="sep1" display-label-id="general"
component-generator="HeaderSeparatorGenerator" />
         <show-property name="bpm:taskId"/>
   </property-sheet>
   </config>
  
     <config evaluator="node-type" condition="sgu:rejectedParallelTask"
replace="true">
        <property-sheet>
             <separator name="sep1" display-label-id="general"
component-generator="HeaderSeparatorGenerator" />
         <show-property name="bpm:taskId"/>
   </property-sheet>
   </config>
     
   <config evaluator="node-type" condition="sgu:granskaRedigera"
replace="true">
        <property-sheet>
   </property-sheet>
   </config>
  
   <config evaluator="string-compare" condition="cm:folder icons">
   <icons>
   <icon name="space-icon-video"
path="/images/icons/space-icon-video.gif" />
   </icons>
   </config>
  
      <config evaluator="string-compare" condition="Sidebar">
      <sidebar>
         <plugins>
            <plugin id="livesearch" label="Livesearch"
description="Livesearch" page="/jsp/livesearch.jsp" />
         </plugins>
      </sidebar>
   </config>
  
</alfresco-config>


Regards,
Pontus

Outcomes