Zum Hauptinhalt springen
Hier sind einige Beispielskripte für praxisnahe Szenarien.

Überprüfen von Regelverstößen in einem Dokument

Das folgende Skript prüft, ob es in den Dokumenten des Vorgangs Regelverstöße gibt. Wenn mindestens ein Dokument des Vorgangs Regelverstöße enthält, gibt das Skript true zurück. Andernfalls gibt das Skript false zurück.
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();

Prüfen, ob eine Manuelle Überprüfung erforderlich ist

Das folgende Skript prüft die Vorgangsdokumente auf Fehler. Wenn mindestens ein Vorgangsdokument eines der folgenden Kriterien erfüllt:
  • Regelfehler
  • Ein unsicherer Dokumenttyp
  • Unsicher erkannte Felder oder Feldzeichen
gibt das Skript true zurück und sendet die Dokumente zur Manuellen Überprüfung. Andernfalls gibt das Skript false zurück und sendet die Dokumente in den Export-Schritt.
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) {
    // Regelfehler vorhanden
    if (document.RuleErrors.length > 0)
        return true;
    // Dokumenttyp ist nicht vertrauenswürdig
    if (!document.IsResultClassConfident)
        return true;
    // Einige Felder sind verdächtig
    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) {
    // Alle untergeordneten Elemente auf verdächtige Felder überprüfen
    if (field.Children) {
        for (var i = 0; i < field.Children.length; i++) {
            var childField = field.Children[i];
            if (childField.IsSuspicious || containSuspiciousFields(childField))
                return true;
        }
    }
    // Alle Instanzen auf verdächtige Felder überprüfen
    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();