Activsoft.Workflow.Action.WorkflowAction
Cette implémentation de IAction permet d’exécuter des Actions au sein d’un projet moteur (Web ou autre) V7.
Les actions possibles sont les suivantes :
- Lancer une exécution en synchrone
- Lancer une exécution en asynchrone
- Envoyer une exécution en base de données
- Envoyer une exécution sur une queue de message
Configuration
Deux sections de configuration doivent être créées :
- une section de type Activsoft.Workflow.Manager.WorkflowExecutionManager (voir ici)
- une section de type Activsoft.Workflow.Action.WorkflowAction
La configuration de l’action est la suivante :
<workflowAction
manager="{nom de la section WorkflowExecutionManager}"
actionType="sync|aSync|sendToQueue|sendToDb"
{dans le cas d'utilisation de la queue de message}
login=""
password=""
virtualhost=""
queueName=""
host=""
{dans le cas d'envoi en base de données}
dbTableName="{nom de la table}"
dbJsonColumn="{nom de la colonne contenant la description}">
<actions>
{pour chaque action possible}
<action executionName="{module}.{execution}" pageId="{id de page vide si pas pertinent}" actionId="{id d'action, vide si pas pertinent}">
<conditions>
<condition
{dans le cas de condition sur un paramètre}
parameter="{nom du param}"
value="{valeur si c'est une valeur simple}"
match="{regex si c'est un regex}"
{dans le cas d'une requête à exécuter pour vérifier}
request="{contenu de la requête paramétrique}"/>
</conditions>
<parameters>
<parameter name="{nom du paramètre}" parameterName="{match dans monConfig}" value="{valeur directe}"/>
</parameters>
</action>
</action>
</workflowAction>
Appel de l’Action
L’action doit juste être ajoutée dans la section action de la configuration du moteur.
Pour chaque balise action, l’Action effectue les opérations suivantes :
- si pageId précisée et différente de la page : on passe à la suite
- si actionId précisée et différente de la action : on passe à la suite
- pour chaque condition si la requête ne renvoie rien ou si le paramètre ne matche pas la regex ou la valeur : on passe à la suite
- sinon :
- sync : lance l’action en synchrone
- async : envoie l’action dans la bonne queue asynchrone
- sendToQueue : envoie dans la queue de message
- sendToDb : envoie dans la table de BDD