Started efactoring InviatationServiceImpl so that it uses Activit workflow engine.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@29990 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
N Smith
2011-08-23 13:24:42 +00:00
parent 24fa893ac3
commit fba09d9b2a
22 changed files with 602 additions and 682 deletions

View File

@@ -1,70 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Moderated invitation workflow -->
<!-- Moderated invitation workflow -->
<model name="imwf:invitation-moderated-workflow-model" xmlns="http://www.alfresco.org/model/dictionary/1.0">
<imports>
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" />
<import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm" />
<import uri="http://www.alfresco.org/model/workflow/1.0" prefix="wf" />
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm" />
</imports>
<imports>
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" />
<import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm" />
<import uri="http://www.alfresco.org/model/workflow/1.0" prefix="wf" />
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm" />
</imports>
<namespaces>
<namespace uri="http://www.alfresco.org/model/workflow/invite/moderated/1.0" prefix="imwf" />
</namespaces>
<namespaces>
<namespace
uri="http://www.alfresco.org/model/workflow/invite/moderated/1.0" prefix="imwf" />
</namespaces>
<types>
<type name="imwf:moderatedInvitationSubmitTask">
<parent>bpm:startTask</parent>
<mandatory-aspects>
<aspect>bpm:assignee</aspect>
<aspect>bpm:groupAssignee</aspect>
<aspect>imwf:moderatedInvitationStats</aspect>
</mandatory-aspects>
</type>
<types>
<type name="imwf:moderatedInvitationSubmitTask">
<parent>bpm:startTask</parent>
<mandatory-aspects>
<aspect>bpm:assignee</aspect>
<aspect>bpm:groupAssignee</aspect>
<aspect>imwf:moderatedInvitationStats</aspect>
</mandatory-aspects>
</type>
<type name="imwf:moderatedInvitationReviewTask">
<parent>bpm:workflowTask</parent>
<properties>
<property name="imwf:reviewComments">
<type>d:text</type>
</property>
</properties>
<type name="imwf:moderatedInvitationReviewTask">
<parent>bpm:workflowTask</parent>
<mandatory-aspects>
<aspect>bpm:groupAssignee</aspect>
<aspect>cm:ownable</aspect>
<aspect>imwf:moderatedInvitationStats</aspect>
</mandatory-aspects>
</type>
<mandatory-aspects>
<aspect>bpm:groupAssignee</aspect>
<aspect>cm:ownable</aspect>
<aspect>imwf:moderatedInvitationStats</aspect>
</mandatory-aspects>
<type name="imwf:activitiModeratedInvitationReviewTask">
<parent>bpm:activitiOutcomeTask</parent>
<properties>
<property name="imwf:reviewOutcome">
<type>d:text</type>
<default>Reject</default>
<constraints>
<constraint name="imwf:reviewOutcomeOptions"
type="LIST">
<parameter name="allowedValues">
<list>
<value>Approve</value>
<value>Reject</value>
</list>
</parameter>
</constraint>
</constraints>
</property>
</properties>
<overrides>
<property name="bpm:outcomePropertyName">
<default>{http://www.alfresco.org/model/workflow/invite/moderated/1.0}reviewOutcome
</default>
</property>
</overrides>
<mandatory-aspects>
<aspect>bpm:groupAssignee</aspect>
<aspect>cm:ownable</aspect>
<aspect>imwf:moderatedInvitationStats</aspect>
</mandatory-aspects>
</type>
</type>
</types>
</types>
<aspects>
<aspect name="imwf:moderatedInvitationStats">
<properties>
<property name="imwf:inviteeUserName">
<type>d:text</type>
</property>
<property name="imwf:resourceType">
<type>d:text</type>
<default>WEB_SITE</default>
</property>
<property name="imwf:resourceName">
<type>d:text</type>
</property>
<property name="imwf:inviteeRole">
<type>d:text</type>
</property>
<property name="imwf:inviteeComments">
<type>d:text</type>
</property>
</properties>
</aspect>
</aspects>
<aspects>
<aspect name="imwf:moderatedInvitationStats">
<properties>
<property name="imwf:inviteeUserName">
<type>d:text</type>
</property>
<property name="imwf:resourceType">
<type>d:text</type>
<default>WEB_SITE</default>
</property>
<property name="imwf:resourceName">
<type>d:text</type>
</property>
<property name="imwf:inviteeRole">
<type>d:text</type>
</property>
<property name="imwf:inviteeComments">
<type>d:text</type>
</property>
<property name="imwf:reviewComments">
<type>d:text</type>
</property>
</properties>
</aspect>
</aspects>
</model>

View File

@@ -27,8 +27,7 @@
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>
execution.setVariable('wf_reviewOutcome', task.getVariable('wf_reviewOutcome'));
execution.setVariable('imwf_reviewer'), person.properties.userName);
execution.setVariable('imwf_reviewOutcome', task.getVariable('imwf_reviewOutcome'));
</activiti:string>
</activiti:field>
</activiti:taskListener>
@@ -46,15 +45,15 @@
<exclusiveGateway id="reviewDecision" name="Review Decision" />
<sequenceFlow id="flow3" sourceRef="reviewDecision" targetRef="approved">
<conditionExpression xsi:type="tFormalExpression">${wf_reviewOutcome == 'Approve'}</conditionExpression>
<conditionExpression xsi:type="tFormalExpression">${imwf_reviewOutcome == 'Approve'}</conditionExpression>
</sequenceFlow>
<serviceTask id="approved" name="Approved" activiti:class="org.alfresco.repo.invitation.ModerationApproveDelegate" />
<serviceTask id="approved" name="Approved" activiti:class="ApproveModeratedInviteDelegate" />
<sequenceFlow id="flow5" sourceRef="approved" targetRef="end" />
<sequenceFlow id="flow4" sourceRef="reviewDecision" targetRef="rejected" />
<serviceTask id="rejected" name="Rejected" activiti:class="org.alfresco.repo.invitation.ModerationRejectDelegate" />
<serviceTask id="rejected" name="Rejected" activiti:class="RejectModeratedInviteDelegate" />
<sequenceFlow id='flow6' sourceRef='rejected' targetRef='end' />
<endEvent id="end" />

