...
Le workflow est la pièce maîtresse du module. Modifier un workflow, c'est modifier le fichier de configuration qui implémente en quelque sorte le diagramme d'état/transitions associé à un workflow donné.
A partir de la version 1.6
Prenons dans notre exemple la modification du workflow *default_lom_easy* qui se trouve dans *\[2INSTALLATION:ORI_HOME\]/src/ori-oai-workflow-svn/conf/properties/workflows/default_lom_easy*. Le format utilisé ici est SupLOMFR (ce paramétrage se fait dans le fichier *commons-parameters.properties* comme ceci : Wiki Markup
Code Block |
---|
LOM_FORMAT=lomfr-sup |
Note |
---|
Notons que dans notre cas de figure, et pour faire plus simple, nous allons modifier directement la configuration du workflow. |
...
La définition du workflow est faite dans le fichier de config osworkflow *\[2INSTALLATION:ORI_HOME\]/src/ori-oai-workflow-svn/conf/properties/workflows/default_lom_easy/workflow_easy.xml*.
=> C'est donc ce fichier workflow_easy.xml que l'on regarde ici.
...
Code Block | ||||
---|---|---|---|---|
| ||||
<condition type="spring"> <arg name="bean.name">verifySchematron</arg> <arg name="schematronFile">/properties/workflows/default_lom_easy/sch/\[LOM_FORMAT\]-ori-i18n.sch</arg> </condition> |
...
Les Schematron utilisent des XPATHs pour ce faire. Ici on externalise ces configurations dans *\[2INSTALLATION:LOM_FORMAT\]-ori-i18n.sch*, le schematron nous permet d'être plus précis et d'expliciter d'avantage les conditions attendues. *\[2INSTALLATION:LOM_FORMAT\]* prend ici la valeur que vous avez utilisée dans le fichier *commons-parameters.properties*.
Depuis properties/workflows/default_lom_easy/sch on modifie lomfr-sup-ori-i18n.sch de cette manière (ou lomfr-ori-i18n.sch ou lom-ori-i18n.sch suivant votre configuration) :
...
Code Block |
---|
lom_easy.schematron.lom-ori.fill_semanticDensity = Please enter 'Semantic density'. |
Avant la version 1.6
...
Le fichier *\[2INSTALLATION:ORI_HOME\]/src/ori-oai-workflow-svn/conf/properties/spring/spring-metadata-types.xml* qui permet de définir les types de métadonnées pris en compte dans ORI-OAI associe par défaut le type *ressource_pedago* au workflow *easy*.unmigrated-wiki-markup
Le workflow nommé *easy* est quand à lui défini dans le fichier de config osworkflow *\[2INSTALLATION:ORI_HOME\]/src/ori-oai-workflow-svn/conf/properties/spring/osworkflow/workflows/workflow_easy.xml* (cf. le fichier *\[2INSTALLATION:ORI_HOME\]/src/ori-oai-workflow-svn/conf/properties/spring/osworkflow/workflows.xml* qui permet de déclarer les workflow).
=> C'est donc ce fichier workflow_easy.xml que l'on modifie ici.
Avant la 1.4.0
Avant la 1.4.0 les conditions type XPATH étaient données directement dans le fichier de configuration du workflow workflow_easy.xml
Ici la modification est simple : une condition verifyXPathes sur la transition « Ask to Publish » existe déjà. Il suffit donc d'ajouter le xpath qui va bien en argument de cette condition :
...
Comme après chaque modification des configurations, il faut redéployer l'application (ant all) et la redémarrer (on peut redémarrer le tomcat pour ce faire).
Version 1.4 et 1.5
A partir de la 1.4.0, par défaut on utilise plutôt une nouvelle condition verifySchematronXsl.
Cette condition permet d'utiliser un Schematron pour vérifier qu'un XML contient bien les informations attendues.
...
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> <sch:schema xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:ns prefix="lom" uri="http://ltsc.ieee.org/xsd/LOM"/> <sch:ns prefix="lomfr" uri="http://www.lom-fr.fr/xsd/LOMFR"/> <sch:ns prefix="xsi" uri="http://www.w3.org/2001/XMLSchema-instance"/> <sch:pattern id="eltsObligatoire"> <sch:title>Test de présence des éléments obligatoires</sch:title> <sch:rule context="/lom:lom"> <sch:assert test="lom:general/lom:title/lom:string[normalize-space(.) != '']">Merci de compléter le champ titre.</sch:assert> <sch:assert test="/lom:lom/lom:general/lom:keyword/lom:string[normalize-space(.) != '']">Merci de compléter le champ mot-clé.</sch:assert> <sch:assert test="/lom:lom/lom:lifeCycle/lom:contribute[lom:role/lom:value='author']/lom:entity[normalize-space(.) != '']">Merci de compléter le champ auteur.</sch:assert> <sch:assert test="/lom:lom/lom:lifeCycle/lom:contribute[lom:role/lom:value='author']/lom:date/lom:dateTime[normalize-space(.) != '']">Merci de compléter le champ date de contribution.</sch:assert> <sch:assert test="/lom:lom/lom:technical/lom:location[normalize-space(.) != '']">Merci de compléter le champ localisation.</sch:assert> <sch:assert test="/lom:lom/lom:classification[lom:purpose/lom:value='discipline']/lom:taxonPath[lom:source/lom:string='Classification 100 Dewey']/lom:taxon/lom:entry/lom:string[normalize-space(.) != '']">Merci de compléter le champ 'Classification 100 Dewey'.</sch:assert> <sch:assert test="/lom:lom/lom:educational/lom:semanticDensity/lom:value[normalize-space(.)!= '']">Merci de compléter le champ 'Densité sémantique'.</sch:assert> </sch:rule> </sch:pattern> </sch:schema> |
Compilation
Note | ||
---|---|---|
| ||
Dans les versions précédant la 1.6, il était nécessaire de compiler les schematrons avant de pouvoir les utiliser. Depuis la version 1.6, cette compilation est automatique et transparente pour l'exploitant. |
...