J'ai mi en place un workflow simple mais j'ai vu...

cancel
Showing results for 
Search instead for 
Did you mean: 
michaelh
Active Member

Re: J'ai mi en place un workflow simple mais j'ai vu...

Et c'est quoi un message d'erreur standard ? Une boite de dialogue avec le texte "Erreur standard" ? Smiley Happy
intalio2007
Member II

Re: J'ai mi en place un workflow simple mais j'ai vu...

Bonjour,

Désolé de ne pas répondre plutôt. En fait ça marche bien avec Alfresco2.0 qui utilise Jboss comme serveur pour la chaine /portal/alfresco/jbpm… mais qd je remet alfresco avec le serveur Tomcat il n'accepte plus la chaine /alfresco/jbpm/upload comme cité dans le http://wiki.alfresco.com/wiki/WorkflowAdministration#Installing_JBoss_jBPM_Process_Designer. Ect ce que la version de alfresco2.0-Tomcat a besoin d'un composant pour pouvoir integrer le JBPM?

En ce qui concerne l'erreur il affichait " http://localhost:8080/alfreco/jbpm/upload not found "

Merci bcp de votre aide
rackmoon
Member II

Re: J'ai mi en place un workflow simple mais j'ai vu...

hi

quelqu'un pourrait-il me conseille sur 1 lien concernant une "fabriquation"(comment faire en fait) de workflow sous jboss ide for eclipse

merci d'avance
au revoir!
guiyan17
Member II

Re: J'ai mi en place un workflow simple mais j'ai vu...

Bonjour,
En ce qui concerne l'erreur il affichait " http://localhost:8080/alfreco/jbpm/upload not found "
ça c'est normal, il ne faut pas que ce soit "upload" à la fin mais "deployprocess"… tu es sur que tu as bien mis
"/alfresco/jbpm/deployprocess" au niveau de Server deploy?? :/
intalio2007
Member II

Re: J'ai mi en place un workflow simple mais j'ai vu...

Bonjour,

Merci beaucoup guiyan17 . ça marche bien avec "/alfresco/jbpm/deployprocess". Je passe alors a l'etape suivante.

Merci encore une fois
guiyan17
Member II

Re: J'ai mi en place un workflow simple mais j'ai vu...

Bonjour,

Hum j'aurai une question annexe… comment peut on faire pour permettre le déplacement automatique de document d'un dossier vers un autre (Pour cela j'utilise une régle de déplacement de document executer lors d'un workflow simple) quand on est logué avec des droits invité ou éditeur… parce que moi je n'arrive pas à les déplacer, j'ai une erreur de permission me disant que je n'ai pas les droits suffisant pour déplacer un document !! Smiley Sad

En fait ça ne marche que lorsque je suis en admin ou logué avec des droits coordinateurs Smiley Indifferent


J'espère avoir une réponse parce que c'est pour une présentation à une entreprise très prochainement :rolleyes:

Merci à ceux qui souhaiterons me venir en aide…

Yannick
michaelh
Active Member

Re: J'ai mi en place un workflow simple mais j'ai vu...

Pour le workflow simple, l'utilisateur a besoin d'avoir les droits sur l'espace de de départ ET sur celui de destination …
jers85
Member II

Re: J'ai mi en place un workflow simple mais j'ai vu...

Bonjour,

Je travaille actuellement avec la version 1.4 d'Alfresco sous Windows et je dois faire un workflow détaillé afin de tester Alfresco pour une grand banque française. J'ai utilisé l'outil JBoss jbpm Process Designer sous Eclipse pour le construire. J'ai suivi la documentation du wiki et des PDF(Alfresco_Workflow_Guide.pdf,…). Cependant je suis novice dans Alfresco et dans cette notion de workflow, c'est pourquoi j'ai plusieurs questions à vous poser!

Questions générales:

1) Peut-on lancer, dans Alfresco, un workflow sans créer ou importer un document? J'ai réussi à tester mon workflow avec "Jboss Starters Kit" donc directement dans le navigateur et j'aimerais savoir si on peut le lancer un peu de la même manière dans Alfresco car pour le moment je le lance en cliquant sur Actions supplémentaires>>Démarrer le workflow avancé

2) Est-on obligé de modifier les fichiers xml à la main pour configurer le workflow et l'intégrer dans Alfresco (workflowModel.xml,web-client-config-properties.xml,workflow-messages.properties.xml,…). N'y a-t-il pas d'autres façons de faire?Vous ne suivez pas le standard XPDL?

