cancel
Showing results for 
Search instead for 
Did you mean: 

Send e-mail when person is assigned workflow

durrell
Champ in-the-making
Champ in-the-making
I've researched this and can't find a definitive answer. I'm sure it's fairly straight forward, but I just can't figure out the swimlanes and task events, blah blah blah.

Can anyone point me in the right direction? Basically I need:

Assign document to user for review > send user e-mail notifying them to check dashboard > click document from dashboard > accept or reject > end
47 REPLIES 47

sanket
Champ on-the-rise
Champ on-the-rise
I m sorry but I didnt get what you explained. I added ur code in my review_processDefinition.xml. But email is not sent. Is the code correct ???
If not, can u please correct me ? My group name is MyGroup1.

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

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

    <swimlane name="initiator" />

    <start-state name="start">
        <task name="wf:submitReviewTask" swimlane="initiator" />
      
      <transition name="inReview" to="node1">
         <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
               <script>
                  <variable name="bpm_package" access="read" />
                  <expression>
                     bpm_package.children[0].properties["custom:statutdocument"] = "En relecture";
                     bpm_package.children[0].save();
                  </expression>
               </script>
            </action>
         </transition>
      <transition name="" to="review"/>
         
    </start-state>

    <swimlane name="reviewer">
        <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
            <actor>#{bpm_assignee}</actor>
        </assignment>   
    </swimlane>
   <decision name="isViewed">
         <event type="node-enter">
               <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
                  <script>
                     <variable name="wf_reviewerCount" access="write"/>
                     <expression>people.getMembers(people.getGroup('GROUP_MyGroup1')).length;</expression>
                  </script>
               </action>
            </event>
          <transition to="Rejected" name="isFalse">
             <condition>#{wf_approveCount == 0}</condition>
          </transition>
          <transition to="Approve" name="isTrue">
             <condition>#{wf_approveCount >= wf_reviewerCount}</condition>
          </transition>
    </decision>

   <node name="node1">
      <action class="org.alfresco.repo.workflow.jbpm.ForEachFork">
            <foreach>#{people.getMembers(people.getGroup('GROUP_MyGroup1'))}</foreach>
            <var>MyGroup1</var>
        </action>
      <transition to="HOApproved">
         <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
            <script>
                    if (wf_memoNotifyMe)
                    {
                       var mail = actions.create("mail");
                       mail.parameters.to = MyGroup1.properties.email;
                       mail.parameters.subject = "Memo Task " + bpm_workflowDescription;
                       mail.parameters.from = initiator.properties.email;
                       mail.parameters.text = "It's done";
                       mail.execute(bpm_package);
                    }
            </script>
         </action>
      </transition>
     
   </node>   
  
    <task-node name="review">
        <task name="wf:reviewTask" swimlane="reviewer">
            <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="approve" to="approved" />
        <transition name="reject" to="rejected" />
    </task-node>

    <task-node name="rejected">
        <task name="wf:rejectedTask" swimlane="initiator" />
         <transition name="" to="end">
           <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
            <script>
               <variable name="bpm_package" access="read" />
                   <expression>
                      bpm_package.children[0].properties["custom:statutdocument"] = "Travail";
                         bpm_package.children[0].save();
                     </expression>
            </script>
         </action>
        </transition>
    </task-node>

    <task-node name="approved">
        <task name="wf:approvedTask" swimlane="initiator" />
        <transition name="" to="end">
         <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
            <script>
               <variable name="bpm_package" access="read" />
                   <expression>
                      bpm_package.children[0].properties["custom:statutdocument"] = "Relu";
                         bpm_package.children[0].save();
                     </expression>
            </script>
         </action>
        </transition>
    </task-node>

    <end-state name="end" />

</process-definition>

