cancel
Showing results for 
Search instead for 
Did you mean: 

[Résolu]Récupérer des infos sur le swimlane dans un tâche

fred_pack
Champ in-the-making
Champ in-the-making
Bonjour à tous,

JE vous expose mon problème, si une ame charitable peut me donner un coup de main…

Je veux créer un workflow avec plusieurs intervenants. J' ai donc créé dans le Model ci-dessous des références cmSmiley Tongueerson pour chaque intervenant.

<?xml version="1.0" encoding="UTF-8"?>
<model name="pac:qua-01" xmlns="http://www.alfresco.org/model/dictionary/1.0">

        <!– Infos. –>
        <description>Validation 1 Qualite</description>
        <author>Fred</author>
        <version>1.0</version>

  <imports>
        <!– Import dictionnaire de definitions –>
        <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
        <!– Import modeles de definitions –>
        <import uri="http://www.alfresco.org/model/workflow/1.0" prefix="wf"/>
        <import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm"/>
        <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
  </imports>
  <namespaces>
        <!– Import nouveau namespace defini par ce modele –>
        <namespace uri="qua-01.pac" prefix="pac"/>
  </namespaces>

  <types>

        <type name="pac:debutCircuit">
                <parent>bpm:startTask</parent>
                <properties>
                        <property name="wf:notifyMe">
                                <type>d:boolean</type>
                                <default>false</default>
                        </property>
                </properties>

                <mandatory-aspects>
                        <aspect>pac:persRedac</aspect>
                        <aspect>pac:persVerif</aspect>
                        <aspect>pac:persAprouv</aspect>
                </mandatory-aspects>
        </type>

        <type name="pac:redaction">
                <parent>bpm:workflowTask</parent>

        <mandatory-aspects>
                <aspect>pac:persRedac</aspect>
        </mandatory-aspects>
        </type>


        <type name="pac:verification">
                <parent>bpm:workflowTask</parent>
        </type>

        <type name="pac:docRefuse">
                <parent>bpm:workflowTask</parent>
        </type>

        <type name="pac:versAppro">
                <parent>bpm:workflowTask</parent>
        </type>

  </types>

   <aspects>

        <aspect name="pac:persRedac">
           <associations>
                <association name="pac:persRedac">
                        <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="pac:persVerif">
           <associations>
                <association name="pac:persVerif">
                        <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="pac:persAprouv">
           <associations>
                <association name="pac:persAprouv">
                        <source>
                        <mandatory>false</mandatory>
                        <many>false</many>
                        </source>
                        <target>
                        <class>cm:person</class>
                        <mandatory>true</mandatory>
                        <many>false</many>
                        </target>
                </association>
           </associations>
        </aspect>

   </aspects>

</model>


Et bien sur des tâches dans le processdefinition que voici


<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1"  name="pac:qua-01">

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

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

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

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


   <start-state name="debut">
        <task name="pac:debutCircuit" swimlane="initiator"/>

        <transition name="deb" to="redac">
        <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
                <script>
                </script>
        </action>
        </transition>

   </start-state>

   <task-node name="redac">

        <task name="pac:redaction" swimlane="redacteur">
                <event type="task-create">
                        <script>
                                System.out.println("VAR1 :"+pac_persRedac.properties.email);
                        </script>
                </event>
        </task>
        <transition name="red" to="verif"></transition>
   </task-node>

        <task name="pac:verification" swimlane="verificateur"/>
        <transition name="rejette" to="redac"></transition>
        <transition name="accepte" to="aprob"></transition>
   </task-node>


   <task-node name="aprob">
        <task name="pac:approbation" swimlane="approbateur"/>
        <transition name="rejette" to="redac"></transition>
        <transition name="accepte" to="fin"></transition>
   </task-node>

    <end-state name="fin"></end-state>
</process-definition>


Dans une tâche , je voudrais récupérer des informations (firstName, lastName, email, . . . ) du swimlane en cours. J'ai fait des essais en éditant dans le log le résultat avec diverses syntaxes EX: System.out.println("VAR1 :"+pac_persRedac.properties.email);
mais rien ne marche avec les syntaxes que j'utilise, et je commence à tourner en rond   :cry:
Ma question est : quelle est la bonne syntaxe pour récupérer ces informations.
Merci de votre aide.
4 REPLIES 4

