07-31-2007 10:57 AM
07-31-2007 11:42 AM
workflow-context.xml.sample
config/alfresco/extension
08-01-2007 04:30 AM
08-01-2007 06:18 AM
So there is no way, out of the box, to assign a task to a group or a pool of actors if I understand well. If I want this I have to write it. Is that right ?
08-01-2007 08:15 AM
08-01-2007 10:10 AM
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wfag:adhocgroup">
<swimlane name="initiator"/>
<start-state name="start">
<task name="wfag:submitAdhocGroupTask" swimlane="initiator"/>
<transition name="" to="adhoc"/>
</start-state>
<swimlane name="assignee">
<assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
<pooledactors>#{bpm_groupAssignee}</pooledactors>
</assignment>
</swimlane>
<task-node name="adhoc">
<task name="wf:adhocTask" swimlane="assignee">
<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-end">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="bpm_assignee" access="write"/>
<expression>
if (taskInstance.actorId == undefined)
person;
else
people.getPerson(taskInstance.actorId);
</expression>
</script>
</action>
</event>
</task>
<transition name="" to="completed">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
if (wfag_notifyMe)
{
var mail = actions.create("mail");
mail.parameters.to = initiator.properties.email;
mail.parameters.subject = "Adhoc Task " + bpm_workflowDescription;
mail.parameters.from = bpm_assignee.properties.email;
mail.parameters.text = "It's done";
mail.execute(bpm_package);
}
</script>
</action>
</transition>
</task-node>
<task-node name="completed">
<task name="wf:completedAdhocTask" swimlane="initiator"/>
<transition name="" to="end"/>
</task-node>
<end-state name="end"/>
</process-definition>
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<bean id="adhoc.group.workflowBootstrap" parent="workflowDeployer">
<property name="workflowDefinitions">
<list>
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/extension/adhocgroup_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
</list>
</property>
<property name="models">
<list>
<value>alfresco/extension/adhocgroupModel.xml</value>
</list>
</property>
<property name="labels">
<list>
<value>alfresco/extension/adhocgroup-messages</value>
</list>
</property>
</bean>
</beans>
#
# Adhoc Task Workflow
#
wfag_adhocgroup.workflow.title=Adhoc Group Task
wfag_adhocgroup.workflow.description=Assign task to a pooled group
# Adhoc Task Definitions
wfag_adhocgroupworkflowmodel.type.wfag_submitAdhocGroupTask.title=Start Adhoc Group Task
wfag_adhocgroupworkflowmodel.type.wfag_submitAdhocGroupTask.description=Allocate task to a pooled group
wfag_adhocgroupworkflowmodel.property.wfag_notifyMe.title=Notify Me
wfag_adhocgroupworkflowmodel.property.wfag_notifyMe.description=Notify me when task is complete
<?xml version="1.0" encoding="UTF-8"?>
<model name="wfag:adhocgroupworkflowmodel" 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/model/adhocgroupworkflow/1.0" prefix="wfag"/>
</namespaces>
<types>
<!– –>
<!– Adhoc Group Tasks –>
<!– –>
<type name="wfag:submitAdhocGroupTask">
<parent>bpm:startTask</parent>
<properties>
<property name="wfag:notifyMe">
<type>d:boolean</type>
<default>false</default>
</property>
</properties>
<mandatory-aspects>
<aspect>bpm:groupAssignee</aspect>
</mandatory-aspects>
</type>
</types>
</model>
<alfresco-config>
<config evaluator="node-type" condition="wfag:submitAdhocGroupTask" 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_adhoc_priority" />
<show-property name="bpm:workflowDueDate" display-label-id="wf_adhoc_due_date" />
<show-property name="wfag:notifyMe" />
<separator name="sep2" display-label-id="user_filter_user" component-generator="HeaderSeparatorGenerator" />
<show-association name="bpm:groupAssignee" display-label-id="wf_adhoc_assign_to" />
</property-sheet>
</config>
</alfresco-config>
08-01-2007 11:28 AM
08-01-2007 12:03 PM
05-04-2009 11:37 AM
05-04-2009 11:38 AM
If that's the process you require, then that's the process. Alfresco allows you to define your own processes, so I took the out-of-the-box adhoc process and converted it to a pooled adhoc process.
Create the following files in your config/alfresco/extension directory:
1) adhocgroup_processdefinition.xml<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wfag:adhocgroup">
<swimlane name="initiator"/>
<start-state name="start">
<task name="wfag:submitAdhocGroupTask" swimlane="initiator"/>
<transition name="" to="adhoc"/>
</start-state>
<swimlane name="assignee">
<assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
<pooledactors>#{bpm_groupAssignee}</pooledactors>
</assignment>
</swimlane>
<task-node name="adhoc">
<task name="wf:adhocTask" swimlane="assignee">
<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-end">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="bpm_assignee" access="write"/>
<expression>
if (taskInstance.actorId == undefined)
person;
else
people.getPerson(taskInstance.actorId);
</expression>
</script>
</action>
</event>
</task>
<transition name="" to="completed">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
if (wfag_notifyMe)
{
var mail = actions.create("mail");
mail.parameters.to = initiator.properties.email;
mail.parameters.subject = "Adhoc Task " + bpm_workflowDescription;
mail.parameters.from = bpm_assignee.properties.email;
mail.parameters.text = "It's done";
mail.execute(bpm_package);
}
</script>
</action>
</transition>
</task-node>
<task-node name="completed">
<task name="wf:completedAdhocTask" swimlane="initiator"/>
<transition name="" to="end"/>
</task-node>
<end-state name="end"/>
</process-definition>
2) adhocgroup-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>
<bean id="adhoc.group.workflowBootstrap" parent="workflowDeployer">
<property name="workflowDefinitions">
<list>
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/extension/adhocgroup_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
</list>
</property>
<property name="models">
<list>
<value>alfresco/extension/adhocgroupModel.xml</value>
</list>
</property>
<property name="labels">
<list>
<value>alfresco/extension/adhocgroup-messages</value>
</list>
</property>
</bean>
</beans>
3) adhocgroup-messages.properties#
# Adhoc Task Workflow
#
wfag_adhocgroup.workflow.title=Adhoc Group Task
wfag_adhocgroup.workflow.description=Assign task to a pooled group
# Adhoc Task Definitions
wfag_adhocgroupworkflowmodel.type.wfag_submitAdhocGroupTask.title=Start Adhoc Group Task
wfag_adhocgroupworkflowmodel.type.wfag_submitAdhocGroupTask.description=Allocate task to a pooled group
wfag_adhocgroupworkflowmodel.property.wfag_notifyMe.title=Notify Me
wfag_adhocgroupworkflowmodel.property.wfag_notifyMe.description=Notify me when task is complete
4) adhocgroupModel.xml<?xml version="1.0" encoding="UTF-8"?>
<model name="wfag:adhocgroupworkflowmodel" 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/model/adhocgroupworkflow/1.0" prefix="wfag"/>
</namespaces>
<types>
<!– –>
<!– Adhoc Group Tasks –>
<!– –>
<type name="wfag:submitAdhocGroupTask">
<parent>bpm:startTask</parent>
<properties>
<property name="wfag:notifyMe">
<type>d:boolean</type>
<default>false</default>
</property>
</properties>
<mandatory-aspects>
<aspect>bpm:groupAssignee</aspect>
</mandatory-aspects>
</type>
</types>
</model>
5) web-client-config-custom.xml<alfresco-config>
<config evaluator="node-type" condition="wfag:submitAdhocGroupTask" 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_adhoc_priority" />
<show-property name="bpm:workflowDueDate" display-label-id="wf_adhoc_due_date" />
<show-property name="wfag:notifyMe" />
<separator name="sep2" display-label-id="user_filter_user" component-generator="HeaderSeparatorGenerator" />
<show-association name="bpm:groupAssignee" display-label-id="wf_adhoc_assign_to" />
</property-sheet>
</config>
</alfresco-config>
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.