3) Quels sont les principaux avantages de la version 2 pour les workflows? j'ai vu qu'il y avait une gestion des groupes.

Questions concernant le workflow:

Le principe de mon workflow est, en fait, le suivi d'une demande de remboursement de notes de frais pour un employé. L'employé fait la demande, la comptabilité reçoit la demande et ajoute des justificatifs de frais puis vérifie tous les justificatifs et refuse ou accepte la demande. Si la demande est acceptée, elle part au service "Paie" et l'employé est remboursé.

J'ai donc créé le processdefinition.xml avec Eclipse(JPDL). Je le déploie dans Alfresco avec Eclipse également.

4) J'ai vu dans ce topic que la question a déjà été posée mais il n'y a pas de réponse explicite! Quand le fichier processdefinition est déployé, où se retrouve t'il dans les dossiers d'Alfresco? En tous cas, il ne se situe pas dans "tomcatwebappsalfrescoWEB-INFclassesalfrescoworkflow"!

5) Pour créer des rôles, j'utilise les swimlanes. J'ai un "initiator" et j'aimerais avoir 2 autres swimlanes "assignee", cependant, on utilise une variable "bpm_assignee". J'aimerais savoir comment déclarer ces 2 swimlanes. Il en faudrait un pour la "comptabilité" et l'autre pour la "paye".
Voici mon code pour le moment:
   <!– SWIMLANES (= process roles) –>

   <swimlane name="initiator"></swimlane>
   <swimlane name="assigneeCompta">
      <assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/>
   </swimlane>
   <swimlane name="assigneePaye">
      <assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/>
   </swimlane>

Ne faut-il pas plutôt utiliser "bmp_assignees" ou alors déclarer une autre variable dans le bpmModel.xml.

6) Dernière question: j'ai vu que Dam a reçu une doc de 50 pages. Est-elle en français (je doute…) ou sinon a-t-elle pour titre "Creating and Customizing Workflow". Si ce n'est pas le cas, pourrais-je la recevoir?merci

Merci d'avance pour votre contribution.

Jérôme.
guiyan17
Member II

Re: J'ai mi en place un workflow simple mais j'ai vu...

1) Peut-on lancer, dans Alfresco, un workflow sans créer ou importer un document? J'ai réussi à tester mon workflow avec "Jboss Starters Kit" donc directement dans le navigateur et j'aimerais savoir si on peut le lancer un peu de la même manière dans Alfresco car pour le moment je le lance en cliquant sur Actions supplémentaires>>Démarrer le workflow avancé
Alors je sais qu'il y a une console d'administration pour workflow à l'adresse suivante :
http://localhost:8080/alfresco/faces/jsp/admin/workflow-console.jsp

Sauf que je sais pas trop comment la faire fonctionner, mais tu devrais y trouver ton bonheur


2) Est-on obligé de modifier les fichiers xml à la main pour configurer le workflow et l'intégrer dans Alfresco (workflowModel.xml,web-client-config-properties.xml,workflow-messages.properties.xml,…). N'y a-t-il pas d'autres façons de faire?Vous ne suivez pas le standard XPDL?
Si tu trouves une autre solution n'hésite pas dit le moi, mais pour le moment je n'ai rien trouvé d'autre…


3) Quels sont les principaux avantages de la version 2 pour les workflows? j'ai vu qu'il y avait une gestion des groupes.
Oui maintenant tu peux selectionner un groupe lors de l'affectation d'une tâche alors qu'avant tu ne pouvais selectionner que des utilisateurs.


4) J'ai vu dans ce topic que la question a déjà été posée mais il n'y a pas de réponse explicite! Quand le fichier processdefinition est déployé, où se retrouve t'il dans les dossiers d'Alfresco? En tous cas, il ne se situe pas dans "tomcatwebappsalfrescoWEB-INFclassesalfrescoworkflow"!
Et  bien je ne l'ai toujours pas trouvé, et d'après ce que j'en ai compris, c'est déployé dans la base, donc directement du SQL… alors maintenant je me trompe peut être :rolleyes: Et d'ailleurs à cause de ça je ne sais pas comment on pourrait supprimer un workflow une fois déployé par eclipse, donc si tu as la solution je la veux bien. A mon humble avis, ne t'acharne pas à trouver un fichier xml exporter dans Alfresco par Eclipse, je pense que tu n'en trouveras pas… Smiley Wink