View File

@@ -42,20 +42,54 @@
</mandatory-aspects>
</type>
<type name="inwf:invitePendingTask">
<parent>bpm:workflowTask</parent>
<overrides>
<type name="inwf:invitePendingTask">
<parent>bpm:workflowTask</parent>
<overrides>
<property name="bpm:hiddenTransitions">
<default>cancel</default>
</property>
<property name="bpm:reassignable">
<default>false</default>
</property>
</overrides>
<mandatory-aspects>
<aspect>inwf:nominatedInvitationStats</aspect>
</mandatory-aspects>
</type>
</overrides>
<mandatory-aspects>
<aspect>inwf:nominatedInvitationStats</aspect>
</mandatory-aspects>
</type>
<type name="inwf:activitiInvitePendingTask">
<parent>bpm:activitiOutcomeTask</parent>
<properties>
<property name="inwf:inviteOutcome">
<type>d:text</type>
<default>Reject</default>
<constraints>
<constraint name="inwf:inviteOutcomeOptions"
type="LIST">
<parameter name="allowedValues">
<list>
<value>accept</value>
<value>reject</value>
<value>reject</value>
</list>
</parameter>
</constraint>
</constraints>
</property>
</properties>
<overrides>
<property name="bpm:outcomePropertyName">
<default>{http://www.alfresco.org/model/workflow/invite/moderated/1.0}reviewOutcome
</default>
</property>
<property name="bpm:reassignable">
<default>false</default>
</property>
</overrides>
<mandatory-aspects>
<aspect>inwf:nominatedInvitationStats</aspect>
</mandatory-aspects>
</type>
<type name="inwf:acceptInviteTask">
<parent>bpm:workflowTask</parent>

View File

@@ -10,7 +10,7 @@
<sequenceFlow id="flow1" sourceRef="start" targetRef="sendInvite" />
<serviceTask id="sendInvite" name="Send Invite" activiti:class="org.alfresco.repo.invitation.SendInvitationDelegate" />
<serviceTask id="sendInvite" name="Send Invite" activiti:delegateExpression="${SendNominatedInviteDelegate}" />
<sequenceFlow id="flow2" sourceRef="sendInvite" targetRef="invitePending" />
@@ -51,13 +51,13 @@
<sequenceFlow id="flow7" sourceRef="inviteGateway" targetRef="cancelled" />
<serviceTask id="accepted" name="Accepted" activiti:class="org.alfresco.repo.invitation.AcceptInviteDelegate" />
<serviceTask id="accepted" name="Accepted" activiti:delegateExpression="${AcceptNominatedInviteDelegate}" />
<sequenceFlow id="flow6" sourceRef="accepted" targetRef="end" />
<serviceTask id="rejected" name="Rejected" activiti:class="org.alfresco.repo.invitation.RejectInviteDelegate" />
<serviceTask id="rejected" name="Rejected" activiti:delegateExpression="${RejectNominatedInviteDelegate}" />
<sequenceFlow id="flow8" sourceRef="rejected" targetRef="end" />
<serviceTask id="cancelled" name="Cancelled" activiti:class="org.alfresco.repo.invitation.CancelInviteDelegate" />
<serviceTask id="cancelled" name="Cancelled" activiti:delegateExpression="${CancelNominatedInviteDelegate}" />
<sequenceFlow id="flow9" sourceRef="cancelled" targetRef="end" />
<endEvent id="end" />