Le plugin workflow permet de configurer les traitements que vous souhaitez voir exécuter lorsqu'une action est déclenchée sur une ressource.
Les différents traitements possibles appelés "tâche" sont proposés par les modules de workflow (Notification,génération de pdf... )
Dans le cas ou vous souhaitez créer des tâches spécifiques, il est nécessaire de développer son propre module de workflow.
Le module de workflow doit dépendre du plugin-workflow, pour ce faire il faut ajouter la section suivante dans le fichier pom.xml du module la dépendance suivante:
<dependency>
<groupId>fr.paris.lutece.plugins</groupId>
<artifactId>plugin-workflow</artifactId>
<version>[3.0.0,)</version>
<type>lutece-plugin</type>
</dependency>
Pour pouvoir créer une tâche de workflow les classes ci-dessous doivent être développées :
public class MyTask extends Task
{
...
}
La library-workflow-core offre une classe abstraite SimpleTask héritant de la classe Task et implémentant les méthodes de base de cette dernière.
Cette classe peut être utilisée afin de n'avoir à implémenter que les méthodes principales de la classe Task.
public class MyTaskConfig extends TaskConfig
{
...
}
public class MyTaskConfigDAO implements ITaskConfigDAO<MyTaskConfig>
{
...
}
public class MyTaskConfigService extends TaskConfigService
{
...
}
public class MyTaskComponent extends TaskComponent
{
...
}
Dans le fichier de contexte du module (fichier /WEB-INF/conf/plugins/workflow-mytask_context.xml) il faut déclarer les beans définissant la tâche, son type et sa configuration.
<bean id="workflow-mytask.taskTypeMyTask" class="fr.paris.lutece.plugins.workflowcore.business.task.TaskType"
p:key="taskMyTask"
p:titleI18nKey="module.workflow.mytask.task_title"
p:beanName="workflow-mytask.taskMyTask"
p:configBeanName="workflow-mytask.taskMyTaskConfig"
p:configRequired="true"
p:formTaskRequired="true"
p:taskForAutomaticAction="true" />
<bean id="workflow-mytask.taskMyTask" class="fr.paris.lutece.plugins.workflow.modules.mytask.service.MyTask" scope="prototype" />
Le bean définissant le type de la tâche doit comporter les attributs suivants
Nom | Description | Exemple |
---|---|---|
key | La clé technique de la tâche (doit être unique) | taskMyTask |
titleI18nKey | La clé i18n contenat le titre de la tâche | module.workflow.mytask.task_title |
beanName | Le nom du bean de la tâche (doit être identique à l'ID du bean définissant la tâche) | workflow-mytask.taskMyTask |
configBeanName | Le nom du bean de la configuration de la tâche (doit être identique à l'ID du bean définissant la configuration de la tâche). Ne le définir que si la tâche de workflow a besoin d'une configuration | workflow-mytask.taskMyTaskConfig |
configRequired | Attribut permettant de savoir si la tâche a besoin d'une configuration de l'administrateur technique ou non. Attribut optionnel si la tâche n'a pas besoin de configuration. | true |
formTaskRequired | Attribut permettant de savoir si la tâche a besoin d'un formulaire intermédiaire lors de l'exécution de l'action. Attribut optionnel si la tâche n'a pas besoin de formulaire intermédiaire. | true |
taskForAutomaticAction | Attribut permettant de savoir si la tâche peut être assignée à une action automatique. Attribut optionnel si la tâche ne peux pas être assignée à une action automatique. | true |
Si la tâche de workflow nécessite une configuration dynamique alors il faut l'ajouter au fichier de contexte
<bean id="workflow-mytask.taskMyTaskConfig" class="fr.paris.lutece.plugins.workflow.modules.mytask.business.MyTaskConfig"
scope="prototype" />
<bean id="workflow-mytask.taskMyTaskConfigService"
class="fr.paris.lutece.plugins.workflow.modules.mytask.service.TaskMyTaskConfigService"
p:taskConfigDAO-ref="workflow-mytask.taskMyTaskConfigDAO" />
Si la tâche de workflow nécessite l'affichage d'un formulaire alors il faut l'ajouter au fichier de contexte
<bean id="workflow-mytask.myTaskTaskComponent" class="fr.paris.lutece.plugins.workflow.modules.mytask.web.MyTaskTaskComponent"
p:taskType-ref="workflow-mytask.taskTypeMyTask"
p:taskConfigService-ref="workflow-mytask.taskMyTaskConfigService" />
Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.
Vous devriez rafraîchir la page.