03-16-2007 11:02 AM
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wf:goprocessdefinition">
<swimlane name="sales" />
<swimlane name="reception">
<assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
<actor>#{people.getPerson("receptionuser1")}</actor>
</assignment>
</swimlane>
<swimlane name="planner">
<assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
<actor>#{people.getPerson("planneruser1")}</actor>
</assignment>
</swimlane>
<start-state name="start">
<task name="wf:startGoFlow" swimlane="sales"/>
<transition name="" to="addCustomerProjectFolders">
<!– Send email –>
</transition>
</start-state>
<state name="addCustomerProjectFolders">
<transition name="" to="updatePipeline">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
var folders = companyhome.childrenByXPath("*[@cm:name='Test Space']/
*[@cm:name='Gare']");
var gareFolder = folders[0];
if (gareFolder != null)
{
folders = gareFolder.childrenByXPath("*[@cm:name='" + wf_customerName + "']");
var customerFolder = folders[0];
if (customerFolder == null)
{
customerFolder = gareFolder.createFolder(wf_customerName);
customerFolder.setInheritsPermissions(false);
customerFolder.removePermission("All");
customerFolder.setPermission("Read");
customerFolder.setPermission("Write", "receptionuser1");
customerFolder.setPermission("AddChildren", "receptionuser1");
}
if (customerFolder != null)
{
folders = customerFolder.childrenByXPath("*[@cm:name='" + wf_projectName + "']");
var projectFolder = folders[0];
if (projectFolder == null)
{
projectFolder = customerFolder.createFolder(wf_projectName);
projectFolder.setInheritsPermissions(false);
projectFolder.removePermission("All");
projectFolder.setPermission("Read");
projectFolder.setPermission("Write", "receptionuser1");
projectFolder.setPermission("AddChildren", "receptionuser1");
}
}
}
</script>
</action>
</transition>
</state>
<task-node name="updatePipeline">
<task name="wf:updatePipelineTask" swimlane="reception"/>
<transition name="" to="handleable" />
</task-node>
<decision name="handleable">
<transition name="yesItIs" to="addDDGOTEFolders">
<condition>#{wf_handleable}</condition>
</transition>
<transition name="noIsNot" to="archiveProject" />
</decision>
<state name="addDDGOTEFolders">
<transition name="" to="selTeamLeader">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
var folders = companyhome.childrenByXPath("*[@cm:name='Test Space']/
*[@cm:name='Gare']/
*[@cm:name='" + wf_customerName + "']/
*[@cm:name='" + wf_projectName + "']");
var projectFolder = folders[0];
if (projectFolder != null)
{
folders = projectFolder.childrenByXPath("*[@cm:name='Documenti di gara']");
var documentiDiGara = folders[0];
if (documentiDiGara == null)
{
documentiDiGara = projectFolder.createFolder("Documenti di gara");
documentiDiGara.setInheritsPermissions(false);
documentiDiGara.removePermission("All");
documentiDiGara.setPermission("Read");
documentiDiGara.setPermission("Write", "receptionuser1");
documentiDiGara.setPermission("AddChildren", "receptionuser1");
}
folders = projectFolder.childrenByXPath("*[@cm:name='Offerta tecnico economica']");
var offertaTecnicoEconomica = folders[0];
if (offertaTecnicoEconomica == null)
{
offertaTecnicoEconomica = projectFolder.createFolder("Offerta tecnico economica");
offertaTecnicoEconomica.setInheritsPermissions(false);
offertaTecnicoEconomica.removePermission("All");
offertaTecnicoEconomica.setPermission("Read");
offertaTecnicoEconomica.setPermission("Write", "salesuser1");
offertaTecnicoEconomica.setPermission("AddChildren", "salesuser1");
}
}
</script>
</action>
</transition>
</state>
<state name="archiveProject">
<!– Script per l'archiviazione –>
<transition name="" to="end"/>
</state>
<task-node name="selTeamLeader">
<task name="wf:selTeamLeaderTask" swimlane="planner" />
<transition name="" to="addOTEPermissions">
<!– Send email –>
</transition>
</task-node>
<state name="addOTEPermissions">
<transition name="" to="end">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
var folders = companyhome.childrenByXPath("*[@cm:name='Test Space']/
*[@cm:name='Gare']/
*[@cm:name='" + wf_customerName + "']/
*[@cm:name='" + wf_projectName + "']/
*[@cm:name='Offerta tecnico economica']");
var offertaTecnicoEconomica = folders[0];
offertTecnicoEconomica.removePermission("All");
offertaTecnicoEconomica.setPermission("Write", bpm_assignee);
offertaTecnicoEconomica.setPermission("AddChildren", bpm_assignee);
</script>
</action>
</transition>
</state>
<end-state name="end" />
</process-definition>
Does the <state> work in Alfresco? If yes, is it performed by the system or not?03-16-2007 02:59 PM
First: is there a way to have the system creating folders during a workflow? If yes, how?
<node name="auto">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
// some arbitrary javascript e.g. create folder
// exit node - here we exit via the default transition
// or executionContext.leaveNode(transitionName)
executionContext.leaveNode();
</script>
</action>
<transition name="" to="next"/>
</node>
03-20-2007 06:47 AM
03-20-2007 08:12 AM
org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript
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.