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

# Exemples de scripts

> Exemples de scripts pour l’activité Condition : modèles courants pour vérifier les erreurs de règle et acheminer les documents vers la relecture manuelle.

Modèles courants pour rédiger un script pour l’activité Condition. Chaque exemple lit les données de [`Context.Transaction.Documents`](/fr/vantage/documentation/skill-designer/process/condition-activity/transaction) et renvoie une valeur booléenne.

<div id="checking-for-rule-errors-in-a-document">
  ## Vérifier les erreurs de règle dans un document
</div>

Le script ci-dessous renvoie `true` si au moins un document de la transaction présente des erreurs de règle, une classe de document indéterminée ou des symboles suspects. Sinon, il renvoie `false`.

```javascript theme={null}
function hasRuleErrors() {
    for (var i = 0; i < Context.Transaction.Documents.length; i++) {
        var document = Context.Transaction.Documents[i];
        if (document.RuleErrors.length > 0 || document.IsUnknownSkill === true || document.HasSuspiciousSymbols === true)
            return true;
    }
    return false;
}
hasRuleErrors();
```

<div id="checking-whether-manual-review-is-required">
  ## Vérifier si une relecture manuelle est nécessaire
</div>

Le script suivant renvoie `true` — et achemine les documents vers la relecture manuelle — si au moins un document de la transaction présente l’un des éléments suivants :

* Des erreurs de règle
* Un type de document incertain
* Des champs ou des caractères de champ suspects (y compris les enfants imbriqués et les instances répétées)

Sinon, il renvoie `false` et les documents passent à l’étape d’exportation.

```javascript theme={null}
function needManualReview() {
    for (var i = 0; i < Context.Transaction.Documents.length; i++) {
        var document = Context.Transaction.Documents[i];
        if (needManualReviewForDocument(document))
            return true;
    }
    return false;
}

function needManualReviewForDocument(document) {
    // Des erreurs de règles existent
    if (document.RuleErrors.length > 0)
        return true;
    // Le type de document n'est pas fiable
    if (!document.IsResultClassConfident)
        return true;
    // Certains champs sont suspects
    for (var i = 0; i < document.Fields.length; i++) {
        var field = document.Fields[i];
        if (field.IsSuspicious || containSuspiciousFields(field))
            return true;
    }
    return false;
}

function containSuspiciousFields(field) {
    // Vérifier tous les enfants pour détecter un champ suspect
    if (field.Children) {
        for (var i = 0; i < field.Children.length; i++) {
            var childField = field.Children[i];
            if (childField.IsSuspicious || containSuspiciousFields(childField))
                return true;
        }
    }
    // Vérifier toutes les instances pour détecter un champ suspect
    if (field.Instances) {
        for (var i = 0; i < field.Instances.length; i++) {
            var instanceField = field.Instances[i];
            if (instanceField.IsSuspicious || containSuspiciousFields(instanceField))
                return true;
        }
    }

    return false;
}
needManualReview();
```

<div id="related-topics">
  ## Rubriques connexes
</div>

* [Context](/fr/vantage/documentation/skill-designer/process/condition-activity/context)
* [Transaction](/fr/vantage/documentation/skill-designer/process/condition-activity/transaction)
* [Document](/fr/vantage/documentation/skill-designer/process/condition-activity/document)
* [Field](/fr/vantage/documentation/skill-designer/process/condition-activity/field)
* [RuleError](/fr/vantage/documentation/skill-designer/process/condition-activity/rule-error)
* [Modèle objet](/fr/vantage/documentation/skill-designer/process/condition-activity/object-model)
