Page History

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

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

Wiki MarkupPrenons 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 :

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.
Nous recommandons toutefois fortement aux exploitants de copier/coller le workflow d'origine et de créer un nouveau workflow en utilisant la documentation suivante. Ainsi, il sera plus aisé de migrer son workflow personnalisé d'une version à l'autre de ORI-OAI.

...

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
xml
xml
<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
xml
<?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
titleModifications 1.6

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.

...