cleseach
Star Contributor
Star Contributor
Bonjour,
rien ne marche
Pouvez-vous préciser ?

Peut-être que taskInstance.actorId pourrait vous aider dans la récupération de l'acteur de la tâche ?

Cordialement,
Charles Le Seac'h

fred_pack
Champ in-the-making
Champ in-the-making
Bonjour, et merci pour votre réponse,
Pour étre plus clair, voici ce que je souhaite faire :

A la fin de la tâche <start-state name="debut">, je veux rajouter un <event type="task-end">
qui envoie un mail au rédacteur. Mais je ne sais pas comment récupérer cette adresse mail du rédacteur (que je veux mettre accessoirement
mettre dans une variable).
Ci dessous exemple de ce que j'imagine  Smiley Happy
   
<start-state name="debut">
        <task name="pac:debutCircuit" swimlane="initiator"/>
             <event type="task-end">
                <script>
                   <variable name="email_redac" access="write"/>
                     <expression>
                      email_redac = RECUP DE L'ADRESSE MAIL REDACTEUR;
                   </expression>
                </script>
             </event>

   </start-state>
En espérant être plus précis …
Cordialement

cleseach
Star Contributor
Star Contributor
Bonjour,

La lecture de cette section du wiki pourra sûrement vous rendre des services : http://wiki.alfresco.com/wiki/WorkflowAdministration#Actions_.26_Scripting.

Dans votre cas, je testerais (sans garantie) :
taskInstance.actorId.properties["cm:email"]

Cordialement,
Charles Le Seac'h

fred_pack
Champ in-the-making
Champ in-the-making
Probléme résolu, il manquait un peu de code et beaucoup de compréhension du sujet  Smiley Very Happy
Je poste le code :

processdefinition

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

<process-definition xmlns="urn:jbpm.org:jpdl-3.1"  name="pac01:pac01">

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

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

   <start-state name="debut">
        <task name="pac01:debut" swimlane="initiator"/>
        <transition name="debut" to="redaction">
        </transition>
   </start-state>

   <task-node name="redaction">
        <task name="pac01:redac" swimlane="redacteur">
                <event type="task-assign">
                        <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
                                <script>
                                        var mail = actions.create("mail");
                                        mail.parameters.to = pac01_persRedac.properties.email;
                                        mail.parameters.subject = "SUJET DU MAIL";
                                        mail.parameters.from = initiator.properties.email;
                                        mail.parameters.text = "TEXTE";
                                        mail.execute(bpm_package);
                                </script>
                        </action>
                </event>

        </task>

        <transition name="finRedac" to="end">
        </transition>
   </task-node>

    <end-state name="end"></end-state>
</process-definition>


Model

<?xml version="1.0" encoding="UTF-8"?>
<model name="pac01:pac01" xmlns="http://www.alfresco.org/model/dictionary/1.0">

  <imports>
        <!– Import modeles de definitions –>
        <import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm"/>
        <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
  </imports>
  <namespaces>
        <!– Import nouveau namespace defini par ce modele –>
<namespace uri="pac01.pac01" prefix="pac01"/>
  </namespaces>

  <types>

        <type name="pac01:debut">
                <parent>bpm:startTask</parent>
                <mandatory-aspects>
                        <aspect>pac01:persRedac</aspect>
                </mandatory-aspects>
        </type>

        <type name="pac01:redac">
                <parent>bpm:workflowTask</parent>

                <overrides>
                        <property name="bpm:packageItemActionGroup">
                                <default>edit_package_item_actions</default>
                        </property>
                </overrides>


        </type>

  </types>

   <aspects>
        <aspect name="pac01:persRedac">
        <associations>
        <association name="pac01:persRedac">
        <source>
                <mandatory>false</mandatory>
                <many>false</many>
        </source>
        <target>
                <class>cm:person</class>
                <mandatory>true</mandatory>
                <many>false</many>
        </target>
        </association>
        </associations>
        </aspect>
   </aspects>

</model>


Web-client-config

   <config evaluator="node-type" condition="pac01:debut" replace="true">
        <property-sheet>
                <separator name="sep1" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" />
                <show-association name="pac01:persRedac" display-label-id="pac_assign_redac" />
        </property-sheet>
   </config>

   <config evaluator="node-type" condition="pac01:redac" replace="true">
        <property-sheet>
                <separator name="sep2" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
                <show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
        </property-sheet>
   </config>