Workflow Manual / Version 2310
Table Of ContentsIn this chapter you find the complete workflow definition of the Studio Direct Publication workflow as described in Section 4.3, “Example of Workflow Definition”.
<?xml version="1.0" encoding="iso-8859-1"?>
<!--
CoreMedia Simple Publication Workflow for Studio
-->
<Workflow>
<Process name="StudioSimplePublication" description="studio-simple-publication"
startTask="AssignUser">
<Rights>
<Grant group="administratoren" rights="read, create, start, suspend, resume, abort"/>
<Grant group="composer-role" rights="read, create, start, suspend, resume, abort"/>
<Grant group="approver-role" rights="read"/>
<Grant group="publisher-role" rights="read"/>
</Rights>
<Variable name="subject" type="String"/>
<Variable name="comment" type="String"/>
<AggregationVariable name="changeSet" type="Resource"/>
<AggregationVariable name="comments" type="String"/>
<Variable name="changeSetLockedInStudio" type="Boolean">
<Boolean value="true"/>
</Variable>
<Variable name="publicationSuccessful" type="Boolean">
<Boolean value="false"/>
</Variable>
<AggregationVariable name="publicationResultResources" type="Resource"/>
<AggregationVariable name="publicationResultCodes" type="Integer"/>
<AggregationVariable name="publicationResultVersions" type="Integer"/>
<AggregationVariable name="publicationResultParams" type="String"/>
<InitialAssignment>
<Writes variable="subject"/>
<Writes variable="comment"/>
<Writes variable="changeSet"/>
<Writes variable="comments"/>
</InitialAssignment>
<Assignment>
<Reads variable="subject"/>
<Reads variable="comment"/>
<Reads variable="changeSet"/>
<Reads variable="comments"/>
</Assignment>
<AutomatedTask name="AssignUser"
description="assignuser-task" successor="CheckEmptyChangeSet">
<Action class="ForceUser" task="Publish" userVariable="OWNER_"/>
<Action class="ForceUser" task="Compose" userVariable="OWNER_"/>
<Action class="RegisterPendingProcess" userVariable="OWNER_"/>
</AutomatedTask>
<If name="CheckEmptyChangeSet">
<Condition>
<IsEmpty variable="changeSet"/>
</Condition>
<Then successor="Finish"/>
<Else successor="Publish"/>
</If>
<UserTask name="Publish"
description="studio-simple-publication-publish-task"
successor="CheckPublication" reexecutable="true" autoAccepted="true" autoCompleted="true">
<Rights>
<Grant group="administratoren" rights="read, accept, retry"/>
<Grant group="composer-role" rights="read, accept, retry"/>
</Rights>
<Assignment>
<Reads variable="subject"/>
<Reads variable="comment"/>
<Reads description="publish-changeSet" variable="changeSet" contentEditable="false"/>
<Reads variable="comments"/>
</Assignment>
<EntryAction class="ApproveResource" gui="true"
resourceVariable="changeSet"
successVariable="publicationSuccessful"
ignoreErrors="true"
timeout="180"
userVariable="PERFORMER_">
</EntryAction>
<EntryAction class="PublishResources" gui="true"
resourceVariable="changeSet"
resultVariable="publicationResultResources"
versionVariable="publicationResultVersions"
codeVariable="publicationResultCodes"
parameterVariable="publicationResultParams"
successVariable="publicationSuccessful" ignoreErrors="false"
ignorePublicationErrors="true" timeout="600"
userVariable="PERFORMER_"/>
</UserTask>
<If name="CheckPublication">
<Condition>
<Get variable="publicationSuccessful"/>
</Condition>
<Then successor="Finish"/>
<Else successor="Compose"/>
</If>
<UserTask name="Compose"
description="studio-simple-publication-compose-task"
successor="CheckEmptyChangeSet" reexecutable="true" autoAccepted="true">
<Rights>
<Grant group="administratoren" rights="read, accept, delegate, skip"/>
<Grant group="composer-role" rights="read, accept, delegate, skip"/>
</Rights>
<Assignment>
<Writes variable="subject"/>
<Writes variable="comment"/>
<Writes variable="changeSet" contentEditable="true"/>
<Writes variable="comments"/>
<Reads variable="publicationResultCodes"/>
</Assignment>
</UserTask>
<AutomatedTask name="Finish" final="true">
<Action class="AssignVariable" resultVariable="changeSetLockedInStudio">
<Boolean value="false"/>
</Action>
</AutomatedTask>
<!-- Finally, make sure finished processes are archived and appear in the list of finished workflows for
participating users, i.e. for users for whom the RegisterPendingProcess action was called. -->
<FinalAction class="ArchiveProcessFinalAction" maxProcessesPerUser="100"/>
</Process>
</Workflow>
Example 6.62. Listing of the direct publication workflow


