2016-10-19 2 views
0

Я создал собственный рабочий процесс в Alfresco с его моделью и конфигурацией. Если вы посмотрите на этот образец рабочего процесса:Как выбрать задатчика задания в Alfresco из предыдущей пользовательской задачи?

<userTask id="creaCS" name="Crea Certificato di Servizio" activiti:candidateGroups="DSGA" activiti:formKey="psw:activitiCreaCS"> 
    <extensionElements> 
     <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener"> 
      <activiti:field name="script"> 
       <activiti:string><![CDATA[logger.log("Log Log"); 
        execution.setVariable('DSGAincaricato', task.getVariable('psw_DSGAincaricato')); 
        execution.setVariable('DSincaricato', task.getVariable('psw_DSincaricato'));]]> 
       </activiti:string> 
      </activiti:field> 
     </activiti:taskListener> 
    </extensionElements> 
</userTask> 
<userTask id="valutaCS" name="Valuta Certificato di Servizio" activiti:assignee="${DSincaricato.properties.userName}" activiti:formKey="psw:activitiValutaCS"> 
    <extensionElements> 
     <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener"> 
      <activiti:field name="script"> 
       <activiti:string>if(task.getVariableLocal('psw_esitoValutazioneCS') == 'Approvato'){ 
        execution.setVariable('psw_prosegui', true); 
        }else{ 
        execution.setVariable('psw_prosegui', false); 
        } 
       </activiti:string> 
      </activiti:field> 
     </activiti:taskListener> 
    </extensionElements> 
</userTask> 

Я хочу, чтобы выбрать правопреемника для valutaCS в creaCS. Таким образом, я создал модель, как это:

