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

# Activité Script

> Traitez ou corrigez les données extraites par d’autres activités à l’aide de règles JavaScript personnalisées — normalisez les valeurs, choisissez entre plusieurs champs ou calculez des valeurs calculées.

L’activité Script est conçue pour mettre en œuvre des règles de script dans une Skill, en complément des règles disponibles dans diverses activités d’extraction. Un script peut contenir des règles pour traiter ou corriger les données extraites par d’autres activités. Vous pouvez avoir besoin d’utiliser des règles de script dans les cas suivants :

* Normaliser la valeur d’un champ, par exemple séparer un code alpha (un code devise à trois lettres) d’un montant indiqué dans le document.
* Choisir l’une de plusieurs valeurs de champ, par exemple préciser laquelle doit être sélectionnée et enregistrée dans le champ de résultat si la valeur d’un même champ est extraite par plus d’une activité.
* Calculer les valeurs de champs qui n’ont pas été trouvées dans le document, par exemple calculer la taxe exigible à l’aide d’un taux d’imposition connu lorsque tous les champs contenant des montants imposables ont été extraits.

Contrairement aux règles métiers, les règles de script ne mettent pas en évidence, lors de la relecture manuelle, les valeurs contenant des erreurs. En effet, elles sont conçues pour compléter et corriger les données obtenues lors du traitement des documents et constituent une partie intégrante des Compétences de document.

<div id="set-up-a-script-activity">
  ## Configurer une activité Script
</div>

<Steps>
  <Step title="Ajouter l’activité">
    Ajoutez une activité Script au flux de traitement des documents dans l’onglet **Activities**. Notez que vous devez ajouter l’activité après toute autre activité d’extraction de champ que comporte votre règle.
  </Step>

  <Step title="Ouvrir le Script Editor">
    Dans le volet **Activity Properties**, cliquez sur **Script Editor**.
  </Step>

  <Step title="Écrire le script">
    Dans la boîte de dialogue qui s’ouvre, définissez votre règle sous forme de script en utilisant JavaScript pour créer un script qui exécute toutes les actions requises. Vous pouvez utiliser les boutons d’édition rapide en haut de l’écran pour ajouter à votre script des extraits de code prédéfinis. Pour consulter des exemples de règles de script que vous pouvez adapter, voir [Exemples de règles de script](#sample-script-rules) ci-dessous.
  </Step>

  <Step title="Enregistrer le script">
    Cliquez sur **Save**. Le volet **Activity Properties** affiche alors la liste de tous les champs utilisés dans le script. Vérifiez que la liste contient tous les champs obligatoires.
  </Step>

  <Step title="Tester l’activité">
    Cliquez sur **Test Activity** et analysez les résultats d’extraction. Si la règle n’a pas fonctionné comme prévu, vérifiez que le script a été correctement rédigé. Vérifiez également la qualité d’extraction de tous les champs utilisés dans la règle de script.
  </Step>
</Steps>

<div id="sample-script-rules">
  ## Exemples de règles de script
</div>

* Cette règle de script ajoute un code de devise à trois lettres à la valeur du **Total**. La règle vérifie d’abord la valeur du champ **Country**. Si la valeur de ce champ est « USA » ou « United States », le code « USD » est ajouté à la valeur numérique du **Total**. Si la valeur du champ **Country** est « United Kingdom » ou « Great Britain », le code « GBP » est ajouté à la valeur numérique du **Total**.

```javascript theme={null}
if ( Context.GetField("Country").Value == "USA"|"United States" ) {
               Context.GetField("Total").Value = Context.GetField("Total").Value + " USD";
} else 
if( Context.GetField("Country").Value == "United Kingdom"|"Great Britain" ) {
               Context.GetField("Total").Value = Context.GetField("Total").Value + " GBP";
}
```

* Cette règle de script est conçue pour ajouter les noms des organisations sélectionnées aux champs spécifiés. Le champ répétitif **Preamble Org** regroupe les noms de toutes les organisations mentionnées dans le préambule d’un document, extraits par l’activité Named Entities (NER). La règle de script est configurée de sorte que, si le champ **Preamble Org** contient les noms de plus de deux organisations, la première valeur extraite sera placée dans le champ **Party 1**, et la dernière dans le champ **Party 2**.

```javascript theme={null}
var preambleOrgsFields = Context.GetFields("Preamble Org");
 
if (preambleOrgsFields.length > 2)
{
   Context.GetField("Party 1").Value = preambleOrgsFields[1].Value;
   Context.GetField("Party 2").Value = preambleOrgsFields[preambleOrgsFields.length - 1].Value;
}
```