thomasberment
Champ in-the-making
Champ in-the-making
I see you copied my code… If you want it copy, copy this code, it's work very good :

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

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

    <swimlane name="initiator" />
         
    <start-state name="start">
        <task name="wf:submitReviewTask" swimlane="initiator">
      </task>
         <transition name="" to="condition">
            <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
               <script>
                  <variable name="bpm_package" access="read" />
                  <variable name="statutDoc" access="read,write" />
                      <expression>
                         statutDoc = bpm_package.children[0].properties["custom:statutdocument"];
                      </expression>
                  </script>
            </action>
         </transition>
    </start-state>
   
    <swimlane name="reviewer">
      <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{bpm_assignee}</actor>
      </assignment>
   </swimlane>
   
    <decision name="condition">
      <transition name="conditionOK" to="sendMailOK">
         <condition>
            #{statutDoc == "Travail"}
         </condition>
      </transition>
      <transition name="conditionKO"  to="sendMailKO">
         <condition>
            #{statutDoc != "Travail"}
         </condition>
      </transition>
   </decision>

   <node name="sendMailOK">
      <transition to="review">
         <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
               <script>
                  <variable name="bpm_package" access="read" />
                  <variable name="bpm_assignee" access="read" />
                  <variable name="initiator" access="read" />
                  <variable name="bpm_workflowDueDate" access="read" />
                  <expression>
                     bpm_package.children[0].properties["custom:statutdocument"] = "En relecture";
                     bpm_package.children[0].save();
                    
                     <!– Send a notification email –>
                    var mail = actions.create("mail");
                    mail.parameters.to = bpm_assignee.properties.email;
                    mail.parameters.from = initiator.properties.email;
                    mail.parameters.subject = "Alfresco : tâche de relecture";
                    mail.parameters.text = "Bonjour, \n\n\t" + initiator.properties["cm:firstName"] + " " + initiator.properties["cm:lastName"] + " vous demande de relire le document " + bpm_package.children[0].properties["cm:title"] + ", version " + bpm_package.children[0].properties["cm:versionLabel"] + ", avant validation.\n\n\tDélai de relecture : " + bpm_workflowDueDate + ". \n\n\tEn cas de rejet du document, merci d’ajouter votre Fiche de Lecture dans la GED et de la lier avec le document.\n\n\tCordialement, l'équipe Alfresco.";
                 mail.execute(bpm_package.children[0]);
                  </expression>
               </script>
            </action>
      </transition>
   </node>
   
   <node name="sendMailKO">
      <transition to="end">
         <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
               <script>
                  <variable name="bpm_package" access="read" />
                  <variable name="bpm_assignee" access="read" />
                  <variable name="initiator" access="read" />
                  <expression>               
                     <!– Send a notification email –>
                    var mail = actions.create("mail");
                    mail.parameters.to = initiator.properties.email;
                    mail.parameters.from = "Alfresco.com";
                    mail.parameters.subject = "Alfresco : erreur workflow";
                    mail.parameters.text = "Bonjour, \n\n\t Alfresco vous informe que votre workflow ne peut pas être lancé. Le document doit être en travail pour lancer la relecture.\n\n\tCordialement, l'équipe Alfresco.";
                 mail.execute(bpm_package.children[0]);
                  </expression>
               </script>
            </action>
      </transition>
   </node>

   <task-node name="review">
        <task name="wf:reviewTask" swimlane="reviewer">
            <event type="task-create">
              <script><variable name="bpm_workflowDueDate" access="read" /><variable name="bpm_workflowPriority" access="read" /><expression>
                 if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate;
                  if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority;
                   </expression></script>
            </event>
        </task>
      <transition name="Je refuse le document" to="rejected">
         <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
            <script>
               <variable name="bpm_package" access="read" />
               <variable name="bpm_assignee" access="read" />
               <variable name="initiator" access="read" />
                   <expression>
                      <!– Send a notification email –>
                      var mail = actions.create("mail");
                       mail.parameters.to = initiator.properties.email;
                       mail.parameters.from = bpm_assignee.properties.email;
                       mail.parameters.subject = "Alfresco : relecture refusée";
                       mail.parameters.text = "Bonjour, \n\n\tVotre demande de relecture pour le document " + bpm_package.children[0].properties["cm:title"] + ", a été refusé.\n\n\tCordialement, l'équipe Alfresco.";
                       mail.execute(bpm_package.children[0]);
                     </expression>
            </script>
         </action>
      </transition>
       
        <transition name="J’accepte le document" to="approved">
           <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
            <script>
               <variable name="bpm_package" access="read" />
               <variable name="bpm_assignee" access="read" />
               <variable name="initiator" access="read" />
                   <expression>
                      <!– Send a notification email –>
                      var mail = actions.create("mail");
                       mail.parameters.to = initiator.properties.email;
                       mail.parameters.from = bpm_assignee.properties.email;
                       mail.parameters.subject = "Alfresco : relecture acceptée";
                       mail.parameters.text = "Bonjour, \n\n\tVotre demande de relecture pour le document " + bpm_package.children[0].properties["cm:title"] + ", a été accepté.\n\n\tCordialement, l'équipe Alfresco.";
                       mail.execute(bpm_package.children[0]);
                     </expression>
            </script>
         </action>
        </transition>
    </task-node>
   
    <task-node name="rejected">
        <task name="wf:rejectedReviewTask" swimlane="initiator" />
        <transition name="" to="end">
           <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
            <script>
               <variable name="bpm_package" access="read" />
                   <expression>
                      bpm_package.children[0].properties["custom:statutdocument"] = "Travail";
                         bpm_package.children[0].save();
                     </expression>
            </script>
         </action>
        </transition>
    </task-node>
   
    <task-node name="approved">
        <task name="wf:approvedReviewTask" swimlane="initiator" />
        <transition name="" to="end">
         <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
            <script>
               <variable name="bpm_package" access="read" />
               <variable name="bpm_assignee" access="read" />
                   <expression>
                      bpm_package.children[0].properties["custom:statutdocument"] = "Relu";
                      bpm_package.children[0].properties["custom:nomrelecteur"] = bpm_assignee.properties["cm:firstName"] + " " + bpm_assignee.properties["cm:lastName"];
                      bpm_package.children[0].properties["custom:daterelecture"] = new Date();
                      bpm_package.children[0].save();
                     </expression>
            </script>
         </action>
        </transition>
    </task-node>

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

