2013-09-24 38 views
0

我不想動了當工作流批准的其他目錄我的文件,我用Activiti的工作,我插入下面的代碼露天Activiti的 - 將一個文檔

<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> 
     <activiti:field name="script"> 
     <activiti:expression>if(task.getVariableLocal('scwf_approveRejectOutcome') == 'Approve') { 

    var dest = bpm_context.childByNamePath("nv"); 
    for (var i = 0; i &lt; bpm_package.children.length; i++) 
    { 
     bpm_package.children[i].move(dest); 
    }</activiti:expression> 
     </activiti:field> 
</activiti:taskListener> 

我得到的露天此錯誤:

org.activiti.engine.ActivitiException: Exception while invoking TaskListener: Incompatible type set on field declaration 'script' for class org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript. Declared value has type org.activiti.engine.impl.el.JuelExpression, while expecting org.dom4j.Element 

我該如何使用activiti移動我的文檔?

回答

1

您正在使用錯誤標記來包裝腳本內容。如錯誤消息所示,它無法將類型org.activiti.engine.impl.el.JuelExpression的值分配給任務偵聽器的script字段。

使用的activity:string代替activity:expression預期應該工作:

<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> 
     <activiti:field name="script"> 
     <activiti:string> 
      if(task.getVariableLocal('scwf_approveRejectOutcome') == 'Approve') { 

      var dest = bpm_context.childByNamePath("nv"); 
      for (var i = 0; i &lt; bpm_package.children.length; i++) 
      { 
      bpm_package.children[i].move(dest); 
      } 
     </activiti:string> 
     </activiti:field> 
</activiti:taskListener> 
+0

我做到了,現在我得到這個錯誤: org.activiti.engine.ActivitiException:異常而調用TaskListener:不兼容類型的字段聲明「腳本」類組織設置。 alfresco.repo.workflow.jbpm.AlfrescoJavaScript。聲明值的類型爲org.activiti.engine.impl.el.FixedValue,期待org.dom4j.Element – falcon1990

2

應該

<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener"> 
    <activiti:field name="script"> 
    <activiti:string> 
     if(task.getVariableLocal('scwf_approveRejectOutcome') == 'Approve') { 

     var dest = bpm_context.childByNamePath("nv"); 
     for (var i = 0; i &lt; bpm_package.children.length; i++) 
     { 
     bpm_package.children[i].move(dest); 
     } 
    </activiti:string> 
    </activiti:field> 

0

試試這個,包裹裏面<activiti:string>代碼<![CDATA[ your code ]]>

<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> 
     <activiti:field name="script"> 
     <activiti:string><![CDATA[ 
      if(task.getVariableLocal('scwf_approveRejectOutcome') == Approve') { 
      var dest = bpm_context.childByNamePath("nv"); 
      for (var i = 0; i &lt; bpm_package.children.length; i++) 
      { 
      bpm_package.children[i].move(dest); 
      } 
     ]]> </activiti:string> 
     </activiti:field> 
</activiti:taskListener> 

或者這樣:

<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener"> 
    <activiti:field name="script"> 
     <activiti:string><![CDATA[ 
      if(task.getVariableLocal('scwf_approveRejectOutcome') == 'Approve') { 
       var dest = bpm_context.childByNamePath("nv"); 
       for (var i = 0; i &lt; bpm_package.children.length; i++) 
       { 
       bpm_package.children[i].move(dest); 
       } 
    ]]></activiti:string> 
    </activiti:field> 
</activiti:taskListener>