> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Étape 9 : Configurer des règles métier

> Ajoutez des règles métier pour valider et normaliser les valeurs des champs extraits — ajustez les Doctor ID à l’aide d’expressions régulières et vérifiez la validité des arrêts maladie avec des règles de script.

Une fois les activités Extraction Rules configurées, ajoutez des règles métier pour valider et normaliser les valeurs de champ.

<div id="adjust-the-doctors-id">
  ## Ajuster le Doctor ID
</div>

Ajustez les propriétés du champ **Doctor ID** afin de corriger les erreurs d’OCR et de supprimer les caractères indésirables des résultats de préreconnaissance. Une fois la région du champ localisée, une expression régulière définie dans les propriétés du champ réextrait les données et supprime le bruit d’OCR.

<Steps>
  <Step title="Ouvrir les paramètres du champ Doctor ID">
    1. Cliquez sur le nom de la compétence et accédez à l’onglet **Fields**.
    2. Développez le groupe "Doctor", puis ouvrez les paramètres du champ "Doctor ID" en cliquant sur l’icône de paramètres située à côté.
  </Step>

  <Step title="Ajouter une expression régulière">
    1. Dans la section **Value** des propriétés du champ, cliquez sur l’icône d’ajout en regard de l’option **Regular expression**.
    2. Collez l’expression suivante dans le **Regular Expression Editor** :

       ```
       [0-9]{1}[\/.-]{1}[0-9]{5}[\/.-]{1}[0-9]{2}[\/.-]{1}[0-9]{3}
       ```

    <Note>
      Cet éditeur utilise une notation standard différente de celle utilisée dans l’**Éditeur d’activité** Extraction Rules. Pour plus d’informations, cliquez sur **Syntax help** dans le **Regular Expression Editor**.
    </Note>
  </Step>

  <Step title="Enregistrer les modifications">
    Cliquez sur **Save** pour fermer le **Regular Expression Editor**, puis cliquez de nouveau sur **Save** pour fermer les propriétés du champ.
  </Step>
</Steps>

<div id="check-whether-the-sick-note-is-valid">
  ## Vérifier si l'arrêt maladie est valide
</div>

Un patient doit recevoir l'arrêt maladie dans les 3 jours suivant le début de sa maladie. En termes de champ, la date d'émission ne doit pas être postérieure de plus de 3 jours à la date de début de la maladie. Utilisez une règle de script pour appliquer cette contrainte.

<Steps>
  <Step title="Ouvrir la boîte de dialogue Nouvelle règle">
    Cliquez sur l'icon d'ajout sous le formulaire de données. La boîte de dialogue **Nouvelle règle** s'ouvre.

    <Note>
      Si vous ne voyez pas l'icon d'ajout, passez à la section **Référence** au-dessus de l'image du document.
    </Note>
  </Step>

  <Step title="Configurer le type de règle et les fields">
    1. Sélectionnez **Règle de script avancée** et cliquez sur **Suivant**.
    2. Renommez la règle en "Check validity".
    3. Sélectionnez les fields "Start Date" et "Date" dans la liste des fields.
    4. Cliquez sur **Suivant**.
  </Step>

  <Step title="Ajouter le script de validité">
    Collez le script suivant dans l'éditeur de script :

    ```javascript theme={null}
    // Créer des variables pour tous les champs auxquels vous allez accéder
    var startField = Context.GetField("Start Date") ;
    var dateField = Context.GetField("Date");

    if (dateField && dateField.Value && startField && startField.Value)
    {
       var date = dateField.Value;
       var startDate = startField.Value;

       //Calculer la date de début la plus précoce possible
       date.setDate(date.getDate() - 3);

       if (startDate < date)
       {
           Context.CheckSucceeded = false;
           Context.ErrorMessage = "L'arrêt maladie a été émis trop tard";
       }
    }
    ```

    Cliquez sur **Enregistrer** et examinez le fonctionnement de la règle sur différents documents de l’ensemble. Pour vérifier comment la règle gère les erreurs, saisissez manuellement des valeurs de test dans les fields du formulaire de données — la règle est réappliquée à chaque modification de la valeur du champ.
  </Step>
</Steps>

<div id="check-the-sick-leave-duration">
  ## Vérifiez la durée du congé maladie
</div>

Calculez la durée de l’arrêt maladie à partir des dates de début et de fin. Si le document précise déjà une durée, la règle vérifie qu’elle correspond ; sinon, la règle renseigne le champ de durée avec la valeur calculée.

<Steps>
  <Step title="Ouvrez la boîte de dialogue Nouvelle règle">
    Cliquez sur l’icône d’ajout sous le formulaire de données pour créer une règle.
  </Step>

  <Step title="Configurez le type de règle et les fields">
    1. Sélectionnez **Règle de script avancée** et cliquez sur **Next**.
    2. Renommez la règle en « Check duration ».
    3. Sélectionnez les fields « Start Date », « End Date » et « Duration » dans la liste des fields. Il est important de sélectionner les fields dans les deux colonnes, car nous n’allons pas seulement lire les valeurs des fields, mais aussi les corriger si nécessaire.
    4. Cliquez sur **Next**.
  </Step>

  <Step title="Ajoutez le script de durée">
    Collez le script suivant dans l’éditeur de script :

    ```javascript theme={null}
    // Créez des variables pour tous les champs que vous allez utiliser
    var startField = Context.GetField("Start Date") ;
    var endField = Context.GetField("End Date");
    var durationField = Context.GetField("Duration");

    var startDate = startField.Value;
    var endDate = endField.Value;

    // Vérifiez si les champs « Start Date » et « End Date » ont été trouvés dans le document
    if (endField && endDate && startField && startDate)
    {
       // Calculez la durée de l’arrêt maladie
       var length = (1 + (endDate.getTime() - startDate.getTime()) / 3600000 / 24);

       // Si le champ de durée n’a pas été trouvé ou n’a pas pu être converti en nombre, transmettez la valeur calculée au champ
       if (!durationField.Value)
           durationField.Value = length; 

       // Si le champ de durée a été trouvé, comparez sa valeur à la durée calculée
       else if (durationField.Value != length)
       {
           Context.CheckSucceeded = false;
           Context.ErrorMessage = "La valeur du champ \"Duration\" ne correspond pas à la durée réelle de l’arrêt maladie";
           durationField.AddSuggestion(length.toString());
       }
    }
    ```

    Cliquez sur **Save** et examinez le fonctionnement de la règle sur différents documents de l’ensemble. Pour vérifier comment la règle gère les erreurs, saisissez manuellement des valeurs de test dans les fields du formulaire de données — la règle sera de nouveau appliquée chaque fois que vous modifiez la valeur du champ.
  </Step>
</Steps>

<div id="whats-next">
  ## Et ensuite
</div>

<CardGroup cols={2}>
  <Card title="Étape 10. Tester et publier la compétence" icon="arrow-right" href="/fr/vantage/documentation/advanced-designer/tutorial/tutorial-step-10">
    Testez la compétence configurée et publiez-la sur le serveur Vantage.
  </Card>

  <Card title="Présentation du tutoriel" icon="circle-info" href="/fr/vantage/documentation/advanced-designer/tutorial/tutorial">
    Revenez à l’introduction du tutoriel.
  </Card>
</CardGroup>