</process-definition>

What is the goal of your Email ? To warn the assignee or initiator ?

thomasberment
Champ in-the-making
Champ in-the-making
Don't forget to set the alfresco-global.properties, like here : http://wiki.alfresco.com/wiki/Outbound_E-mail_Configuration

sanket
Champ on-the-rise
Champ on-the-rise
Yes right..I want to warn the assignee.

I implemented ur code. It really works fine. Thanks for it.
What change I have to make if I want to warn the assignee instead of initiator ??

Thanks in advance.

thomasberment
Champ in-the-making
Champ in-the-making
You just change the parameter "mail.parameters.to".

If you want warn the assignee it's : mail.parameters.to = bpm_assignee.properties.email;
Else it's : mail.parameters.to = initiator.properties.email;

In my code I use too the parameter "mail.parameters.from", it's to configure the address Email of the sender.

Last point, don't forget to delete my custom properties in the code like :
 bpm_package.children[0].properties["custom:statutdocument"] = "Relu";
bpm_package.children[0].properties["custom:nomrelecteur"] = bpm_assignee.properties["cm:firstName"] + " " + bpm_assignee.properties["cm:lastName"];
bpm_package.children[0].properties["custom:daterelecture"] = new Date();
bpm_package.children[0].save();
This code don't work if you haven't the good metadata in your document …

I hope help you, regards !

sanket
Champ on-the-rise
Champ on-the-rise
Ok..Thank u once again.
Just one last question..Why the email I get everytime is
Alfresco: erreur workflow
Alfresco vous informe que votre workflow ne peut pas tre lance. Le document doit etre en travail pour lancer la relecture.

It is entering this code block each time I start the workflow.

<node name="sendMailKO">
          <transition to="end">
           ……….
          </transition>
</node>

thomasberment
Champ in-the-making
Champ in-the-making
Because in my workflow I verify the custom property "statutdocument". The decision state is :
<decision name="condition">
      <transition name="conditionOK" to="sendMailOK">
         <condition>
            #{statutDoc == "Travail"}
         </condition>
      </transition>
      <transition name="conditionKO"  to="sendMailKO">
         <condition>
            #{statutDoc != "Travail"}
         </condition>
      </transition>
   </decision>

