Un workflow peut nécessiter l'interaction avec un service distant (i.e extérieur à l'environnement constitué par les modules ORI-OAI). C'est le cas par exemple des workflows default_ao_easy et default_ao_complex dédiés au référencement des publications scientifiques et qui interagissent avec la plateforme HAL.
Pour illustrer la description de la marche à suivre pour configurer une telle interaction, nous prendrons ici un exemple présent dans les deux workflows précités : l'envoi, conjoitement à sa publication locale, d'une fiche sur la plateforme HAL.
Code Block | ||||
---|---|---|---|---|
| ||||
<action id="1" name="aoe-publish">
<restrict-to>
<conditions type="AND">
<condition type="spring">
<arg name="bean.name">hasRole</arg>
<arg name="mask">AOE_OWNER</arg>
</condition>
</conditions>
</restrict-to>
<results>
<result old-status="Finished" status="Underway" split="1">
<conditions type="AND">
<condition type="spring">
<arg name="bean.name">verifyXPathes</arg>
<arg name="xpath1">//dcterms:accessRights[@xsi:type = 'dcfr:envoi_HAL' and not(contains(text(), 'no_hal')) and not(contains(text(), 'unavailable_file')) and normalize-space(.)]</arg>
<arg name="annotation">aoe-send-hal.warn</arg>
</condition>
</conditions>
</result>
<unconditional-result old-status="Finished"
status="Underway" step="3" />
</results>
<post-functions>
<function type="spring">
<arg name="bean.name">deletePermission</arg>
<arg name="mask">USE_AOE_MODERATOR_FORM</arg>
<arg name="recipient">AOE_OWNER</arg>
</function>
<function type="spring">
<arg name="bean.name">saveOrUpdateIndex</arg>
<arg name="idOriIndexing">indexingServicePublic</arg>
</function>
</post-functions>
</action>
|