Gestionnaire d’évaluation de la valeur

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

Attributs

Voici une explication des attributs disponibles :

  • to_evaluate : L’entrée doit correspondre au modèle /sdéfini. S’il correspond, l’entrée est valide.
  • code_word_evaluation : La saisie vocale ne sera vérifiée que si cet attribut est défini. Il peut s’agir d’une chaîne vide. Si une commande de saisie vocale commence par le mot-clé donné, le reste de la commande sera utilisé pour l’évaluation.
    • Obligatoire: Faux
    • Valeur par défaut: Aucun

Épreuves

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 » :
          {
          }
    }

Exemple

<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>

Gestionnaire d’extracteur de valeur

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

Attributs

Voici une explication de l’attribut disponible :

  • modèle: L’entrée doit correspondre au modèle défini. S’il correspond, les groupes définis peuvent être extraits.
    • Obligatoire: Oui

Éléments

Les différents éléments sont les suivants :

  • GRP : Stocke les informations relatives à la façon dont chaque élément du groupe doit être extrait sous la forme d’une liste de paramètres.
    • Obligatoire: Non
    • Valeur par défaut: Liste vide
  • allowed_values : Permet de définir une liste de valeurs à vérifier après que le motif ait été évalué comme correct. Cela ne peut pas être utilisé avec des expressions régulières contenant or, car chaque groupe doit contenir une valeur ou un balayage autorisé.
    • Obligatoire: Non
    • Valeur par défaut: Aucun
  • code_word_extraction : La saisie vocale ne sera vérifiée que si cet attribut est défini. Il peut s’agir d’une chaîne vide. Si une commande de saisie vocale commence par le mot-clé donné, le reste de la commande sera utilisé pour extraire les informations nécessaires. Notez que la reconnaissance vocale via des expressions régulières n’est pas possible. Toutes les valeurs potentielles doivent être ajoutées à la syntaxe via l’action correspondante.
    • Obligatoire: Non
    • Valeur par défaut: Aucun
  • extract_to_workflow : Par défaut, les groupes résultants sont stockés dans l’étendue de l’étape. La définition de cet attribut sur true enregistrera les variables dans scopte du flux de travail à la place.
    • Obligatoire: Non
    • Valeur par défaut: Aucun
  • entrée: Permet de passer une entrée initiale à vérifier sur resume.
    • Obligatoire: Non
    • Valeur par défaut: Aucun

Épreuves

Le gestionnaire émet les événements suivants :

  • VALID_EXTRACTIONou 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"
          }
    }

Exemple

<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 ».

Exemple étendu avec le traitement des événements émis

<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>