Wiki Markup |
---|
Le workflow que nous redéfinissons ici est défini dans la contribution *\[ORI_HOME\]/src/ori-oai-workflow-svn/conf/custom/workflows/contrib_dc_3*. |
Le fichier à modifier est workflow_dc_3.xml
Code Block |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.6//EN" "http://www.opensymphony.com/osworkflow/workflow_2_8.dtd">
<workflow>
<initial-actions>
<action id="100" name="Start Workflow">
<restrict-to>
<conditions type="AND">
<condition type="spring">
<arg name="bean.name">hasRole</arg>
<arg name="mask">DC3_AUTHENTICATED</arg>
</condition>
</conditions>
</restrict-to>
<results>
<unconditional-result old-status="Finished"
status="Underway" step="1" />
</results>
<post-functions>
<function type="spring">
<arg name="bean.name">addRole</arg>
<arg name="mask">DC3_OWNER</arg>
<!-- no recipient -> current user -->
</function>
<function type="spring">
<arg name="bean.name">addPermission</arg>
<arg name="mask">DC3_CREATE DC3_DELETE</arg>
<arg name="recipient">DC3_OWNER</arg>
</function>
<function type="spring">
<arg name="bean.name">xslTransform</arg>
<arg name="xslPath">properties/workflows/contrib_dc_3/xsl/dcSetCreator.xsl</arg>
</function>
</post-functions>
</action>
</initial-actions>
<steps>
<step id="1" name="dc_3.Private">
<actions>
<action id="1" name="dc_3.Publish">
<restrict-to>
<conditions type="AND">
<condition type="spring">
<arg name="bean.name">hasRole</arg>
<arg name="mask">DC3_OWNER</arg>
</condition>
</conditions>
</restrict-to>
<results>
<unconditional-result status="Underway"
old-status="Finished" step="2" />
</results>
<post-functions>
<function type="spring">
<arg name="bean.name">deletePermission</arg>
<arg name="mask">DC3_CREATE DC3_DELETE DC3_WRITE</arg>
<arg name="recipient">DC3_OWNER</arg>
</function>
<function type="spring">
<arg name="bean.name">saveOrUpdateIndex</arg>
<arg name="idOriIndexing">indexingServicePublic</arg>
</function>
</post-functions>
</action>
</actions>
</step>
<step id="2" name="dc_3.Public">
<actions>
<action id="2" name="dc_3.Make Private">
<restrict-to>
<conditions type="AND">
<condition type="spring">
<arg name="bean.name">hasRole</arg>
<arg name="mask">DC3_OWNER</arg>
</condition>
</conditions>
</restrict-to>
<results>
<unconditional-result old-status="Finished"
status="Underway" step="1" />
</results>
<post-functions>
<function type="spring">
<arg name="bean.name">addPermission</arg>
<arg name="mask">DC3_CREATE DC3_DELETE DC3_WRITE</arg>
<arg name="recipient">DC3_OWNER</arg>
</function>
<function type="spring">
<arg name="bean.name">deleteIndex</arg>
<arg name="idOriIndexing">indexingServicePublic</arg>
</function>
</post-functions>
</action>
<action id="3" name="dc_3.Archive">
<restrict-to>
<conditions type="AND">
<condition type="spring">
<arg name="bean.name">hasRole</arg>
<arg name="mask">DC3_ARCHIVER</arg>
</condition>
</conditions>
</restrict-to>
<results>
<unconditional-result old-status="Finished"
status="Underway" step="3" />
</results>
<post-functions>
<function type="spring">
<arg name="bean.name">addPermission</arg>
<arg name="mask">USE_DC3_ARCHIVE_FORM</arg>
<arg name="recipient">DC3_ARCHIVER</arg>
</function>
<function type="spring">
<arg name="bean.name">deleteIndex</arg>
<arg name="idOriIndexing">indexingServicePublic</arg>
</function>
</post-functions>
</action>
</actions>
</step>
<step id="3" name="dc_3.Archived">
<!-- Attention, pour OsWorkflow un step sans action "termine" le workflow
=> ici on propose une action fictive cad conditionnée par une condition impossible à réaliser -->
<actions>
<action id="4" name="dc_3.Dummy Action">
<restrict-to>
<conditions type="AND">
<condition type="spring">
<arg name="bean.name">hasRole</arg>
<arg name="mask">-1</arg> <!-- Dummy Role -->
</condition>
</conditions>
</restrict-to>
<results>
<unconditional-result old-status="Finished"
status="Underway" step="3" />
</results>
</action>
</actions>
</step>
</steps>
</workflow>
|
On a ici comme le schéma l'indiquait, ajouté une transition (une action en langage osworkflow) et un état (un step).
Wiki Markup |
---|
\[notez, comme dit en commentaire, que l'on a dû définir une action fictive depuis cet état Archived\]. |
Dès lors, après redéploiement et redémarrage de ori-oai-workflow, les « documents » sont associés à ce workflow.
Il reste maintenant à définir les libellés d'action dans les fichiers i18n/messages_fr.properties et i18n/messages_en.properties comme ceci :
Code Block |
---|
dc_3.Archive = Archiver
dc_3.Archived = Archiv\u00E9e
|
et
Code Block |
---|
dc_3.Archive = Archive
dc_3.Archived = Archived
|