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

# Scripts de ejemplo

> Scripts de ejemplo de la actividad de condición: patrones habituales para comprobar errores de reglas y enviar documentos a revisión manual.

Patrones habituales para crear scripts para la actividad de condición. Cada ejemplo lee de [`Context.Transaction.Documents`](/es/vantage/documentation/skill-designer/process/condition-activity/transaction) y devuelve un valor booleano.

<div id="checking-for-rule-errors-in-a-document">
  ## Comprobación de errores de reglas en un documento
</div>

El siguiente script devuelve `true` si al menos un documento de la transacción tiene errores de reglas, una clase de documento indeterminada o símbolos sospechosos. De lo contrario, devuelve `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">
  ## Comprobar si se requiere revisión manual
</div>

El siguiente script devuelve `true` — enviando los documentos a revisión manual — si al menos un documento de la transacción tiene alguno de los siguientes:

* Errores de reglas
* Un tipo de documento incierto
* Campos o caracteres de campo sospechosos (incluidos los elementos secundarios anidados y las instancias repetidas)

De lo contrario, devuelve `false` y los documentos continúan con la etapa de exportación.

```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) {
    // Existen errores de reglas
    if (document.RuleErrors.length > 0)
        return true;
    // El tipo de documento no es confiable
    if (!document.IsResultClassConfident)
        return true;
    // Algunos campos son sospechosos
    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) {
    // Verificar todos los elementos secundarios en busca de campos sospechosos
    if (field.Children) {
        for (var i = 0; i < field.Children.length; i++) {
            var childField = field.Children[i];
            if (childField.IsSuspicious || containSuspiciousFields(childField))
                return true;
        }
    }
    // Verificar todas las instancias en busca de campos sospechosos
    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">
  ## Temas relacionados
</div>

* [Context](/es/vantage/documentation/skill-designer/process/condition-activity/context)
* [Transaction](/es/vantage/documentation/skill-designer/process/condition-activity/transaction)
* [Document](/es/vantage/documentation/skill-designer/process/condition-activity/document)
* [Field](/es/vantage/documentation/skill-designer/process/condition-activity/field)
* [RuleError](/es/vantage/documentation/skill-designer/process/condition-activity/rule-error)
* [Modelo de objetos](/es/vantage/documentation/skill-designer/process/condition-activity/object-model)
