メインコンテンツへスキップ
実運用シナリオ向けのサンプルスクリプトをいくつか紹介します。

ドキュメント内のルールエラーの確認

次のスクリプトは、トランザクション内の documents にルールエラーがあるかをチェックします。トランザクション内の少なくとも1つの Document にルールエラーが含まれている場合、スクリプトはtrueを返し、そうでなければ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();

手動確認が必要かどうかの確認

次のスクリプトは、トランザクション内のドキュメントにエラーがないかをチェックします。次のいずれかが、トランザクション内の少なくとも1件のドキュメントに含まれている場合:
  • ルールエラー
  • ドキュメントタイプの不確定
  • 認識が不確実なfieldまたはfield文字
スクリプトはtrueを返し、documentsを手動確認に送ります。該当しない場合はfalseを返し、documentsをエクスポート手順に送ります。
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) {
    // ルールエラーが存在する
    if (document.RuleErrors.length > 0)
        return true;
    // ドキュメントタイプが確実でない
    if (!document.IsResultClassConfident)
        return true;
    // 一部のfieldが疑わしい
    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) {
    // 疑わしいfieldがないか全ての子要素をチェック
    if (field.Children) {
        for (var i = 0; i < field.Children.length; i++) {
            var childField = field.Children[i];
            if (childField.IsSuspicious || containSuspiciousFields(childField))
                return true;
        }
    }
    // 疑わしいfieldがないか全てのインスタンスをチェック
    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();