If you don't want the decision state you can copy this code. I deleted all my custom code. Try this :
<?xml version="1.0" encoding="UTF-8"?>

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

    <swimlane name="initiator" />
         
    <start-state name="start">
        <task name="wf:submitReviewTask" swimlane="initiator">
      </task>
         <transition name="" to="sendMailOK">
            <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
               <script>
                  <variable name="bpm_package" access="read" />
                  <variable name="statutDoc" access="read,write" />
                      <expression>
                         
                      </expression>
                  </script>
            </action>
         </transition>
    </start-state>
   
    <swimlane name="reviewer">
      <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{bpm_assignee}</actor>
      </assignment>
   </swimlane>
   
       <node name="sendMailOK">
      <transition to="review">
         <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
               <script>
                  <variable name="bpm_package" access="read" />
                  <variable name="bpm_assignee" access="read" />
                  <variable name="initiator" access="read" />
                  <variable name="bpm_workflowDueDate" access="read" />
                  <expression>
                    
                    
                     <!– Send a notification email –>
                    var mail = actions.create("mail");
                    mail.parameters.to = bpm_assignee.properties.email;
                    mail.parameters.from = initiator.properties.email;
                    mail.parameters.subject = "Alfresco : tâche de relecture";
                    mail.parameters.text = "Bonjour, \n\n\t" + initiator.properties["cm:firstName"] + " " + initiator.properties["cm:lastName"] + " vous demande de relire le document " + bpm_package.children[0].properties["cm:title"] + ", version " + bpm_package.children[0].properties["cm:versionLabel"] + ", avant validation.\n\n\tDélai de relecture : " + bpm_workflowDueDate + ". \n\n\tEn cas de rejet du document, merci d’ajouter votre Fiche de Lecture dans la GED et de la lier avec le document.\n\n\tCordialement, l'équipe Alfresco.";
                 mail.execute(bpm_package.children[0]);
                  </expression>
               </script>
            </action>
      </transition>
   </node>
   
   
   <task-node name="review">
        <task name="wf:reviewTask" swimlane="reviewer">
            <event type="task-create">
              <script><variable name="bpm_workflowDueDate" access="read" /><variable name="bpm_workflowPriority" access="read" /><expression>
                 if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate;
                  if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority;
                   </expression></script>
            </event>
        </task>
      <transition name="Je refuse le document" to="rejected">
         <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
            <script>
               <variable name="bpm_package" access="read" />
               <variable name="bpm_assignee" access="read" />
               <variable name="initiator" access="read" />
                   <expression>
                      <!– Send a notification email –>
                      var mail = actions.create("mail");
                       mail.parameters.to = initiator.properties.email;
                       mail.parameters.from = bpm_assignee.properties.email;
                       mail.parameters.subject = "Alfresco : relecture refusée";
                       mail.parameters.text = "Bonjour, \n\n\tVotre demande de relecture pour le document " + bpm_package.children[0].properties["cm:title"] + ", a été refusé.\n\n\tCordialement, l'équipe Alfresco.";
                       mail.execute(bpm_package.children[0]);
                     </expression>
            </script>
         </action>
      </transition>
       
        <transition name="J’accepte le document" to="approved">
           <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
            <script>
               <variable name="bpm_package" access="read" />
               <variable name="bpm_assignee" access="read" />
               <variable name="initiator" access="read" />
                   <expression>
                      <!– Send a notification email –>
                      var mail = actions.create("mail");
                       mail.parameters.to = initiator.properties.email;
                       mail.parameters.from = bpm_assignee.properties.email;
                       mail.parameters.subject = "Alfresco : relecture acceptée";
                       mail.parameters.text = "Bonjour, \n\n\tVotre demande de relecture pour le document " + bpm_package.children[0].properties["cm:title"] + ", a été accepté.\n\n\tCordialement, l'équipe Alfresco.";
                       mail.execute(bpm_package.children[0]);
                     </expression>
            </script>
         </action>
        </transition>
    </task-node>
   
    <task-node name="rejected">
        <task name="wf:rejectedReviewTask" swimlane="initiator" />
        <transition name="" to="end">
           <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
            <script>
               <variable name="bpm_package" access="read" />
                   <expression>
                      
                     </expression>
            </script>
         </action>
        </transition>
    </task-node>
   
    <task-node name="approved">
        <task name="wf:approvedReviewTask" swimlane="initiator" />
        <transition name="" to="end">
         <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
            <script>
               <variable name="bpm_package" access="read" />
               <variable name="bpm_assignee" access="read" />
                   <expression>
                      
                     </expression>
            </script>
         </action>
        </transition>
    </task-node>

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

</process-definition>

sanket
Champ on-the-rise
Champ on-the-rise
I wonder why I am getting the same mail
Alfresco: erreur workflow.

I have changed the french words to english as it was showing error while starting tomcat. (Not able to parse the xml)

But instead of getting d mail in English, I am getting d same mail that too in french.

Is thr any dependency ?
Or am I missing smthing ?

thomasberment
Champ in-the-making
Champ in-the-making
What is the code that you use ? Can you display it ?

