You are required to select a user or group whenever your workflows are processed to deploy content on the staging server. However, if you customize your workflow, the user group selection becomes optional.
Let's take the same example that we have used for the Dynamic deployment section.
dynamicWCMWorkflowModel:
<aspect name="dynamic:assignee"> <associations> <association name="bpm:assignee"> <source> <mandatory>false</mandatory> <many>false</many> </source> <target> <class>cm:person</class> <mandatory>false</mandatory> <many>false</many> </target> </association> </associations> </aspect>
Make the highlighted changes. Earlier we have used bpm:assignee;
now we are using dynamic:assignee.
<type name="dynamic:initializeTask"> <parent>dynamic:startTask</parent> <properties> <property name="dynamic:property"> <title>Dynamic Property</title> <type>d:text</type> </property> </properties> <mandatory-aspects> <aspect>dynamic:assignee</aspect> </mandatory-aspects> </type> <type name="dynamic:reviewTask"> <parent>dynamic:workflowTask</parent> <overrides> <property name="bpm:packageItemActionGroup"> <default>edit_wcm_package_item_actions</default> </property> </overrides> <mandatory-aspects> <aspect>dynamic:assignee</aspect> </mandatory-aspects> </type>
Reload the model using a dynamic approach as discussed earlier.
web-client-config-custom.xml
.<config evaluator="node-type" condition="dynamic:initializeTask" replace="true"> <property-sheet> <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" /> <show-property name="dynamic:property" /> <show-association name="dynamic:assignee" display-label-id="wf_reviewers" /> </property-sheet> </config> <config evaluator="node-type" condition="dynamic:reviewTask" replace="true"> <property-sheet> <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator"/> <show-property name="bpm:taskId" /> <show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/> <show-property name="bpm:comment" component-generator="TextAreaGenerator" /> <separator name="sep2" display-label-id="wf_reviewers" component-generator="HeaderSeparatorGenerator" /> <show-association name="dynamic:assignee" display-label-id="wf_reviewers" read-only="true"/> </property-sheet> </config>
Reload Alfresco explorer using dynamic approach as discussed earlier.
dynamicProcessdefinition.xml
.<?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="dynamic:processTask"> <swimlane name="initiator"/> <start-state name="start"> <task name="dynamic:initializeTask" swimlane="initiator"/> <transition name="" to="submitreview"> </transition> </start-state> <decision name="submitreview"> <transition name="" to="end" > <condition>#{bpm_assignee ==null}</condition> </transition> <transition name="" to="review"> <condition>#{bpm_assignee!=null}</condition> </transition> </decision> <task-node name="review"> <task name="dynamic:reviewTask"> <assignment class= "org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{bpm_assignee}</actor> </assignment> <event type="task-end"> <action class= "org.alfresco.repo.avm.wf.AVMSubmitPackageHandler"/> <action class= "org.alfresco.repo.avm.wf.AVMDeployHandler"/> <action class= "org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript"> <script> logger.log("WCM Submit Process: End submit for " + bpm_workflowDescription + " (by " + person.properties.userName + ")"); </script> </action> </event> </task> <transition name="approve" to="end"> </transition> <transition name="reject" to="end" /> </task-node> <end-state name="end"/> <event type="process-end"> <action class= "org.alfresco.repo.avm.wf.AVMRemoveAllSrcWebappsHandler"/> <action class= "org.alfresco.repo.avm.wf.AVMSubmitPackageHandler"/> <action class="org.alfresco.repo.avm.wf.AVMDeployHandler"/> <action class= "org.alfresco.repo.avm.wf.AVMReleaseTestServerHandler"/> <action class= "org.alfresco.repo.avm.wf.AVMRemoveWFStoreHandler"/> </event> </process-definition>
Update Process Definition using a dynamic approach as discussed earlier.
Click on Configure workflow to remove the user you have configured earlier.
Now that the workflow settings have been changed, click on OK to submit content to the staging server. It will not go to any user for processing, as we have not selected any user. Content is submitted directly to staging.