<type name="psw:activitiCreaCS"> 
     <parent>bpm:startTask</parent> 
     <associations> 
      <association name="psw:DSGAincaricato"> 
       <title>DSGA incaricato</title> 
       <source> 
        <mandatory>false</mandatory> 
        <many>false</many> 
       </source> 
       <target> 
        <class>cm:person</class> 
        <mandatory>false</mandatory> 
        <many>false</many> 
       </target> 
      </association> 
      <association name="psw:DSincaricato"> 
       <title>DS incaricato</title> 
       <source> 
        <mandatory>false</mandatory> 
        <many>false</many> 
       </source> 
       <target> 
        <class>cm:person</class> 
        <mandatory>false</mandatory> 
        <many>false</many> 
       </target> 
      </association> 
     </associations> 
    </type> 

    <type name="psw:activitiValutaCS"> 
     <parent>bpm:activitiOutcomeTask</parent> 
     <properties> 
      <property name="psw:esitoValutazioneCS"> 
       <type>d:text</type> 
       <default>Respinto</default> 
       <constraints> 
        <constraint type="LIST"> 
         <parameter name="allowedValues"> 
          <list> 
           <value>Approvato</value> 
           <value>Respinto</value> 
          </list> 
         </parameter> 
        </constraint> 
       </constraints> 
      </property> 
     </properties> 
     <overrides> 
      <property name="bpm:packageItemActionGroup"> 
       <default>edit_package_item_actions</default> 
      </property> 
      <property name="bpm:outcomePropertyName"> 
       <default>{http://www.portaleScuola.com/model/workflow/1.0}esitoValutazioneCS</default> 
      </property> 
     </overrides> 
    </type> 

Я настроил форму:

<config evaluator="task-type" condition="psw:activitiCreaCS"> 
    <forms> 
     <form id="workflow-details"> 
      <field-visibility> 
       <show id="bpm:workflowDescription"/> 
       <show id="packageItems"/> 
       <show id="psw:DSGAincaricato"/> 
       <show id="psw:DSincaricato"/> 
       <show id="transitions"/> 
       <show id="bpm:status"/> 
      </field-visibility> 
      <appearance> 
       <set id="" appearance="title" label-id="workflow.set.general" /> 
       <set id="items" appearance="title" label-id="workflow.set.items" /> 
       <set id="progress" appearance="title" label-id="workflow.set.task.progress" />    
       <set id="other" appearance="title" label-id="workflow.set.other" /> 

       <field id="bpm:workflowDescription" label-id="workflow.field.message"> 
        <control template="/org/alfresco/components/form/controls/textarea.ftl"> 
         <control-param name="style">width: 95%</control-param> 
        </control> 
       </field> 
       <field id="packageItems" set="items" /> 
       <field set="actors" id="psw:DSGAincaricato"> 
        <control template="/org/alfresco/components/form/controls/authority.ftl"> 

        </control> 
       </field> 
       <field set="actors" id="psw:DSincaricato"> 
        <control template="/org/alfresco/components/form/controls/authority.ftl"> 

        </control> 
       </field> 
       <field id="bpm:status" set="progress" /> 
      </appearance> 
     </form> 
     <form> 
      <field-visibility> 
       <show id="bpm:workflowDescription"/> 
       <show id="packageItems"/> 
       <show id="psw:DSGAincaricato"/> 
       <show id="psw:DSincaricato"/> 
       <show id="transitions"/> 
       <show id="bpm:status"/> 
      </field-visibility> 
      <appearance> 
       <set id="" appearance="title" label-id="workflow.set.general" /> 
       <set id="items" appearance="title" label-id="workflow.set.items" /> 
       <set id="progress" appearance="title" label-id="workflow.set.task.progress" />    
       <set id="other" appearance="title" label-id="workflow.set.other" /> 

       <field id="bpm:workflowDescription" label-id="workflow.field.message"> 
        <control template="/org/alfresco/components/form/controls/textarea.ftl"> 
         <control-param name="style">width: 95%</control-param> 
        </control> 
       </field> 
       <field id="packageItems" set="items" /> 
       <field set="actors" id="psw:DSGAincaricato"> 
        <control template="/org/alfresco/components/form/controls/authority.ftl"> 

        </control> 
       </field> 
       <field set="actors" id="psw:DSincaricato"> 
        <control template="/org/alfresco/components/form/controls/authority.ftl"> 

        </control> 
       </field> 
       <field id="bpm:status" set="progress" /> 
      </appearance> 
     </form> 
    </forms> 
</config> 

Однако есть две проблемы. Во-первых, мой рабочий процесс не получает задание, даже не назначение группы в creaCS. Во-вторых, по каким-то причинам поля для пользователей отсутствуют в моих настраиваемых формах. Я не могу понять, почему, также потому, что нет никаких проблем с полем для psw_esitoValutazioneCS. У кого-нибудь есть идеи, как его решить?

ответ

0

Что касается назначения задачи, а не пытаться установить переменные исполнения со значением правопреемника, а затем читать его как правопреемник, вы можете прочитать правопреемник прямо из свойства в модели, например:

<userTask id="valutaCS" name="Valuta Certificato di Servizio" activiti:assignee="${psw_DSincaricato.properties.userName}" activiti:formKey="psw:activitiValutaCS"> 

Что касается внешнего вида поля на форме, вы попытались удалить элемент управления? У меня есть рабочий процесс, который делает то же, что и вы. Он отлично работает и не требует указания конкретного элемента управления.

Одна вещь состоит в том, что я не вижу конфигурацию формы, которая соответствует созданию рабочего процесса (condition = "activiti $ processId") с формой по умолчанию. Все, что я вижу, это конфигурация формы с типом, который соответствует идентификатору типа отправки. Вам нужны оба.

+0

Я попытался, но все еще нет поля для выбора DSincaricato, и если я попытаюсь щелкнуть завершенную задачу, у меня есть ошибка: –

+0

'org.activiti.engine.ActivitiException: Неизвестное свойство, используемое в выражении: $ {psw_DSincaricato.properties. userName} ' –

+0

Здесь вы можете найти файлы https://community.alfresco.com/message/753368-re-how-can-i-choose-the-assignee-in-a-previous-form#comment-753368 –