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

# Context

> El objeto global Context: propiedades y métodos para acceder al documento, sus fields, los registros del catálogo y los parámetros de la skill durante la ejecución de reglas.

`Context` es un objeto global que proporciona acceso al documento que se está procesando, sus fields y los parámetros de la transacción asociada. Establezca [`CheckSucceeded`](#checksucceeded) para indicar si la regla se cumplió.

<div id="usage">
  ## Uso
</div>

Una regla lee campos mediante `Context`, los comprueba y comunica el resultado estableciendo [`CheckSucceeded`](#checksucceeded) y [`ErrorMessage`](#errormessage). Por ejemplo, haga que la regla falle con un mensaje personalizado cuando falte el campo `Total` o esté vacío:

```javascript theme={null}
var field = Context.GetField("Total");

if (!field || !field.Value) {
  Context.CheckSucceeded = false;
  Context.ErrorMessage = "Total field is empty";
}
```

Para ver más patrones —comparaciones numéricas, requisitos condicionales y validación de tablas—, consulte [Scripts de ejemplo](/es/vantage/documentation/skill-designer/document/rule-verification/sample-scripts).

<div id="properties">
  ## Propiedades
</div>

<div id="checksucceeded">
  ### CheckSucceeded
</div>

**Type:** `bool` — **Access:** Lectura y escritura

Indica si se cumple la condición de la regla. El valor predeterminado es `true`. Establézcalo en `false` si la condición no se cumple. En ese caso, el mensaje de error predeterminado que se muestra al operador es `Error in the rule <rule_name>: <field_name>`. Para personalizar el mensaje, establezca la propiedad `ErrorMessage`.

<Note>
  Solo se genera un error cuando el script establece `CheckSucceeded` en `false`. Si el script no lo establece explícitamente, no se muestra ningún error, aunque no se cumplan las condiciones de la regla.
</Note>

<div id="currentfield">
  ### CurrentField
</div>

**Type:** [Field](/es/vantage/documentation/skill-designer/document/rule-verification/field) — **Access:** De solo lectura

El campo que comprueba la regla. En el caso de campos repetibles en reglas repetibles, esta es la instancia específica que se está comprobando en la llamada actual. Devuelve `null` si la regla hace referencia al documento completo.

<div id="document">
  ### Document
</div>

**Tipo:** [Document](/es/vantage/documentation/skill-designer/document/rule-verification/document) — **Acceso:** De solo lectura

El documento sobre el que se ejecuta la regla.

<div id="errormessage">
  ### ErrorMessage
</div>

**Tipo:** `cadena` — **Acceso:** Lectura y escritura

Mensaje personalizado que se muestra cuando el script establece `CheckSucceeded` en `false`. Si no se establece, el mensaje predeterminado es `Error in the rule <rule_name>: <field_name>`.

<div id="transaction">
  ### Transaction
</div>

**Type:** [Transaction](/es/vantage/documentation/skill-designer/document/rule-verification/transaction) — **Access:** De solo lectura

La transacción actual.

<div id="methods">
  ## Métodos
</div>

<Note>
  Un script solo puede leer los campos incluidos para lectura y escribir en los campos marcados como editables al configurar la regla. Si se hace referencia a cualquier otro campo, la regla falla con un error de acceso (`Attempt to read data from inaccessible field` o `Attempt to write data to read-only field`). Consulte [Automatización de reglas de negocio](/es/vantage/documentation/skill-designer/document/rule-verification/business-rules-automation).
</Note>

<div id="getfield">
  ### GetField
</div>

```javascript theme={null}
Field GetField(string fieldName);
```

Obtiene un [`Field`](/es/vantage/documentation/skill-designer/document/rule-verification/field) por nombre o identificador. Devuelve `null` si no existe ningún campo con ese nombre.

Usa la [ruta completa](/es/vantage/documentation/skill-designer/document/rule-verification/field#fullname) para referirte a los campos dentro de un grupo; por ejemplo, `BusinessUnit/Address`.

Cuando se usa en una regla repetible, `GetField` devuelve secuencialmente cada instancia procesada del campo. De lo contrario, devuelve la primera instancia de un campo repetible.

<Warning>
  Pasa el nombre del campo como un literal de cadena, no como una variable. El preprocesador del script reemplaza el nombre literal por el identificador del campo antes de la ejecución; las variables no se procesan.
</Warning>

<div id="getfields">
  ### GetFields
</div>

```javascript theme={null}
Field[] GetFields(string fieldName);
```

Devuelve todos los objetos [`Field`](/es/vantage/documentation/skill-designer/document/rule-verification/field) con el nombre especificado; resulta útil para iterar por cada instancia de un campo repetible, incluida cada celda de una columna de una tabla. Devuelve `null` si no existe ningún campo con ese nombre.

<Warning>
  Se aplica la misma restricción del preprocesador que en `GetField`: pase un literal de cadena, no una variable.
</Warning>

<div id="getcatalogrecord">
  ### GetCatalogRecord
</div>

```javascript theme={null}
Record GetCatalogRecord(string catalogId, string externalId);
```

Obtiene un [`Record`](/es/vantage/documentation/skill-designer/document/rule-verification/record) de un catálogo de datos (base de datos externa). Use este método para comparar los valores de los campos del documento con los valores de los campos del catálogo.

<Note>
  Disponible solo si el catálogo tiene configurado un identificador de registro (por ejemplo, un identificador de proveedor).
</Note>

<div id="skillparameter">
  ### SkillParameter
</div>

```javascript theme={null}
SkillParameter SkillParameter(string ParameterName);
```

Obtiene un [`SkillParameter`](/es/vantage/documentation/skill-designer/document/rule-verification/skill-parameter) por nombre. Lea su valor en la propiedad `Value` del objeto devuelto; por ejemplo, `Context.SkillParameter("Threshold").Value`.

<Note>
  Disponible solo si el skill de documento tiene al menos un parámetro.
</Note>

<div id="related-topics">
  ## Temas relacionados
</div>

* [Modelo de objetos](/es/vantage/documentation/skill-designer/document/rule-verification/object-model)
* [Automatización de reglas de negocio](/es/vantage/documentation/skill-designer/document/rule-verification/business-rules-automation)
* [Field](/es/vantage/documentation/skill-designer/document/rule-verification/field)
* [Scripts de ejemplo](/es/vantage/documentation/skill-designer/document/rule-verification/sample-scripts)
