Passer au contenu principal
Voici quelques exemples de scripts pour des cas réels.

Vérifier les erreurs de règle dans un document

Le script ci-dessous vérifie la présence d’erreurs de règle dans les documents de la transaction. Si au moins un document de la transaction contient des erreurs de règle, le script renvoie true. Sinon, il renvoie false.
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();

Vérifier si une relecture manuelle est nécessaire

Le script suivant vérifie les documents de la transaction pour détecter des erreurs. Si au moins un document de la transaction contient l’un des éléments suivants :
  • Des erreurs de règle
  • Un type de document incertain
  • Des champs ou des caractères de champ reconnus avec incertitude
Le script renvoie true et envoie les documents à la relecture manuelle. Sinon, il renvoie false et envoie les documents à l’étape d’exportation.
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();