sanket
Champ on-the-rise
Champ on-the-rise

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

        <swimlane name="initiator" />
            
        <start-state name="start">
            <task name="wf:submitReviewTask" swimlane="initiator">
          </task>
             <transition name="" to="sendMailOK">
                <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
                   <script>
                      <variable name="bpm_package" access="read" />
                      <variable name="statutDoc" access="read,write" />
                          <expression>
                            
                          </expression>
                      </script>
                </action>
             </transition>
        </start-state>
      
        <swimlane name="reviewer">
          <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
             <actor>#{bpm_assignee}</actor>
          </assignment>
       </swimlane>
      
           <node name="sendMailOK">
          <transition to="review">
             <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
                   <script>
                      <variable name="bpm_package" access="read" />
                      <variable name="bpm_assignee" access="read" />
                      <variable name="initiator" access="read" />
                      <variable name="bpm_workflowDueDate" access="read" />
                      <expression>
                       
                       
                         <!– Send a notification email –>
                        var mail = actions.create("mail");
                        mail.parameters.to = bpm_assignee.properties.email;
                        mail.parameters.from = initiator.properties.email;
                        mail.parameters.subject = "Alfresco : proofreading task";
                   mail.parameters.text = "Hello, \n\n\t" + initiator.properties["cm:firstName"] + " " + initiator.properties["cm:lastName"] + " you to read the document " + bpm_package.children[0].properties["cm:title"] + ", version " + bpm_package.children[0].properties["cm:versionLabel"] + ", before validation.\n\n\tTime Replay : " + bpm_workflowDueDate + ". \n\n\tIn case of rejection of the document, thank you for adding your Record of Reading in the GOL and link with the document.\n\n\tRegards, the team Alfresco.";

                  mail.execute(bpm_package.children[0]);
                  
                      </expression>
                   </script>
                </action>
          </transition>
       </node>
       <transition name="Je refuse le document" to="rejected">
             <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
                <script>
                   <variable name="bpm_package" access="read" />
                   <variable name="bpm_assignee" access="read" />
                   <variable name="initiator" access="read" />
                       <expression>
                          <!– Send a notification email –>
                          var mail = actions.create("mail");
                           mail.parameters.to = initiator.properties.email;
                           mail.parameters.from = bpm_assignee.properties.email;
                           mail.parameters.subject = "Alfresco : Replay Denied";
                           mail.parameters.text = "Hello, \n\n\tYour request for the document editing " + bpm_package.children[0].properties["cm:title"] + ", was refused.\n\n\tRegards, the team Alfresco.";
                           mail.execute(bpm_package.children[0]);
                         </expression>
                </script>
             </action>
          </transition>
          
            <transition name="Je accepte le document" to="approved">
               <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
                <script>
                   <variable name="bpm_package" access="read" />
                   <variable name="bpm_assignee" access="read" />
                   <variable name="initiator" access="read" />
                       <expression>
                          <!– Send a notification email –>
                          var mail = actions.create("mail");
                           mail.parameters.to = initiator.properties.email;
                           mail.parameters.from = bpm_assignee.properties.email;
                           mail.parameters.subject = "Alfresco : Replay accepted";
                           mail.parameters.text = "Hello, \n\n\tYour request for the document editing " + bpm_package.children[0].properties["cm:title"] + ", was accepted.\n\n\tRegards, the team Alfresco.";
                           mail.execute(bpm_package.children[0]);
                         </expression>
                </script>
             </action>
            </transition>
      
       <task-node name="review">
            <task name="wf:reviewTask" swimlane="reviewer">
                <event type="task-create">
                  <script>
              <variable name="bpm_workflowDueDate" access="read" />
              <variable name="bpm_workflowPriority" access="read" />
              <expression>
                     if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate;
                      if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority;
                   </expression>
               </script>
                </event>
            </task>
         
        </task-node>
      
        <task-node name="rejected">
            <task name="wf:rejectedReviewTask" swimlane="initiator" />
            <transition name="" to="end">
               <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
                <script>
                   <variable name="bpm_package" access="read" />
                       <expression>
                         
                         </expression>
                </script>
             </action>
            </transition>
        </task-node>
      
        <task-node name="approved">
            <task name="wf:approvedReviewTask" swimlane="initiator" />
            <transition name="" to="end">
             <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
                <script>
                   <variable name="bpm_package" access="read" />
                   <variable name="bpm_assignee" access="read" />
                       <expression>
                         
                         </expression>
                </script>
             </action>
            </transition>
        </task-node>

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

    </process-definition>