5) Pour créer des rôles, j'utilise les swimlanes. J'ai un "initiator" et j'aimerais avoir 2 autres swimlanes "assignee", cependant, on utilise une variable "bpm_assignee". J'aimerais savoir comment déclarer ces 2 swimlanes. Il en faudrait un pour la "comptabilité" et l'autre pour la "paye".
Voici mon code pour le moment:
   <!– SWIMLANES (= process roles) –>

   <swimlane name="initiator"></swimlane>
   <swimlane name="assigneeCompta">
      <assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/>
   </swimlane>
   <swimlane name="assigneePaye">
      <assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/>
   </swimlane>

Ne faut-il pas plutôt utiliser "bmp_assignees" ou alors déclarer une autre variable dans le bpmModel.xml.
Hum tu pourrais préciser ta pensée?? je comprend pas très bien ce que tu veux faire?? Smiley Tongue

6) Dernière question: j'ai vu que Dam a reçu une doc de 50 pages. Est-elle en français (je doute…) ou sinon a-t-elle pour titre "Creating and Customizing Workflow". Si ce n'est pas le cas, pourrais-je la recevoir?merci
Personellement je n'ai pas le document en ma possession!!


En espérant que ça puisse t'aider…
jers85
Member II

Re: J'ai mi en place un workflow simple mais j'ai vu...

Merci de m'avoir répondu guiyan17! Smiley Happy

Alors je sais qu'il y a une console d'administration pour workflow à l'adresse suivante :
http://localhost:8080/alfresco/faces/jsp/admin/workflow-console.jsp

Sauf que je sais pas trop comment la faire fonctionner, mais tu devrais y trouver ton bonheur
En fait, je veux pas utiliser cette console mais le lancer directement dans un espace ou l'accueil de la webapp. Au passage, je n'arrive pas non plus à détruire le workflow déjà déployé. J'ai tout utilisé comme commande et regardé les solutions sur les forums mais rien n'y fait ça veut pas.

Et  bien je ne l'ai toujours pas trouvé, et d'après ce que j'en ai compris, c'est déployé dans la base, donc directement du SQL… alors maintenant je me trompe peut être :rolleyes: Et d'ailleurs à cause de ça je ne sais pas comment on pourrait supprimer un workflow une fois déployé par eclipse, donc si tu as la solution je la veux bien. A mon humble avis, ne t'acharne pas à trouver un fichier xml exporter dans Alfresco

par Eclipse, je pense que tu n'en trouveras pas… Smiley Wink
Non je ne vais pas m'acharné car ça marche sans savoir où il est! Smiley Wink

5) Pour créer des rôles, j'utilise les swimlanes. J'ai un "initiator" et j'aimerais avoir 2 autres swimlanes "assignee", cependant, on utilise une variable "bpm_assignee". J'aimerais savoir comment déclarer ces 2 swimlanes. Il en faudrait un pour la "comptabilité" et l'autre pour la "paye".
Voici mon code pour le moment:
   <!– SWIMLANES (= process roles) –>

   <swimlane name="initiator"></swimlane>
   <swimlane name="assigneeCompta">
      <assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/>
   </swimlane>
   <swimlane name="assigneePaye">
      <assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/>
   </swimlane>

Ne faut-il pas plutôt utiliser "bmp_assignees" ou alors déclarer une autre variable dans le bpmModel.xml.
Hum tu pourrais préciser ta pensée?? je comprend pas très bien ce que tu veux faire?? Smiley Tongue
Je sais pas comment expliquer autrement! Je veux juste avoir 2 swimlanes représentant 2 assignés différents (compta et paye) mais ci-dessus, je les déclare en utilisant la même variable "bpm_assignee". N'y aura-t-il pas de conflit par la suite si je l'utilise dans le web-client?
La syntaxe que j'ai fait est-elle correcte? Faut-il déclarer plutôt une variable "bpm_assigneeS" ou alors dans bpmModel.xml, on a la déclaration de "bpm_assignee", ne faut-il pas créer une deuxième variable "bpm_assignee2" de la même forme mais je pense pas faire cela car c'est pas très propre.
En gros comment faire pour déclarer 2 autre swimlanes autre que l'initiateur?

