cancel
Showing results for 
Search instead for 
Did you mean: 

Come posso selezionare l'assignee in un user task precedente?

mafaldap
Star Contributor
Star Contributor

Sto creando un workflow personalizzato e avrei bisogno di far selezionare l'assegnatario di un task in uno dei passaggi precedenti. Ho fatto un tentativo ma provandolo su Alfresco non viene riconosciuto l'assegnatario (nemmeno quello di gruppo) e non compaiono neanche i campi dei form personalizzati che ho definito. Riporto alcune parti del codice.

Nel file bpmn:

<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>

Nel modello:

<type name="psw:activitiCreaCS">

  <parent>bpm:startTask</parent>

  <associations>

  <association name="pswSmiley Very HappySGAincaricato">

  <title>DSGA incaricato</title>

  <source>

  <mandatory>false</mandatory>

  <many>false</many>

  </source>

  <target>

  <class>cmSmiley Tongueerson</class>

  <mandatory>false</mandatory>

  <many>false</many>

  </target>

  </association>

  <association name="pswSmiley Very HappySincaricato">

  <title>DS incaricato</title>

  <source>

  <mandatory>false</mandatory>

  <many>false</many>

  </source>

  <target>

  <class>cmSmiley Tongueerson</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="bpmSmiley TongueackageItemActionGroup">

  <default>edit_package_item_actions</default>

  </property>

  <property name="bpmSmiley SurprisedutcomePropertyName">

  <default>{http://www.portaleScuola.com/model/workflow/1.0}esitoValutazioneCS</default>

  </property>

  </overrides>

  </type>

Sul progetto share:

<config evaluator="task-type" condition="psw:activitiCreaCS">

  <forms>

  <form id="workflow-details">

  <field-visibility>

  <show id="bpm:workflowDescription"/>

  <show id="packageItems"/>

  <show id="pswSmiley Very HappySGAincaricato"/>

  <show id="pswSmiley Very HappySincaricato"/>

  <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="pswSmiley Very HappySGAincaricato">

               <control template="/org/alfresco/components/form/controls/authority.ftl">

             

               </control>

               </field>

               <field set="actors" id="pswSmiley Very HappySincaricato">

               <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="pswSmiley Very HappySGAincaricato"/>

  <show id="pswSmiley Very HappySincaricato"/>

  <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="pswSmiley Very HappySGAincaricato">

               <control template="/org/alfresco/components/form/controls/authority.ftl">

             

               </control>

               </field>

               <field set="actors" id="pswSmiley Very HappySincaricato">

               <control template="/org/alfresco/components/form/controls/authority.ftl">

             

               </control>

               </field>

               <field id="bpm:status" set="progress" />

  </appearance>

  </form>

  </forms>

</config>

12 REPLIES 12

davidciamberlan
Elite Collaborator
Elite Collaborator

Ciao,

non ho avuto modo di provare il tuo codice... ma da una prima occhiata noto che nella riga dove avviene l'attribuzione dell'assignee c'è un "typo". In particolare mancano degli spazi all'inizio e alla fine dell'attributo activiti:assignee  (ho segnato le parti in rosso qui sotto)

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

Non so se sia solo un errore dovuto al "copia&incolla" nè se sia questo che genera il tuo problema... ma cominciamo con l'eliminare l'ovvio...

Grazie, ho appena controllato i file. Deve essersi trattato di un problema quando ho riportato il codice perché non trovo errori questi nell'originale.

openpj
Elite Collaborator
Elite Collaborator

<userTask id="creaCS" name="Crea Certificato di Servizio" activiti:candidateGroups="DSGA"

L'elemento activiti:candidateGroups credo vada valorizzato con il nome interno dell'authority, quindi credo che tu debba valorizzarlo con il prefisso GROUP_ in questo modo:

<userTask id="creaCS" name="Crea Certificato di Servizio" activiti:candidateGroups="GROUP_DSGA"

mafaldap
Star Contributor
Star Contributor

Tentativo fatto, ma non cambia.

Penso che GROUP_ non sia un'aggiunta obbligatoria e che debba considerare l'identificativo del gruppo da me creato, quindi semplicemente DSGA.

openpj
Elite Collaborator
Elite Collaborator

Fidati Smiley Happy

GROUP_ è necessario come prefisso per l'utilizzo dei gruppi come authority per quanto riguarda le assegnazioni.

Assicurati che il gruppo si chiami esattamente in quel modo, intendo anche a livello di case sensitive.

Puoi condividere la schermata del pannello di amministrazione dei gruppi con la lista dei gruppi?

Ovviamente oscurando o pixellando gli altri, oppure magari puoi scriverci la lista in formato testo quì.

mafaldap
Star Contributor
Star Contributor

Schermata 2016-10-20 alle 12.04.41.png

Quindi devo ricreare il gruppo con identificativo GROUP_DSGA e poi richiamarlo in quel modo nel mio workflow?

openpj
Elite Collaborator
Elite Collaborator

Ok allora, no non devi ricreare il gruppo, se provi a navigare il repository utilizzando il browser dei nodi vedrai che sotto /system/authorities troverai come childName del gruppo proprio GROUP_DSGA.

Quindi il problema del workflow non è legato all'assegnazione del gruppo ci deve essere un altro problema che ci sta sfuggendo.

openpj
Elite Collaborator
Elite Collaborator

Mi sembra di vedere un typo quì:

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

Manca uno spazio tra l'elemento activiti:assignee e activiti:formKey.

mafaldap
Star Contributor
Star Contributor

Il problema di battitura in realtà è stato causato dal copia incolla, nei file il codice è corretto.

Comunque intanto metto GROUP_DSGA quando richiamo il gruppo nel workflow e cerco di capire da dove viene l'errore. Anche perché non riesco a visualizzare correttamente i form personalizzati.