Studio Developer Manual / Version 2010
Table Of Contents
For the client side, use the AddPublicationWorkflowPlugin
as a subclass of the
AddWorkflowPlugin
. Default forms for publication workflows already exist.
It is not recommended to define your own forms from scratch and no support is given in this respect. Instead, it
is recommended to sub-class the default
form components if needed and to use the additional workflow fields mechanism described in
Section 7.22.1.2, “Adding Workflow Fields”.
The AddPublicationWorkflowPlugin
plug-in automatically sets the default forms and some other
configuration parameters:
- processCategory
Set to
Publication
.- startForm
The
DefaultStartPublicationWorkflowForm
.- inboxForm
The
DefaultPublicationWorkflowDetailForm
.- pendingForm
The
DefaultPublicationWorkflowDetailForm
.- finishedForm
The
DefaultPublicationWorkflowInfoForm
.- listToolbarButtonsFunction
Set to
WorkflowUtils.getPublicationToolbarButtons()
.
You have to configure the following settings for your workflow:
- processDefinitionName
The name of your process definition.
- nextSelectedTaskProcessVariableName
The name of the process variable where the next selected task is save (see the explanations above on
nextSelectedTask
alongside the example workflow definition).- assignmentTasks
The tasks of the workflow where assignees may be set.
- statePanel
The panel allowing the user to select the next task. The panel needs to implement
NextTaskSelector
. For your convenience there already exists a generic implementation for such a panel in the form of theWorkflowStatePanel
, which you then need to configure for your workflow. For more details, see the code documentation.One important aspect is to explicitly define for which tasks the performer is forced to be the same as for the previous task (
forceCurrentPerformer
). This needs to mirror the forced-user configurations in your workflow definition. In the example of the 3-step pubication workflow, the taskDoPublish
is set as a forced-user task in the workflow definition above as well as in theWorkflowStatePanel
configuration below.
Example 7.89, “Usage of the AddPublicationWorkflowPlugin for the StudioThreeStepPublication workflow” shows an example usage of the
AddPublicationWorkflowPlugin
for the case of the StudioThreeStepPublicationWorkflow
.
<?xml version="1.0" encoding="UTF-8"?> <editor:StudioPlugin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns="exml:ext.config" xmlns:exml="http://www.jangaroo.net/exml/0.8" xmlns:collab="exml:com.coremedia.cms.editor.controlroom.config" xmlns:editor="exml:com.coremedia.cms.editor.sdk.config"> <fx:Metadata> [ResourceBundle('com.coremedia.blueprint.studio.threesteppublication.ThreeStepPublicationWorkflow')] </fx:Metadata> <fx:Script><![CDATA[ import com.coremedia.cms.editor.controlroom.workflow.publication.PublicationWorkflowConstants; import mx.resources.ResourceManager; public static const xtype:String = "com.coremedia.blueprint.studio.threesteppublication.config.threeStepPublicationWorkflowStudioPlugin"; public native function ThreeStepPublicationWorkflowStudioPlugin(config:ThreeStepPublicationWorkflowStudioPlugin = null); ]]></fx:Script> <editor:configuration> <collab:AddPublicationWorkflowPlugin processDefinitionName="StudioThreeStepPublication" nextSelectedTaskProcessVariableName="{PublicationWorkflowConstants.NEXT_SELECTED_TASK_PROCESS_VARIABLE_NAME}" assignmentTasks="{[PublicationWorkflowConstants.APPROVE_TASK_NAME, PublicationWorkflowConstants.PUBLISH_TASK_NAME]}"> <collab:statePanel> <collab:WorkflowStatePanel processDefinitionName="StudioThreeStepPublication" defaultCurrentTaskName="{PublicationWorkflowConstants.COMPOSE_TASK_NAME}"> <collab:workflowStateTransitions> <collab:WorkflowStateTransition task="{PublicationWorkflowConstants.COMPOSE_TASK_NAME}" nextSteps="{[{nextStep: PublicationWorkflowConstants.APPROVE_TASK_NAME}]}" defaultStep="{PublicationWorkflowConstants.APPROVE_TASK_NAME}"/> <collab:WorkflowStateTransition task="{PublicationWorkflowConstants.APPROVE_TASK_NAME}" nextSteps="{[{nextStep: PublicationWorkflowConstants.COMPOSE_TASK_NAME, allowAlways:true}, {nextStep: PublicationWorkflowConstants.PUBLISH_TASK_NAME}]}" defaultStep="{PublicationWorkflowConstants.PUBLISH_TASK_NAME}"/> <collab:WorkflowStateTransition task="{PublicationWorkflowConstants.PUBLISH_TASK_NAME}" nextSteps="{[{nextStep: PublicationWorkflowConstants.APPROVE_TASK_NAME}, {nextStep:'DoPublish', forceCurrentPerformer: true}]}" defaultStep="DoPublish"/> </collab:workflowStateTransitions> </collab:WorkflowStatePanel> </collab:statePanel> </collab:AddPublicationWorkflowPlugin> <editor:CopyResourceBundleProperties destination="{ResourceManager.getInstance().getResourceBundle(null, 'com.coremedia.cms.editor.ProcessDefinitions')}" source="{ResourceManager.getInstance().getResourceBundle(null, 'com.coremedia.blueprint.studio.threesteppublication.ThreeStepPublicationWorkflow')}"/> </editor:configuration> </editor:StudioPlugin>
Example 7.89. Usage of the AddPublicationWorkflowPlugin for the StudioThreeStepPublication workflow