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

# Paso 9. Configurar reglas empresariales

> Añada reglas empresariales para validar y normalizar los valores de los campos extraídos; ajuste los ID de médico con expresiones regulares y compruebe la validez del parte de baja por enfermedad con reglas de script.

Con las actividades de Extraction Rules configuradas, añada reglas empresariales para validar y normalizar los valores de los campos.

<div id="adjust-the-doctors-id">
  ## Ajuste el ID del médico
</div>

Ajuste las propiedades del campo **ID del médico** para corregir errores de OCR y eliminar caracteres no deseados de los resultados previos al reconocimiento. Después de encontrar la región del campo, una expresión regular en las propiedades del campo vuelve a extraer los datos y elimina el ruido del OCR.

<Steps>
  <Step title="Abrir la configuración del campo ID del médico">
    1. Haga clic en el nombre de la skill y vaya a la pestaña **Campos**.
    2. Expanda el grupo "Doctor" y abra la configuración del campo "ID del médico" haciendo clic en el icono de configuración situado junto a él.
  </Step>

  <Step title="Agregar una expresión regular">
    1. En la sección **Value** de las propiedades del campo, haga clic en el icono Agregar situado junto a la opción **expresión regular**.
    2. Pegue la siguiente expresión en el **Editor de expresiones regulares**:

       ```
       [0-9]{1}[\/.-]{1}[0-9]{5}[\/.-]{1}[0-9]{2}[\/.-]{1}[0-9]{3}
       ```

    <Note>
      Este editor usa una notación estándar que difiere de la notación utilizada en el Extraction Rules Activity Editor. Para obtener más información, haga clic en **Syntax help** en el **Editor de expresiones regulares**.
    </Note>
  </Step>

  <Step title="Guardar los cambios">
    Haga clic en **Save** para cerrar el **Editor de expresiones regulares** y, después, vuelva a hacer clic en **Save** para cerrar las propiedades del campo.
  </Step>
</Steps>

<div id="check-whether-the-sick-note-is-valid">
  ## Comprobar si el parte de baja por enfermedad es válido
</div>

Un paciente debe recibir el parte de baja por enfermedad dentro de los 3 días posteriores a la fecha de inicio de la enfermedad. En términos de campos, la fecha de emisión no debe ser posterior a 3 días desde la fecha de inicio. Use una regla de script para aplicar esta restricción.

<Steps>
  <Step title="Abrir el cuadro de diálogo New Rule">
    Haga clic en el icon debajo del formulario de datos. Se abrirá el cuadro de diálogo **New Rule**.

    <Note>
      Si no ve el icon de agregar, cambie a la sección **Reference** sobre la imagen del documento.
    </Note>
  </Step>

  <Step title="Configurar el tipo de regla y los campos">
    1. Seleccione **Advanced Script Rule** y haga clic en **Next**.
    2. Cambie el nombre de la regla a "Check validity".
    3. Seleccione los campos "Start Date" y "Date" en la lista de campos.
    4. Haga clic en **Next**.
  </Step>

  <Step title="Agregar el script de validación">
    Pegue el siguiente script en el editor de scripts:

    ```javascript theme={null}
    // Crear variables para todos los campos a los que va a acceder
    var startField = Context.GetField("Start Date") ;
    var dateField = Context.GetField("Date");

    if (dateField && dateField.Value && startField && startField.Value)
    {
       var date = dateField.Value;
       var startDate = startField.Value;

       //Calcular la fecha de inicio más temprana posible
       date.setDate(date.getDate() - 3);

       if (startDate < date)
       {
           Context.CheckSucceeded = false;
           Context.ErrorMessage = "El parte de baja por enfermedad fue emitido demasiado tarde";
       }
    }
    ```

    Haz clic en **Save** y examina cómo funciona la regla en distintos documentos del conjunto. Para comprobar cómo la regla maneja los errores, introduce manualmente valores de prueba en los campos del formulario de datos; la regla se volverá a aplicar cada vez que cambies el valor del campo.
  </Step>
</Steps>

<div id="check-the-sick-leave-duration">
  ## Comprobar la duración de la baja por enfermedad
</div>

Calcularemos la duración de la baja por enfermedad utilizando las fechas de inicio y fin de la baja. Si el documento ya especifica una duración, la regla verifica que coincida. Si no, la regla rellena el campo de duración con el valor calculado.

<Steps>
  <Step title="Abrir el cuadro de diálogo New Rule">
    Haga clic en el icono de añadir debajo del formulario de datos para crear una regla.
  </Step>

  <Step title="Configurar el tipo de regla y los campos">
    1. Seleccione **Advanced Script Rule** y haga clic en **Next**.
    2. Cambie el nombre de la regla a "Check duration".
    3. Seleccione los campos "Start Date", "End Date" y "Duration" en la lista de campos. Es importante seleccionar los campos en ambas columnas, ya que no solo vamos a leer los valores de los campos, sino también corregirlos si es necesario.
    4. Haga clic en **Next**.
  </Step>

  <Step title="Añadir el script de duración">
    Pegue el siguiente script en el editor de scripts:

    ```javascript theme={null}
    // Crear variables para todos los campos a los que se va a acceder
    var startField = Context.GetField("Start Date") ;
    var endField = Context.GetField("End Date");
    var durationField = Context.GetField("Duration");

    var startDate = startField.Value;
    var endDate = endField.Value;

    //Comprobar si los campos "Start Date" y "End Date" se encontraron en el documento
    if (endField && endDate && startField && startDate)
    {
       //Calcular la duración de la baja por enfermedad
       var length = (1 + (endDate.getTime() - startDate.getTime()) / 3600000 / 24);

       //Si el campo de duración no se encontró o no se pudo interpretar como número, pasar el valor calculado al campo
       if (!durationField.Value)
           durationField.Value = length; 

       //Si el campo de duración se encontró, comparar su valor con la duración calculada
       else if (durationField.Value != length)
       {
           Context.CheckSucceeded = false;
           Context.ErrorMessage = "El valor del campo \"Duration\" no coincide con la duración real de la baja por enfermedad";
           durationField.AddSuggestion(length.toString());
       }
    }
    ```

    Haga clic en **Save** y examine cómo funciona la regla en distintos documentos del conjunto. Para comprobar cómo la regla gestiona los errores, introduzca manualmente valores de prueba en los campos del formulario de datos — la regla se aplicará de nuevo cada vez que cambie el valor del campo.
  </Step>
</Steps>

<div id="whats-next">
  ## Qué sigue
</div>

<CardGroup cols={2}>
  <Card title="Paso 10. Probar y publicar la skill" icon="arrow-right" href="/es/vantage/documentation/advanced-designer/tutorial/tutorial-step-10">
    Pruebe la skill configurada y publíquela en el servidor de Vantage.
  </Card>

  <Card title="Descripción general del tutorial" icon="circle-info" href="/es/vantage/documentation/advanced-designer/tutorial/tutorial">
    Volver a la introducción del tutorial.
  </Card>
</CardGroup>
