Ce gestionnaire évalue si une valeur est valide en fonction d’un modèle ou d’une liste de modèles.
Type : value_evaluation_handler
Voici une explication des attributs disponibles :
/s
défini. S’il correspond, l’entrée est valide.Le gestionnaire émet les événements suivants :
VALID
: Si l’entrée fournie correspond au modèle.ALREADY_VALID
: Si l’entrée fournie correspond à un modèle qui a déjà été validé avec succès.ALL_VALID
: Si tous les éléments de la to_evaluate
collection ont été validés avec succès.INVALID
: Si l’entrée fournie ne correspond à aucun modèle.La structure de la charge utile est la suivante :
{ "command » : « VALID », "device » : { "modality » : « value-evaluation », "name » : « value-evaluation », "source » : « value-evaluation », "descriptor » : « value-evaluation" }, "payload » : { "code » : « Je suis une légende" } } { "command » : « INVALID », « device » : { "modality » : « value-evaluation », "name » : « value-evaluation », "source » : « value-evaluation », "descriptor » : « value-evaluation" }, "payload » : { } }
<context> <param name="validations » type="string"></param> </context> <handlers> <value_evaluation_handler> <code_word_extraction>validate</code_word_extraction> <list name="to_evaluate » listType="UNNAMED"> <elem>machine .+</elem> <elem>station .+</elem> </list> </value_ evaluation_handler> </handlers> <states> <onevent> <rule id="is_valid"> <expression> < ![ CDATA[ #{event(value-evaluation) :command} == 'VALID' ]]> </expression> <actions> <setvar id="add_validation"> <context_of>step</context_of> <context_update>< param name="validations » type="string">#{validations} #{event :payload.code}</param> </context_update> </setvar> </actions> </rule> <rule id="all_valid"> <expression> < ![ CDATA[ #{event(value-evaluation) :command} == 'ALL_VALID' ]]> </expression> <actions> <finish_workflow id="exit"/> </actions> </rule> <rule id="invalid_input"> <expression> < ![ CDATA[ #{event(value-evaluation) :command} == 'INVALID' ]]> </expression> <actions> <ui_notification id="invalid_value » type="ERROR » duration="SHORT » show_immediately="true"> <message>"Valeur non valide !</message> </ui_notification> </actions> </rule> </onevent> </states>
Ce gestionnaire est utilisé pour mettre en œuvre la lecture de codes-barres via du matériel de lecture dédié. Il extrait l’entrée du scanner ou de la parole en fonction d’une liste de modèles et vérifie si au moins un de ces modèles est valide.
Modèle : value_extractor_handler
Voici une explication de l’attribut disponible :
Les différents éléments sont les suivants :
or
, car chaque groupe doit contenir une valeur ou un balayage autorisé.
true
enregistrera les variables dans scopte du flux de travail à la place.
resume
.
Le gestionnaire émet les événements suivants :
VALID_EXTRACTION
ou INVALID_EXTRACTION
: Le gestionnaire vérifiera tout événement d’entrée avec les BARCODE
modalités et SPEECH
(si le code_word_extraction
paramètre est fourni) et émettra un événement avec les VALID_EXTRACTION
commandes ouINVALID_EXTRACTION
.INVALID_PATTERN
: Si le modèle fourni contient une erreur de syntaxe, le gestionnaire émettra un événement avec la INVALID_PATTERN
commande .La structure de la charge utile est la suivante :
{ "command » : « VALID_EXTRACTION », "device » : { "modality » : « value_extractor », "name » : « value_extractor », "source » : « value_extractor », "descriptor » : « value_extractor" }, "payload » : { "technology » : « SCAN », // [SCAN, VOIX] "CODE » : « 123456789 », « speech_command » : « null" } } { "command » : « INVALID_PATTERN », "device » : { "modality » : « value_extractor », "name » : « value_extractor », "source » : « value_extractor », "descriptor » : « value_extractor" }, "payload » : { "technology » : « pattern« , "code » : « (.() * », "speech_command » : « null" } }
<value_extractor_handler pattern="(.+)_(.+) » code_word_extraction="UTILISATEUR"> <grp> <param name="grp_1 » type="string">prefix</param> <param name="grp_2 » type="string">suffixe</param> </grp> </value_extractor_handler>
Un code tel que « test_user » sera extrait avec succès. Ensuite, #{prefix}
contiendra « test » et #{suffix}
contiendra « user ».
<context> <list name="user_name_list » listType="UNNAMED">< elem>barry</elem> <elem>white</elem> </list> </context> <handlers><value_extractor_handler pattern="(.+)_(.+)"> <code_word_extraction></code_word_extraction> <input>admin_barry</input> <extract_to_workflow>true</extract_to_ workflow> <grp> <param name="grp_1 » type="string">user_role</param> <param name="grp_2 » type="string">user_name</param> </grp> <allowed_values> <list name="grp_1 » listType="UNNAMED"> <elem>admin</elem> <elem>supervisor</elem> </list> <param name="grp_2 » type="object">#{user_name_list}</param> </allowed_values> </value_extractor_handler> </handlers> <states> <onevent> <rule id="set_user"> <expression>< ![ CDATA[ #{event(value_extractor) :command} == 'VALID_EXTRACTION' && exists(#{user_role}) && exists(#{user_name}) ]]></expression> <actions> <setvar id="set_user"> <context_of>workflow</context_of> <context_update> <param name="userrole » type="string">#{user_role}</param> <param name="nom d’utilisateur » type="string">#{ user_name}</param> </context_update> </setvar> </actions> </rule> <rule id="invalid_input"> <expression>< ![ CDATA[ #{event(value_extractor) :command} == 'INVALID_EXTRACTION' && #{event :payload.technology} == 'SCAN' ]]></expression> <actions> <ui_notification id="invalid_user » type="ERROR » duration="SHORT » show_immediately="true"> <message>"#{event :payload.code} » n’est pas un utilisateur valide !</message> </ui_notification> </actions> </rule> </onevent> </states>