J'ai quelques autres problèmes:

1) Dans le fichier "web-client-config-properties.xml", j'affiche les champs "nom" et "prénom" de l'employé afin qu'il puisse renseigner ces champs. J'aimerais à l'étape suivante, réafficher ces variables comme dueDate ou priority(avec ces variable, ça marche)? quelle est donc la syntaxe car j'ai essayé plusieurs façons mais sans succès.(voir fichiers en dessous).

web-client-config-properties.xml:

<!– Remboursement workflow tasks –>

   <config evaluator="node-type" condition="wf:launchWorkflowTask" replace="true">
      <property-sheet>
         <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
         <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" />
         <show-property name="bpm:workflowPriority" display-label-id="wf_remboursement_priority" />
         <show-property name="bpm:workflowDueDate" display-label-id="wf_remboursement_due_date" />
         <show-property name="wf:nom" />
         <show-property name="wfSmiley Tonguerenom" />
         <separator name="sep2" display-label-id="choose_user_compta" component-generator="HeaderSeparatorGenerator" />
         <show-association name="bpm:assignee" display-label-id="wf_remboursement_compta" />
      </property-sheet>
   </config>
  
   <config evaluator="node-type" condition="wf:getProofsTask" replace="true">
      <property-sheet>
         <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
         <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" read-only="true" />
         <show-property name="bpm:dueDate" display-label-id="wf_remboursement_due_date" read-only="true" />
         <show-property name="wf:nom" read-only="true" />
         <show-property name="wfSmiley Tonguerenom" read-only="true" />
      </property-sheet>
   </config>

workflowModel.xml:

      <!–                                     –>
      <!–  Remboursement Tasks  –>              
      <!–                                     –>
     
      <type name="wf:launchWorkflowTask">
         <parent>bpm:startTask</parent>
         <properties>
           <property name="wf:nom">
              <type>d:text</type>
           </property>
           <property name="wfSmiley Tonguerenom">
              <type>d:text</type>
           </property>
        </properties>
         <mandatory-aspects>
            <aspect>bpm:assignee</aspect>
         </mandatory-aspects>
      </type>
     
      <type name="wf:getProofsTask">
         <parent>bpm:workflowTask</parent>
         <mandatory-aspects>
            <aspect>bpm:assignee</aspect>
         </mandatory-aspects>
      </type>
     
      <type name="wf:getNewProofTask">
         <parent>bpm:workflowTask</parent>
         <properties>
           <property name="wf:libelle">
              <type>d:text</type>
           </property>
           <property name="wf:montant">
              <type>d:double</type>
           </property>
        </properties>
         <mandatory-aspects>
            <aspect>bpm:assignee</aspect>
         </mandatory-aspects>
      </type>
     
      <type name="wf:verifyProofsTask">
         <parent>bpm:workflowTask</parent>
         <mandatory-aspects>
            <aspect>bpm:assignee</aspect>
         </mandatory-aspects>
      </type>
     
      <type name="wf:refundEmployeeTask">
         <parent>bpm:workflowTask</parent>
         <properties>
           <property name="wf:total">
              <type>d:double</type>
           </property>
        </properties>
         <mandatory-aspects>
            <aspect>bpm:assignee</aspect>
         </mandatory-aspects>
      </type>

2) J'aimerais définir l'assigné automatiquement et non pas lque se soit 'utilisateur qui le choisit comme à la première étape:
         <separator name="sep2" display-label-id="choose_user_compta" component-generator="HeaderSeparatorGenerator" />
         <show-association name="bpm:assignee" display-label-id="wf_remboursement_compta" />

3) J'aimerais sauvegarder les justificatifs et les réafficher à l'étape de vérification des justificatifs. Pour cela j'ai fait une classe handler qui utilise 2 autres classes simples implémentant Serializable.(1 classe pour un justificatif et l'autre pour le panier de justificatifs(ArrayList<classe justificatif>))
comment pourrais-je faire pour que ça marche dans Alfresco?Les afficher le navigateur?
Avez-vous des pistes qui pourrais m'aider?

fichiers java:

http://rapidshare.com/files/25791581/AddProofActionHandler.java
http://rapidshare.com/files/25792216/PanierBean.java
http://rapidshare.com/files/25792263/ProofBean.java

