Hi Every One,
In this post, i am going to discuss what is workflow and how to create our own custom workflow in alfresco share
Workflow:
A workflow consists of a sequence of connected steps where each step follows without delay or gap and ends just before the subsequent step may begin. It is a depiction of a sequence of operations, declared as work of a person or group, an organization of staff, or one or more simple or complex mechanisms. Workflow may be seen as any abstraction of real work. For control purposes, workflow may be a view of real work in a chosen aspect, thus serving as a virtual representation of actual work. The flow being described may refer to a document or product that is being transferred from one step to another.
Workflows may be viewed as one primitive building block to be combined with other parts of an organisation's structure such as information silos, teams, projects, policies and hierarchies.
In simple words flow where to go what and accepts and rejects, if accept it has to go some person ,rejects some other. these things will be there in workflow.
Parallel Workflow:
This workflow will split same task into different users
Adding new workflow in Alfresco:
For this you need to add some XML files and edit some XML files.
Files to be added
1)CreditEvaluationparallel.bpmn20.xml( file name can be any thing but extension has to be .bpmn20.xml)
2)workflowcreditevaluationparallelmodel-custom.xml (file name can be any thing but extension has to be .xml)
Files to Edit
3)share-workflow-form-config.xml
4)bootstrap-context.xml
Files to be added
CreditEvaluationparallel.bpmn20.xml
As you can see, once there's enough text in this box, the box will grow scroll bars... that's <?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
<process id="CreditEvaluationparallel" name="CreditEvaluationparallel" isExecutable="true">
<extensionElements>
<activiti:executionListener event="start" class="org.alfresco.repo.workflow.activiti.listener.ScriptExecutionListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('wf_FinanceGroup', groups.getGroup('Finance').getFullName());
execution.setVariable('wf_BankingGroup', groups.getGroup('Banking').getFullName());
execution.setVariable('wf_HRGroup', groups.getGroup('HR').getFullName());
execution.setVariable('wf_MarketingGroup', groups.getGroup('Marketing').getFullName());
execution.setVariable('wf_AcademicGroup', groups.getGroup('academicunits').getFullName());
execution.setVariable('wf_OIAGroup', groups.getGroup('OIA').getFullName());
execution.setVariable('wf_RegistrarGroup', groups.getGroup('Registrar').getFullName());</activiti:string>
</activiti:field>
</activiti:executionListener>
</extensionElements>
<startEvent id="startevent1" name="Start" activiti:formKey="wf:CreditEvaluationparallel"></startEvent>
<parallelGateway id="parallelgatewayafterstart" name="parallelgatewayafterstart"></parallelGateway>
<userTask id="Finance" name="Finance" activiti:candidateGroups="${wf_FinanceGroup}" activiti:formKey="wf:Financeparallel">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
if (typeof bpm_comment != 'undefined') task.setVariable('bpm_comment', bpm_comment);</activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('wf_financeOutcome', task.getVariable('wf_financeOutcome'));
execution.setVariable('bpm_assignee', task.getVariable('bpm_assignee'));
execution.setVariable('bpm_comment', task.getVariable('bpm_comment'));
execution.setVariable('wf_manager', person);
execution.setVariable('bpm_dueDate', task.dueDate);
execution.setVariable('bpm_priority', task.priority);</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<userTask id="Banking" name="Banking" activiti:candidateGroups="${wf_BankingGroup}" activiti:formKey="wf:Bankingparallel">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
if (typeof bpm_comment != 'undefined') task.setVariable('bpm_comment', bpm_comment);</activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('wf_bankingOutcome', task.getVariable('wf_bankingOutcome'));
execution.setVariable('bpm_assignee', task.getVariable('bpm_assignee'));
execution.setVariable('bpm_comment', task.getVariable('bpm_comment'));
execution.setVariable('wf_manager', person);
execution.setVariable('bpm_dueDate', task.dueDate);
execution.setVariable('bpm_priority', task.priority);</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<userTask id="HR" name="HR" activiti:candidateGroups="${wf_HRGroup}" activiti:formKey="wf:HRparallel">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
if (typeof bpm_comment != 'undefined') task.setVariable('bpm_comment', bpm_comment);</activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('wf_hrOutcome', task.getVariable('wf_hrOutcome'));
execution.setVariable('bpm_assignee', task.getVariable('bpm_assignee'));
execution.setVariable('bpm_comment', task.getVariable('bpm_comment'));
execution.setVariable('wf_manager', person);
execution.setVariable('bpm_dueDate', task.dueDate);
execution.setVariable('bpm_priority', task.priority);</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<userTask id="Marketing" name="Marketing" activiti:candidateGroups="${wf_MarketingGroup}" activiti:formKey="wf:Marketingparallel">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
if (typeof bpm_comment != 'undefined') task.setVariable('bpm_comment', bpm_comment);</activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('wf_marketingOutcome', task.getVariable('wf_marketingOutcome'));
execution.setVariable('bpm_assignee', task.getVariable('bpm_assignee'));
execution.setVariable('bpm_comment', task.getVariable('bpm_comment'));
execution.setVariable('wf_manager', person);
execution.setVariable('bpm_dueDate', task.dueDate);
execution.setVariable('bpm_priority', task.priority);</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<inclusiveGateway id="exclusivegatewaybefOIA" name="exclusivegatewaybefOIA"></inclusiveGateway>
<userTask id="OIA" name="OIA" activiti:candidateGroups="${wf_OIAGroup}" activiti:formKey="wf:OIAparallel">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
if (typeof bpm_comment != 'undefined') task.setVariable('bpm_comment', bpm_comment);</activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('wf_OIAOutcome', task.getVariable('wf_OIAOutcome'));
execution.setVariable('bpm_assignee', task.getVariable('bpm_assignee'));
execution.setVariable('bpm_comment', task.getVariable('bpm_comment'));
execution.setVariable('wf_manager', person);
execution.setVariable('bpm_dueDate', task.dueDate);
execution.setVariable('bpm_priority', task.priority);</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<exclusiveGateway id="exclusivegatewayafterOIA" name="exclusivegatewayafterOIA"></exclusiveGateway>
<userTask id="Registrar" name="Registrar" activiti:candidateGroups="${wf_RegistrarGroup}" activiti:formKey="wf:Registrargroupparallel">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
if (typeof bpm_comment != 'undefined') task.setVariable('bpm_comment', bpm_comment);</activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('bpm_assignee', task.getVariable('bpm_assignee'));
execution.setVariable('bpm_comment', task.getVariable('bpm_comment'));
execution.setVariable('wf_manager', person);
execution.setVariable('bpm_dueDate', task.dueDate);
execution.setVariable('bpm_priority', task.priority);</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<endEvent id="endevent1" name="End"></endEvent>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="parallelgatewayafterstart"></sequenceFlow>
<sequenceFlow id="flow2" sourceRef="parallelgatewayafterstart" targetRef="Finance"></sequenceFlow>
<sequenceFlow id="flow3" sourceRef="parallelgatewayafterstart" targetRef="Banking"></sequenceFlow>
<sequenceFlow id="flow4" sourceRef="parallelgatewayafterstart" targetRef="HR"></sequenceFlow>
<sequenceFlow id="flow5" sourceRef="parallelgatewayafterstart" targetRef="Marketing"></sequenceFlow>
<sequenceFlow id="flow6" sourceRef="Finance" targetRef="exclusivegatewaybefOIA"></sequenceFlow>
<sequenceFlow id="flow7" sourceRef="Banking" targetRef="exclusivegatewaybefOIA"></sequenceFlow>
<sequenceFlow id="flow8" sourceRef="HR" targetRef="exclusivegatewaybefOIA"></sequenceFlow>
<sequenceFlow id="flow9" sourceRef="Marketing" targetRef="exclusivegatewaybefOIA"></sequenceFlow>
<sequenceFlow id="flow12" sourceRef="OIA" targetRef="exclusivegatewayafterOIA"></sequenceFlow>
<sequenceFlow id="flow14" sourceRef="exclusivegatewayafterOIA" targetRef="Registrar">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${wf_OIAOutcome == 'Approve'}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow15" sourceRef="Registrar" targetRef="endevent1"></sequenceFlow>
<userTask id="Student" name="Student" activiti:assignee="${initiator.properties.userName}" activiti:formKey="wf:Studentparallel">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
if (typeof bpm_comment != 'undefined') task.setVariable('bpm_comment', bpm_comment);</activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('bpm_assignee', task.getVariable('bpm_assignee'));
execution.setVariable('bpm_comment', task.getVariable('bpm_comment'));
execution.setVariable('wf_manager', person);
execution.setVariable('bpm_dueDate', task.dueDate);
execution.setVariable('bpm_priority', task.priority);</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<sequenceFlow id="flow17" sourceRef="exclusivegatewayafterOIA" targetRef="Student">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${wf_OIAOutcome == 'Reject'}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow21" sourceRef="Student" targetRef="Finance"></sequenceFlow>
<sequenceFlow id="flow22" sourceRef="Student" targetRef="Banking"></sequenceFlow>
<sequenceFlow id="flow23" sourceRef="Student" targetRef="HR"></sequenceFlow>
<sequenceFlow id="flow24" sourceRef="Student" targetRef="Marketing"></sequenceFlow>
<sequenceFlow id="flow25" sourceRef="exclusivegatewaybefOIA" targetRef="OIA">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${wf_financeOutcome == 'Approve' && wf_bankingOutcome == 'Approve' && wf_hrOutcome == 'Approve' && wf_marketingOutcome== 'Approve'}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow26" sourceRef="exclusivegatewaybefOIA" targetRef="Student">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${wf_financeOutcome == 'Reject' || wf_bankingOutcome == 'Reject' || wf_hrOutcome == 'Reject' || wf_marketingOutcome == 'Reject'}]]></conditionExpression>
</sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_CreditEvaluationparallel">
<bpmndi:BPMNPlane bpmnElement="CreditEvaluationparallel" id="BPMNPlane_CreditEvaluationparallel">
<bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
<omgdc:Bounds height="35.0" width="35.0" x="353.0" y="20.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
<omgdc:Bounds height="35.0" width="35.0" x="770.0" y="370.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Finance" id="BPMNShape_Finance">
<omgdc:Bounds height="55.0" width="105.0" x="90.0" y="210.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Banking" id="BPMNShape_Banking">
<omgdc:Bounds height="55.0" width="105.0" x="233.0" y="210.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="HR" id="BPMNShape_HR">
<omgdc:Bounds height="55.0" width="105.0" x="410.0" y="210.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Marketing" id="BPMNShape_Marketing">
<omgdc:Bounds height="55.0" width="105.0" x="550.0" y="210.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="OIA" id="BPMNShape_OIA">
<omgdc:Bounds height="55.0" width="105.0" x="328.0" y="360.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Registrar" id="BPMNShape_Registrar">
<omgdc:Bounds height="55.0" width="105.0" x="610.0" y="360.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Student" id="BPMNShape_Student">
<omgdc:Bounds height="55.0" width="105.0" x="150.0" y="80.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="exclusivegatewaybefOIA" id="BPMNShape_exclusivegatewaybefOIA">
<omgdc:Bounds height="40.0" width="40.0" x="360.0" y="290.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="exclusivegatewayafterOIA" id="BPMNShape_exclusivegatewayafterOIA">
<omgdc:Bounds height="40.0" width="40.0" x="514.0" y="367.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="parallelgatewayafterstart" id="BPMNShape_parallelgatewayafterstart">
<omgdc:Bounds height="40.0" width="40.0" x="350.0" y="110.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
<omgdi:waypoint x="370.0" y="55.0"></omgdi:waypoint>
<omgdi:waypoint x="370.0" y="110.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
<omgdi:waypoint x="370.0" y="150.0"></omgdi:waypoint>
<omgdi:waypoint x="142.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
<omgdi:waypoint x="370.0" y="150.0"></omgdi:waypoint>
<omgdi:waypoint x="285.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
<omgdi:waypoint x="370.0" y="150.0"></omgdi:waypoint>
<omgdi:waypoint x="462.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
<omgdi:waypoint x="370.0" y="150.0"></omgdi:waypoint>
<omgdi:waypoint x="602.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
<omgdi:waypoint x="142.0" y="265.0"></omgdi:waypoint>
<omgdi:waypoint x="380.0" y="290.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7">
<omgdi:waypoint x="285.0" y="265.0"></omgdi:waypoint>
<omgdi:waypoint x="380.0" y="290.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8">
<omgdi:waypoint x="462.0" y="265.0"></omgdi:waypoint>
<omgdi:waypoint x="380.0" y="290.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
<omgdi:waypoint x="602.0" y="265.0"></omgdi:waypoint>
<omgdi:waypoint x="380.0" y="290.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow12" id="BPMNEdge_flow12">
<omgdi:waypoint x="433.0" y="387.0"></omgdi:waypoint>
<omgdi:waypoint x="514.0" y="387.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow14" id="BPMNEdge_flow14">
<omgdi:waypoint x="554.0" y="387.0"></omgdi:waypoint>
<omgdi:waypoint x="610.0" y="387.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow15" id="BPMNEdge_flow15">
<omgdi:waypoint x="715.0" y="387.0"></omgdi:waypoint>
<omgdi:waypoint x="770.0" y="387.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow17" id="BPMNEdge_flow17">
<omgdi:waypoint x="534.0" y="407.0"></omgdi:waypoint>
<omgdi:waypoint x="533.0" y="456.0"></omgdi:waypoint>
<omgdi:waypoint x="38.0" y="456.0"></omgdi:waypoint>
<omgdi:waypoint x="38.0" y="107.0"></omgdi:waypoint>
<omgdi:waypoint x="150.0" y="107.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow21" id="BPMNEdge_flow21">
<omgdi:waypoint x="202.0" y="135.0"></omgdi:waypoint>
<omgdi:waypoint x="142.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow22" id="BPMNEdge_flow22">
<omgdi:waypoint x="202.0" y="135.0"></omgdi:waypoint>
<omgdi:waypoint x="285.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow23" id="BPMNEdge_flow23">
<omgdi:waypoint x="202.0" y="135.0"></omgdi:waypoint>
<omgdi:waypoint x="462.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow24" id="BPMNEdge_flow24">
<omgdi:waypoint x="202.0" y="135.0"></omgdi:waypoint>
<omgdi:waypoint x="602.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow25" id="BPMNEdge_flow25">
<omgdi:waypoint x="380.0" y="330.0"></omgdi:waypoint>
<omgdi:waypoint x="380.0" y="360.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow26" id="BPMNEdge_flow26">
<omgdi:waypoint x="360.0" y="310.0"></omgdi:waypoint>
<omgdi:waypoint x="64.0" y="310.0"></omgdi:waypoint>
<omgdi:waypoint x="64.0" y="140.0"></omgdi:waypoint>
<omgdi:waypoint x="150.0" y="107.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
<process id="CreditEvaluationparallel" name="CreditEvaluationparallel" isExecutable="true">
<extensionElements>
<activiti:executionListener event="start" class="org.alfresco.repo.workflow.activiti.listener.ScriptExecutionListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('wf_FinanceGroup', groups.getGroup('Finance').getFullName());
execution.setVariable('wf_BankingGroup', groups.getGroup('Banking').getFullName());
execution.setVariable('wf_HRGroup', groups.getGroup('HR').getFullName());
execution.setVariable('wf_MarketingGroup', groups.getGroup('Marketing').getFullName());
execution.setVariable('wf_AcademicGroup', groups.getGroup('academicunits').getFullName());
execution.setVariable('wf_OIAGroup', groups.getGroup('OIA').getFullName());
execution.setVariable('wf_RegistrarGroup', groups.getGroup('Registrar').getFullName());</activiti:string>
</activiti:field>
</activiti:executionListener>
</extensionElements>
<startEvent id="startevent1" name="Start" activiti:formKey="wf:CreditEvaluationparallel"></startEvent>
<parallelGateway id="parallelgatewayafterstart" name="parallelgatewayafterstart"></parallelGateway>
<userTask id="Finance" name="Finance" activiti:candidateGroups="${wf_FinanceGroup}" activiti:formKey="wf:Financeparallel">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
if (typeof bpm_comment != 'undefined') task.setVariable('bpm_comment', bpm_comment);</activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('wf_financeOutcome', task.getVariable('wf_financeOutcome'));
execution.setVariable('bpm_assignee', task.getVariable('bpm_assignee'));
execution.setVariable('bpm_comment', task.getVariable('bpm_comment'));
execution.setVariable('wf_manager', person);
execution.setVariable('bpm_dueDate', task.dueDate);
execution.setVariable('bpm_priority', task.priority);</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<userTask id="Banking" name="Banking" activiti:candidateGroups="${wf_BankingGroup}" activiti:formKey="wf:Bankingparallel">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
if (typeof bpm_comment != 'undefined') task.setVariable('bpm_comment', bpm_comment);</activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('wf_bankingOutcome', task.getVariable('wf_bankingOutcome'));
execution.setVariable('bpm_assignee', task.getVariable('bpm_assignee'));
execution.setVariable('bpm_comment', task.getVariable('bpm_comment'));
execution.setVariable('wf_manager', person);
execution.setVariable('bpm_dueDate', task.dueDate);
execution.setVariable('bpm_priority', task.priority);</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<userTask id="HR" name="HR" activiti:candidateGroups="${wf_HRGroup}" activiti:formKey="wf:HRparallel">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
if (typeof bpm_comment != 'undefined') task.setVariable('bpm_comment', bpm_comment);</activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('wf_hrOutcome', task.getVariable('wf_hrOutcome'));
execution.setVariable('bpm_assignee', task.getVariable('bpm_assignee'));
execution.setVariable('bpm_comment', task.getVariable('bpm_comment'));
execution.setVariable('wf_manager', person);
execution.setVariable('bpm_dueDate', task.dueDate);
execution.setVariable('bpm_priority', task.priority);</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<userTask id="Marketing" name="Marketing" activiti:candidateGroups="${wf_MarketingGroup}" activiti:formKey="wf:Marketingparallel">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
if (typeof bpm_comment != 'undefined') task.setVariable('bpm_comment', bpm_comment);</activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('wf_marketingOutcome', task.getVariable('wf_marketingOutcome'));
execution.setVariable('bpm_assignee', task.getVariable('bpm_assignee'));
execution.setVariable('bpm_comment', task.getVariable('bpm_comment'));
execution.setVariable('wf_manager', person);
execution.setVariable('bpm_dueDate', task.dueDate);
execution.setVariable('bpm_priority', task.priority);</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<inclusiveGateway id="exclusivegatewaybefOIA" name="exclusivegatewaybefOIA"></inclusiveGateway>
<userTask id="OIA" name="OIA" activiti:candidateGroups="${wf_OIAGroup}" activiti:formKey="wf:OIAparallel">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
if (typeof bpm_comment != 'undefined') task.setVariable('bpm_comment', bpm_comment);</activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('wf_OIAOutcome', task.getVariable('wf_OIAOutcome'));
execution.setVariable('bpm_assignee', task.getVariable('bpm_assignee'));
execution.setVariable('bpm_comment', task.getVariable('bpm_comment'));
execution.setVariable('wf_manager', person);
execution.setVariable('bpm_dueDate', task.dueDate);
execution.setVariable('bpm_priority', task.priority);</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<exclusiveGateway id="exclusivegatewayafterOIA" name="exclusivegatewayafterOIA"></exclusiveGateway>
<userTask id="Registrar" name="Registrar" activiti:candidateGroups="${wf_RegistrarGroup}" activiti:formKey="wf:Registrargroupparallel">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
if (typeof bpm_comment != 'undefined') task.setVariable('bpm_comment', bpm_comment);</activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('bpm_assignee', task.getVariable('bpm_assignee'));
execution.setVariable('bpm_comment', task.getVariable('bpm_comment'));
execution.setVariable('wf_manager', person);
execution.setVariable('bpm_dueDate', task.dueDate);
execution.setVariable('bpm_priority', task.priority);</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<endEvent id="endevent1" name="End"></endEvent>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="parallelgatewayafterstart"></sequenceFlow>
<sequenceFlow id="flow2" sourceRef="parallelgatewayafterstart" targetRef="Finance"></sequenceFlow>
<sequenceFlow id="flow3" sourceRef="parallelgatewayafterstart" targetRef="Banking"></sequenceFlow>
<sequenceFlow id="flow4" sourceRef="parallelgatewayafterstart" targetRef="HR"></sequenceFlow>
<sequenceFlow id="flow5" sourceRef="parallelgatewayafterstart" targetRef="Marketing"></sequenceFlow>
<sequenceFlow id="flow6" sourceRef="Finance" targetRef="exclusivegatewaybefOIA"></sequenceFlow>
<sequenceFlow id="flow7" sourceRef="Banking" targetRef="exclusivegatewaybefOIA"></sequenceFlow>
<sequenceFlow id="flow8" sourceRef="HR" targetRef="exclusivegatewaybefOIA"></sequenceFlow>
<sequenceFlow id="flow9" sourceRef="Marketing" targetRef="exclusivegatewaybefOIA"></sequenceFlow>
<sequenceFlow id="flow12" sourceRef="OIA" targetRef="exclusivegatewayafterOIA"></sequenceFlow>
<sequenceFlow id="flow14" sourceRef="exclusivegatewayafterOIA" targetRef="Registrar">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${wf_OIAOutcome == 'Approve'}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow15" sourceRef="Registrar" targetRef="endevent1"></sequenceFlow>
<userTask id="Student" name="Student" activiti:assignee="${initiator.properties.userName}" activiti:formKey="wf:Studentparallel">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
if (typeof bpm_comment != 'undefined') task.setVariable('bpm_comment', bpm_comment);</activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>execution.setVariable('bpm_assignee', task.getVariable('bpm_assignee'));
execution.setVariable('bpm_comment', task.getVariable('bpm_comment'));
execution.setVariable('wf_manager', person);
execution.setVariable('bpm_dueDate', task.dueDate);
execution.setVariable('bpm_priority', task.priority);</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
<sequenceFlow id="flow17" sourceRef="exclusivegatewayafterOIA" targetRef="Student">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${wf_OIAOutcome == 'Reject'}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow21" sourceRef="Student" targetRef="Finance"></sequenceFlow>
<sequenceFlow id="flow22" sourceRef="Student" targetRef="Banking"></sequenceFlow>
<sequenceFlow id="flow23" sourceRef="Student" targetRef="HR"></sequenceFlow>
<sequenceFlow id="flow24" sourceRef="Student" targetRef="Marketing"></sequenceFlow>
<sequenceFlow id="flow25" sourceRef="exclusivegatewaybefOIA" targetRef="OIA">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${wf_financeOutcome == 'Approve' && wf_bankingOutcome == 'Approve' && wf_hrOutcome == 'Approve' && wf_marketingOutcome== 'Approve'}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow26" sourceRef="exclusivegatewaybefOIA" targetRef="Student">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${wf_financeOutcome == 'Reject' || wf_bankingOutcome == 'Reject' || wf_hrOutcome == 'Reject' || wf_marketingOutcome == 'Reject'}]]></conditionExpression>
</sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_CreditEvaluationparallel">
<bpmndi:BPMNPlane bpmnElement="CreditEvaluationparallel" id="BPMNPlane_CreditEvaluationparallel">
<bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
<omgdc:Bounds height="35.0" width="35.0" x="353.0" y="20.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
<omgdc:Bounds height="35.0" width="35.0" x="770.0" y="370.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Finance" id="BPMNShape_Finance">
<omgdc:Bounds height="55.0" width="105.0" x="90.0" y="210.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Banking" id="BPMNShape_Banking">
<omgdc:Bounds height="55.0" width="105.0" x="233.0" y="210.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="HR" id="BPMNShape_HR">
<omgdc:Bounds height="55.0" width="105.0" x="410.0" y="210.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Marketing" id="BPMNShape_Marketing">
<omgdc:Bounds height="55.0" width="105.0" x="550.0" y="210.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="OIA" id="BPMNShape_OIA">
<omgdc:Bounds height="55.0" width="105.0" x="328.0" y="360.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Registrar" id="BPMNShape_Registrar">
<omgdc:Bounds height="55.0" width="105.0" x="610.0" y="360.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Student" id="BPMNShape_Student">
<omgdc:Bounds height="55.0" width="105.0" x="150.0" y="80.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="exclusivegatewaybefOIA" id="BPMNShape_exclusivegatewaybefOIA">
<omgdc:Bounds height="40.0" width="40.0" x="360.0" y="290.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="exclusivegatewayafterOIA" id="BPMNShape_exclusivegatewayafterOIA">
<omgdc:Bounds height="40.0" width="40.0" x="514.0" y="367.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="parallelgatewayafterstart" id="BPMNShape_parallelgatewayafterstart">
<omgdc:Bounds height="40.0" width="40.0" x="350.0" y="110.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
<omgdi:waypoint x="370.0" y="55.0"></omgdi:waypoint>
<omgdi:waypoint x="370.0" y="110.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
<omgdi:waypoint x="370.0" y="150.0"></omgdi:waypoint>
<omgdi:waypoint x="142.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
<omgdi:waypoint x="370.0" y="150.0"></omgdi:waypoint>
<omgdi:waypoint x="285.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
<omgdi:waypoint x="370.0" y="150.0"></omgdi:waypoint>
<omgdi:waypoint x="462.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
<omgdi:waypoint x="370.0" y="150.0"></omgdi:waypoint>
<omgdi:waypoint x="602.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
<omgdi:waypoint x="142.0" y="265.0"></omgdi:waypoint>
<omgdi:waypoint x="380.0" y="290.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7">
<omgdi:waypoint x="285.0" y="265.0"></omgdi:waypoint>
<omgdi:waypoint x="380.0" y="290.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8">
<omgdi:waypoint x="462.0" y="265.0"></omgdi:waypoint>
<omgdi:waypoint x="380.0" y="290.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
<omgdi:waypoint x="602.0" y="265.0"></omgdi:waypoint>
<omgdi:waypoint x="380.0" y="290.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow12" id="BPMNEdge_flow12">
<omgdi:waypoint x="433.0" y="387.0"></omgdi:waypoint>
<omgdi:waypoint x="514.0" y="387.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow14" id="BPMNEdge_flow14">
<omgdi:waypoint x="554.0" y="387.0"></omgdi:waypoint>
<omgdi:waypoint x="610.0" y="387.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow15" id="BPMNEdge_flow15">
<omgdi:waypoint x="715.0" y="387.0"></omgdi:waypoint>
<omgdi:waypoint x="770.0" y="387.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow17" id="BPMNEdge_flow17">
<omgdi:waypoint x="534.0" y="407.0"></omgdi:waypoint>
<omgdi:waypoint x="533.0" y="456.0"></omgdi:waypoint>
<omgdi:waypoint x="38.0" y="456.0"></omgdi:waypoint>
<omgdi:waypoint x="38.0" y="107.0"></omgdi:waypoint>
<omgdi:waypoint x="150.0" y="107.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow21" id="BPMNEdge_flow21">
<omgdi:waypoint x="202.0" y="135.0"></omgdi:waypoint>
<omgdi:waypoint x="142.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow22" id="BPMNEdge_flow22">
<omgdi:waypoint x="202.0" y="135.0"></omgdi:waypoint>
<omgdi:waypoint x="285.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow23" id="BPMNEdge_flow23">
<omgdi:waypoint x="202.0" y="135.0"></omgdi:waypoint>
<omgdi:waypoint x="462.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow24" id="BPMNEdge_flow24">
<omgdi:waypoint x="202.0" y="135.0"></omgdi:waypoint>
<omgdi:waypoint x="602.0" y="210.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow25" id="BPMNEdge_flow25">
<omgdi:waypoint x="380.0" y="330.0"></omgdi:waypoint>
<omgdi:waypoint x="380.0" y="360.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow26" id="BPMNEdge_flow26">
<omgdi:waypoint x="360.0" y="310.0"></omgdi:waypoint>
<omgdi:waypoint x="64.0" y="310.0"></omgdi:waypoint>
<omgdi:waypoint x="64.0" y="140.0"></omgdi:waypoint>
<omgdi:waypoint x="150.0" y="107.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
This is the file where we add the actual workflow this has to be there in Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\workflow
Description about this workflow: this workflow we are getting all the group names and assigning work as follows
1)any body can start this work flow who have privileges.
2)started workflow task will be assigned to finance,marketing,hr,banking groups.
3)if all accept then only it will go to OIA, any one Rejects the task it will go to student again.
4)OIA accept go to Register other wise flow will go to student user task.
like this
2)workflowcreditevaluationparallelmodel-custom.xml
this model contains all the types and its's aspects this has to be there in
Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\workflow
This code needs to be added to corresponding files
share-workflow-form-config.xml
this file contains ShareUI for work flow, we need to add the UI components for our workflow this has to be there in
Alfresco\tomcat\webapps\share\WEB-INF\classes\alfresco
4)bootstrap-context.xml
this file contains code to our workflow in to server while starting the server
Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco
after making all changes restart alfresco to see new customized parallel workflow.
This comment has been removed by the author.
ReplyDeletehitesh, you created all the groups with specified names.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteI edited the files as indicated
ReplyDeleteI created the two missing files
I rebooted alfresco
but I see the WK