BonjourJe vais devoir créer plusieurs workflow.J’ai...

cancel
Showing results for 
Search instead for 
Did you mean: 
laurentalfresco
Member II

BonjourJe vais devoir créer plusieurs workflow.J’ai...

Bonjour

Je vais devoir créer plusieurs workflow.
J’ai me suis déjà fait un aperçu assez complet des possibilités, mais des questions subsistent.

Les étapes successives de mon WF vont devoir changer le type d’un document. Chaque type héritant du précédent (cela semble logique et obligatoire, n’est-ce pas ?), et donc ajoutant des propriétés supplémentaires au document.
Ce que je voudrais ensuite, c’est pouvoir proposer à l’utilisateur exécutant sa tâche d’entrer ces nouvelles propriétés (dans la gestion de la tâche).
En fait, la validation d’une tâche devra entraîner un changement de type du document et une mise à jour de ses nouvelles propriétés (sans devoir aller les entrer manuellement dans les « détails » du document)

Est-ce vraiment possible ?

Si oui,
Je pense devoir me tourner vers les règles et les scripts, mais je suis un peu perdu.
Puis-je avoir quelques conseils ?

Merci
2 Replies
egr
Member II

Re: BonjourJe vais devoir créer plusieurs workflow.J’ai...

Bonjour,

Après une première étude de votre problèmatique, je pense qu'il est possible d'effectuer un changement de type et un enrichissement de méta-données en cours de workflow.

A chaque tâche assignée, vous allez utiliser une variable afin de récupérer la valeur que saisira l'utilisateur. Cette variable sera définie dans votre modèle de tâche. Cela pourrait ressembler à ceci :

 <type name="workflow:taskName">
         <parent>bpm:workflowTask</parent>
            <mandatory-aspects>
       <aspect>workflow:propertyOne</aspect>
            </mandatory-aspects>
      </type>
Pour la tâche "workflow:taskName" qui correspondrait à une tâche à réaliser, on rend obligatoire l'aspect déclarant la variable permettant de garder la valeur saisie par l'utilisateur.
L'aspect "workflowSmiley TongueropertyOne" pourrait être :

        <aspect name="workflow:propertyOne">
        <properties>
               <property name="workflow:propertyIdent">
                   <type>d:text</type>
               </property>
       </properties>
        </aspect>
Ensuite dans la définition de processus, dans la partie gérant la transition, il faudra écrire un script permettant de spécialiser le type du document et d'ajouter la propriété en question. A vérifier, mais il doit être possible dans la transition de récupérer la valeur de la variable puis d'effectuer la spécialisation. A voir s'il ne faut pas tout mettre dans un événement de type "<event type="task-create">" ou "<event type="task-end">".

 

<transition name="Terminer" to="end">
   <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
      <script>

          var test = bpm_package;
                    var child = test.children[0];
                    var ajoutOK = child.specializeType(nomDuType);
                    child.properties["nomPropriété"] = workflow_propertyIdent;
                    child.save();
                  
                    if (logger.isLoggingEnabled())
                    logger.log("Ajout : " + ajoutOK);
      </script>
   </action>
</transition>
Cette piste me semble logique mais je n'ai pas fait de test précis. Pour infos, il est bon de jeter un oeil au wiki Alfresco sur les workflows et l'API Javascrip :
http://wiki.alfresco.com/wiki/WorkflowAdministration
http://wiki.alfresco.com/wiki/JavaScript_API

ainsi que sur le guide JBPM :
http://docs.jboss.com/jbpm/v3/userguide/index.html
laurentalfresco
Member II

Re: BonjourJe vais devoir créer plusieurs workflow.J’ai...

Très bien merci, je ne vais pas tester cela de suite mais je vous tiens au courant