4) comment faire pour mettre dans la balise <libelle> et <montant> la valeur qu'on entre dans les champs "wf:libelle" et "wf:montant" dans le processdefinition.xml? (voir fichier ci-dessous) J'ai des balises <variable> et j'ai dans le workflowModel 2 variables wf:libelle et wf:montant.

      <type name="wf:getNewProofTask">
         <parent>bpm:workflowTask</parent>
         <properties>
           <property name="wf:libelle">
              <type>d:text</type>
           </property>
           <property name="wf:montant">
              <type>d:double</type>
           </property>
        </properties>
         <mandatory-aspects>
            <aspect>bpm:assignee</aspect>
         </mandatory-aspects>
      </type>


processdefinition.xml:

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

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

   <!– SWIMLANES (= process roles) –>

   <swimlane name="initiator"></swimlane>
   <swimlane name="assigneeCompta">
      <assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/>
   </swimlane>
   <swimlane name="assigneePaye">
      <assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/>
   </swimlane>
  
   <!– NODES –>
  
   <start-state name="start">
      <task name="wf:launchWorkflowTask" swimlane="initiator">
         <!– <controller>
            <variable name="wf:nom" access="read,write,required"></variable>
            <variable name="wfSmiley Tonguerenom" access="read,write,required"></variable>
         </controller>
         –>
      </task>
      <transition name="" to="sendProofs"></transition>
   </start-state>
   <task-node name="sendProofs">
      <task name="wf:getProofsTask" swimlane="assigneeCompta">
         <!– <controller>
            <variable name="nom" access="read"></variable>
            <variable name="prenom" access="read"></variable>
         </controller>
         –>
         <event type="task-create">
                <script>
                    if (bpm_workflowDueDate != void)
                    {
                        taskInstance.dueDate = bpm_workflowDueDate;
                    }
                    if (bpm_workflowPriority != void)
                    {
                        taskInstance.priority = bpm_workflowPriority;
                    }
                </script>
          </event>
      </task>
      <transition name="addNewProof" to="addProof" />
      <transition name="verifyRequest" to="validRequestQuestion" />
   </task-node>
   <task-node name="addProof">
      <task name="wf:getNewProofTask" swimlane="assigneeCompta">
         <controller>
            <variable name="wf:libelle" access="read,write,required"></variable>
            <variable name="wf:montant" access="read,write,required"></variable>
         </controller>
      </task>
      <transition name="" to="sendProofs">
         <action name="addNewProofAction" class="workflow.remboursement.action.AddProofActionHandler">
            <libelle>
               <!–  recuperer la valeur du champ libelle –>
              
            </libelle>
            <montant>
               <!–  recuperer la valeur du champ montant –>
       </montant>
         </action>

      </transition>
   </task-node>
   <task-node name="validRequestQuestion">
      <task name="wf:verifyProofsTask" swimlane="assigneeCompta">
      </task>
      <transition name="reject" to="rejectRequest"></transition>
      <transition name="accept" to="acceptRequest"></transition>
   </task-node>
   <decision name="rejectRequest">
      <transition name="rejected" to="end">
         <action name="rejectedAction" class="workflow.remboursement.action.MessageActionHandler">
            <message>Demande refusee!</message>
         </action>
      </transition>
   </decision>
   <decision name="acceptRequest">
      <transition name="accepted" to="refundRequest">
         <action name="acceptedAction" class="workflow.remboursement.action.MessageActionHandler">
            <message>Demande acceptee!</message>
         </action>
      </transition>
   </decision>
      <task-node name="refundRequest">
      <task name="wf:refundEmployeeTask" swimlane="assigneePaye">
         <!– <controller>
            <variable name="montant total" access="read,write,required"></variable>
         </controller>
         –>
      </task>
      <transition name="notifyEmployee" to="end">
      <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
         <script>
               //var mail = actions.create("mail");
               //mail.parameters.to = initiator.properties["cm:email"];
               //mail.parameters.subject = "Remboursement: " + bpm_workflowDescription;
               //mail.parameters.from = bpm_assignee.properties["cm:email"];
               //mail.parameters.text = "Votre remboursement a ete effectue!nMontant:"+wf_total;
               //mail.execute(bpm_package);
         </script>
      </action>
      </transition>
   </task-node>
   <end-state name="end"></end-state>
</process-definition>


Désolé pour toutes ces questions mais je ne connais pas encore toute la syntaxe!!

Merci pour votre aide!!

Jérôme