ZERO Workflow

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.

  • Step 1: Add one more task in your model Dynamic Model 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.

  • Step 2: Make the highlighted changes in 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.

  • Step 3: Make the highlighted changes in 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.

  • Step 4: Test using the Submit Items Wizard.

    Click on Configure workflow to remove the user you have configured earlier.

    ZERO Workflow
  • Step 5: Remove the user as shown in the following screenshot:
    ZERO Workflow
  • Step 6: After removing the user click on OK.
    ZERO Workflow

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.

ZERO Workflow
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset