Serial workflow will execute in serial manner. One after another.
We have following files:
2. serialar_processdefinition.xml
3. serialar-content-model.xml
4. serialar-messages.properties
#
5. web-client-config-custom.xml
Regarding placing these all files
if one user approves, goes to other user in queue.
if all approves then approved. else resubmit.
alfresco/extension/workflow folder
===============================
1) serialar-content-model.xml
2)serialar-processdefinition.xml
3)serialar-messages.properties
alfresco/extension
================
1) web-client-config-custom.xml
2)customworkflow-context.xml
We have following files:
- customworkflow-context.xml
- serialar_processdefinition.xml
- serialar-content-model.xml
- serialar-messages.properties
- web-client-config-custom.xml
1. customworkflow-context.xml
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'> <beans> <!-- Load message bundle for custom group based workflow --> <bean id="customWorkflows.resourceBundles" class="org.alfresco.i18n.ResourceBundleBootstrapComponent"> <property name="resourceBundles"> <list> <value>alfresco.extension.workflow.serialar-messages</value> </list> </property> </bean> <!-- Load custom group based workflow --> <bean id="customWorkflows.workflowBootstrap" parent="workflowDeployer"> <property name="workflowDefinitions"> <list> <props> <prop key="engineId">jbpm</prop> <prop key="location">alfresco/extension/workflow/serialar_processdefinition.xml</prop> <prop key="mimetype">text/xml</prop> <prop key="redeploy">true</prop> </props> </list> </property> <property name="models"> <list> <value>alfresco/extension/workflow/serialar-content-model.xml</value> </list> </property> </bean> </beans>========================================
<?xml version="1.0" encoding="UTF-8" ?> <process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="ncm:serialar"> <swimlane name="initiator" /> <start-state name="start"> <task name="ncm:startTask" description="Submit Serial Review Task" swimlane="initiator" /> <event type="node-leave"> <script><variable name="approveCount" access="write" /><expression>approveCount = 0;</expression></script> </event> <transition name="Send For Review" to="review"></transition> </start-state> <task-node name="review"> <task name="ncm:reviewTask"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{bpm_assignees.get(approveCount)}</actor> </assignment> <event type="task-create"> <script> if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate; if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority; </script> </event> <event type="task-assign"> </event> </task> <event type="node-enter"> <script> <variable name="reviewerCount" access="write"></variable> <expression> reviewerCount = bpm_assignees.size(); </expression> </script> </event> <transition name="Approve" to="isLast"> <script> <variable name="approveCount" access="write" /> <expression>approveCount = approveCount + 1 ;</expression> </script> </transition> <transition name="Reject" to="re_submit"> </transition> </task-node> <decision name="isLast"> <transition name="No" to="review"> <condition>#{approveCount < reviewerCount}</condition> </transition> <transition name="Yes" to="FinalSubmit"> <condition>#{approveCount == reviewerCount}</condition> </transition> </decision> <end-state name="end" /> <task-node name="re_submit"> <task name="ncm:reviewTask" swimlane="initiator"> <event type="task-create"> <script> if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate; if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority; </script> </event> <event type="task-assign"> </event> </task> <transition name="ReSubmit" to="review"> <script> <variable name="approveCount" access="write" /> <expression>approveCount =0 ;</expression> </script> </transition> <transition name="Finish" to="end"></transition> </task-node> <task-node name="FinalSubmit"> <task name="ncm:reviewTask" swimlane="initiator"> <event type="task-assign"> </event> </task> <transition name="Finish" to="end"></transition> </task-node> </process-definition>========================================
3. serialar-content-model.xml
<?xml version="1.0" encoding="UTF-8"?> <model name="ncm:workflowmodel" 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"/> </imports> <namespaces> <namespace uri="http://www.alfresco.org/ncm/model/workflow/1.0" prefix="ncm"/> </namespaces> <types> <!-- --> <!-- Basic Review & Approve Tasks --> <!-- --> <type name="ncm:startTask"> <parent>bpm:startTask</parent> <mandatory-aspects> <aspect>bpm:assignees</aspect> </mandatory-aspects> </type> <type name="ncm:submitConcurrentReviewTask"> <parent>bpm:startTask</parent> <properties> <property name="ncm:requiredApprovePercent"> <type>d:int</type> <mandatory>true</mandatory> <default>50</default> <constraints> <constraint type="MINMAX"> <parameter name="minValue"><value>1</value></parameter> <parameter name="maxValue"><value>100</value></parameter> </constraint> </constraints> </property> </properties> </type> <!-- Submit review to multiple people (explicit list) --> <type name="ncm:submitParallelReviewTask"> <parent>ncm:submitConcurrentReviewTask</parent> <mandatory-aspects> <aspect>bpm:assignees</aspect> </mandatory-aspects> </type> <!-- Submit review to multiple people (as included in a group) --> <type name="ncm:submitGroupReviewTask"> <parent>ncm:submitConcurrentReviewTask</parent> <mandatory-aspects> <aspect>bpm:groupAssignee</aspect> </mandatory-aspects> </type> <type name="ncm:reviewTask"> <parent>bpm:workflowTask</parent> <overrides> <property name="bpm:packageItemActionGroup"> <default>edit_package_item_actions</default> </property> </overrides> </type> <type name="ncm:approvedTask"> <parent>bpm:workflowTask</parent> <mandatory-aspects> <aspect>bpm:assignee</aspect> </mandatory-aspects> </type> <type name="ncm:rejectedTask"> <parent>bpm:workflowTask</parent> <mandatory-aspects> <aspect>bpm:assignee</aspect> </mandatory-aspects> </type> <type name="ncm:rejectedParallelTask"> <parent>bpm:workflowTask</parent> <mandatory-aspects> <aspect>ncm:parallelReviewStats</aspect> </mandatory-aspects> </type> <type name="ncm:approvedParallelTask"> <parent>bpm:workflowTask</parent> <mandatory-aspects> <aspect>ncm:parallelReviewStats</aspect> </mandatory-aspects> </type> <!-- --> <!-- Adhoc Tasks --> <!-- --> <type name="ncm:submitAdhocTask"> <parent>bpm:startTask</parent> <properties> <property name="ncm:notifyMe"> <type>d:boolean</type> <default>false</default> </property> </properties> <mandatory-aspects> <aspect>bpm:assignee</aspect> </mandatory-aspects> </type> <type name="ncm:adhocTask"> <parent>bpm:workflowTask</parent> <overrides> <property name="bpm:packageActionGroup"> <default>add_package_item_actions</default> </property> <property name="bpm:packageItemActionGroup"> <default>edit_package_item_actions</default> </property> </overrides> </type> <type name="ncm:completedAdhocTask"> <parent>bpm:workflowTask</parent> <mandatory-aspects> <aspect>bpm:assignee</aspect> </mandatory-aspects> </type> </types> <aspects> <aspect name="ncm:parallelReviewStats"> <properties> <property name="ncm:reviewerCount"> <type>d:int</type> </property> <property name="ncm:requiredPercent"> <type>d:int</type> </property> <property name="ncm:approveCount"> <type>d:int</type> </property> <property name="ncm:actualPercent"> <type>d:int</type> </property> </properties> </aspect> </aspects> </model>========================================
4. serialar-messages.properties
#
# Serial Workflow #ncm_serialar.workflow.title=Rasel Serial Workflow ncm_serialar.workflow.description=Rasel Serial Review & approval of content ncm_serialar.node.verifybrokenlinks.transition.abort.title=Abort Submisson ncm_serialar.node.verifybrokenlinks.transition.abort.description=Abort Submisson ncm_serialar.node.verifybrokenlinks.transition.continue.title=Continue Submission ncm_serialar.node.verifybrokenlinks.transition.continue.description=Continue Submisson ncm_serialar.node.serialreview.transition.reject.title=Reject ncm_serialar.node.serialreview.transition.reject.description=Reject ncm_serialar.node.serialreview.transition.approve.title=Approve ncm_serialar.node.serialreview.transition.approve.description=Approve ncm_serialar.node.parallelreview.transition.reject.title=Reject ncm_serialar.node.parallelreview.transition.reject.description=Reject ncm_serialar.node.parallelreview.transition.approve.title=Approve ncm_serialar.node.parallelreview.transition.approve.description=Approve ncm_serialar.node.rejected.transition.abort.title=Abort Review ncm_serialar.node.rejected.transition.abort.description=Abort Review ncm_serialar.node.rejected.transition.resubmit.title=Resubmit for Review ncm_serialar.node.rejected.transition.resubmit.description=Resubmit for Review ncm_serialar.node.submitpending.transition.cancel.title=Abort Submission ncm_serialar.node.submitpending.transition.cancel.description=Abort Submission ncm_serialar.node.submitpending.transition.launch.title=Submit Now ncm_serialar.node.submitpending.transition.launch.description=Submit Now # Submit Task Definitions ncm_workflowmodel.type.ncm_reviewTask.title=ReviewTask ncm_workflowmodel.type.ncm_reviewTask.description=ReviewTask ncm_workflowmodel.type.ncm_startTask.title=StartTask ncm_workflowmodel.type.ncm_startTask.description=StartTask ncm_workflowmodel.type.groupncm_submitReviewTask.description=Submit changes for approval by a group ncm_workflowmodel.type.groupncm_verifyBrokenLinksTask.title=Verify Broken Links ncm_workflowmodel.type.groupncm_verifyBrokenLinksTask.description=Verify links that do not point to a live resource ncm_workflowmodel.type.groupncm_reviewTask.title=Review ncm_workflowmodel.type.groupncm_reviewTask.description=Review Documents to approve or reject them ncm_workflowmodel.type.groupncm_parallelReviewTask.title=Review ncm_workflowmodel.type.groupncm_parallelReviewTask.description=Review Documents to approve or reject them ncm_workflowmodel.type.groupncm_rejectedTask.title=Rejected ncm_workflowmodel.type.groupncm_rejectedTask.description=Rejected ncm_workflowmodel.type.groupncm_approvedTask.title=Approved ncm_workflowmodel.type.groupncm_approvedTask.description=Approved ncm_workflowmodel.type.groupncm_submittedTask.title=Submitted ncm_workflowmodel.type.groupncm_submittedTask.description=Submitted ncm_workflowmodel.type.groupncm_submitpendingTask.title=Submission Pending ncm_workflowmodel.type.groupncm_submitpendingTask.description=Submission Pending ncm_workflowmodel.type.groupncm_submitcancelledTask.title=Submission Aborted ncm_workflowmodel.type.groupncm_submitcancelledTask.description=Submission Aborted ncm_workflowmodel.property.groupncm_reviewType.title=Type of Review ncm_workflowmodel.property.groupncm_reviewType.description=Serial or parallel review ncm_workflowmodel.property.groupncm_submitReviewType.title=Type of Review ncm_workflowmodel.property.groupncm_submitReviewType.description=Serial or parallel review ncm_workflowmodel.property.groupncm_fromPath.title=Source Folder Path ncm_workflowmodel.property.groupncm_fromPath.description=Folder Path where items have been submitted from ncm_workflowmodel.property.groupncm_label.title=Submission Label ncm_workflowmodel.property.groupncm_label.description=Label associated with the submission ncm_workflowmodel.property.groupncm_launchDate.title=Launch Date ncm_workflowmodel.property.groupncm_launchDate.description=Date the content in the submission should be committed ncm_workflowmodel.property.groupncm_validateLinks.title=Validate Links ncm_workflowmodel.property.groupncm_validateLinks.description=Whether links should be verified before entering the review cycle ncm_workflowmodel.property.groupncm_webapp.title=Webapp ncm_workflowmodel.property.groupncm_webapp.description=The webapp within the workflow store to check links for ncm_workflowmodel.property.groupncm_reviewerCnt.title=Total Reviewed ncm_workflowmodel.property.groupncm_reviewerCnt.description=Count of people who reviewed ncm_workflowmodel.property.groupncm_approveCnt.title=Total Approved ncm_workflowmodel.property.groupncm_approveCnt.description=Count of people who approved========================================
5. web-client-config-custom.xml
<alfresco-config> <config evaluator="node-type" condition="ncm:startTask" 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_review_priority" /> <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" /> <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" /> <show-association name="bpm:assignees" display-label-id="wf_reviewers" /> <separator name="sep3" display-label-id="wf_reviewers" component-generator="HeaderSeparatorGenerator" /> <show-property name="bpm:priority" read-only="true" /> </property-sheet> <condition-handlers> <show-association name="bpm:package" read-only="true" /> </condition-handlers> </config> </alfresco-config>
Regarding placing these all files
if one user approves, goes to other user in queue.
if all approves then approved. else resubmit.
alfresco/extension/workflow folder
===============================
1) serialar-content-model.xml
2)serialar-processdefinition.xml
3)serialar-messages.properties
alfresco/extension
================
1) web-client-config-custom.xml
2)customworkflow-context.xml
No comments:
Post a Comment