/
Validar con scripting

Validar con scripting

Captika brinda la posibilidad de configurar Scripting para ajustar las soluciones a los principales eventos definidos en el sistema. De esta forma las oportunidades de integración de la plataforma son prácticamente ilimitadas.

 

La configuración del Scripting es sencilla y debe ser codificada en lenguaje C# o .VB (.NET6). Se recomienda que los nuevos scripting se realicen en lenguaje C# ya que Microsoft no continua desarrollando a futuro el lenguaje de Visual Basic.

Captika brinda Scriptings base de modelo tanto en C# y .VB. Tambien permite vincular una dll copilada que respete la estructura propuesta. Al vincular un archivo .dll tambien es posible copilar y debugear en vivo el fuente utilizando Visual Studio facilitando tanto la codificación como la detección de errores.

Cada una de las funciones de Scripting brindan objetos que permiten navegar entre la informacion del lote (CaptikaBatch) los documentos (CaptikaDocument) y las páginas (CaptikaDocumentPage)

 

 

 

 

Posibilidades de Scripting en Captika

El siguiente cuado muestra todas las oportunidades de Scripting con los objetos referenciables que nos provee Captika.

Nombre del evento/ Oportunidad de Integración

Descripción

Objetos Referenciables

Nombre del evento/ Oportunidad de Integración

Descripción

Objetos Referenciables

Desktop_ScanningStart

Evento previo a la digitalización útil para cambiar dispositivos de escaneos a utilizar o realizar otras verificaciones previas.

bHalt

bHaltMsg

Desktop_PublishRequested

Evento que produce en la estación de captura UI cuando un usuario solicita a publicacion de un lote. Permite revisar el lote antes de inciar su publicacón

CaptikaDesktop

oCaptikaBatch

Desktop_WorksetConfigurationGet

Evento posterior a la recuperación de la configuración de un Trabajo, es útil si se desea cambiar una configuración en particular mediante código.

bHalt

bHaltMsg

WebServiceValidation

Al validar un documento mediante Webservices Custom (WebServicesValidation)

oCaptikaDocument

oXMLDOCWebServiceResult bHalt sHaltMsg

Batch_BatchCreate

Al crearse un Batch de Trabajo

oCaptikaBatch

Batch_PageAdd

Antes de agregar una página a un Lote (Batch)

oCaptikaBatch

oCaptikaDocumentPage bHalt sHaltMsg

Batch_PageAdded

Luego de agregar un página al Lote (Batch)

oCaptikaBatch

oCaptikaDocumentPage

Batch_DocumentAdded

Una vez incorporado un documento a un Lote.

oCaptikaDocument

bHalt sHaltMsg

Batch_DocumentFileAdded

Una vez que se incorpora un documento al batch (pdf, tif) Este evento se dispara al detectar una página que inicia un nuevo documento. Este evento no se dispara cuando las imagenes son digitalizadas y entran hoja a hoja.

oCaptikaDocument

bHalt sHaltMsg

Batch_DocumentThubanAdded

Una vez que se incorpora un documento al batch desde un servidor Thuban

oCaptikaDocument

Eventos realizados al validar un lote previo a su publicación:

Batch_DocumentValidate Batch_DocumentValidated

Batch_PageValidate Batch_PageValidated

Antes de publicar un documento Captika realiza una validación de cada documento a publicar y de cada una de sus páginas.

La validación del documento se da al momento previo de publicar al lote, si la validación es exitosa el lote comenzara a publicarse. El orden de ejecución de la validaciones que se realiza es el siguiente (se encuentran resaltados los pasos que permiten scripting):

  1. Validar que no haya doble-página en blanco

  1.  

[Scripting] Batch_DocumentValidate

  1. Por cada hoja

3.1) [Scripting] Batch_PageValidate

3.2) Validar campos (mandatorios, tipo de campo, largo, lista de valores)

3.3) Validar WebServices

3.4) Validar SQL

3.5) [Scripting] Batch_PageValidate

  1.  

[Scripting] Batch_DocumentValidated

Para los eventos:

Batch_DocumentValidate y Batch_DocumentValidated

Se brindan los siguientes objetos: oCaptikaDocument bHalt sHaltMsg

Para los eventos: Batch_PageValidate y Batch_PageValidated

Se brindan los siguientes objetos: oCaptikaDocumentPage bHalt sHaltMsg

Eventos disponibles al publicar un lote:

Batch_Release: Antes de comenzar el reconocimiento y publicación del lote.

Batch_DocumentsRecognized : Una vez efectuado el reconocimiento de documentos.

Batch_DocumentsSeparate : Antes de efectuar los corte automático por “Separadores” (campos Page y Page Inherit)

Batch_DocumentsSeparated : Una vez efectuado el corte automático por “Separadores” (campos Page y Page Inherit)

Batch_DocumentPublish. Antes de publicar un documento en particular. Aqui se brinda el objeto oCaptikaDocument y oCaptikaReleaseInstructions. Este ultimo con las instrucciones de publicacion, en caso de ser cambiadas estas instrucciones solo aplicaran para ese documento.

Batch_Released : Una vez completada la liberación del Lote de trabajo.

Una vez validado un documento empieza el proceso de su publicación, presentando la publicación en si varias oportunidades de integración mediante scripting.

El orden de tareas que involucra la publicación de un documento y las instancias en las que puede personalizarse el scripting son los siguientes:

  1. Controlar el tamaño de un lote (Configuración solapa “Publicación Formato”, campo “Limitar tamaño por archivo KB”)

  1.  

[Scripting] Batch_BatchRelease

  1. Reconocimiento de páginas usando templates “OnPublish”

  1.  

[Scripting] Batch_DocumentsRecognized

  1. Reordenar documentos (según Configuración solapa “Publicación Formato”, campo “Criterio Agrupación Documentos”)

  1. Reordenar paginas (según Configuración solapa “Publicación Formato”, campo “Criterio Agrupación Páginas”)

  1. Separar documentos utilizando campos Separadores (campos Page, y Page Inherit)

  1.  

[Scripting] Batch_DocumentsSeparated

  1. Separar documentos cortando cada N imágenes (según Configuración solapa “Publicación Formato”, campo “Criterio Agrupación Páginas”)

10) [Scripting] Batch_Released

oCaptikaBatch

bHalt sHaltMsg

DocViewer_PageLoad

Antes de cargar (mostrar al usuario) una Pagina en el Visor de Documentos

oCaptikaDocumentPage

bHalt sHaltMsg

DocViewer_PageLoaded

Al terminar de cargarse (mostrar al usuario) una Pagina en el Visor de Documentos

oCaptikaDocumentPage

bHalt sHaltMsg

DocViewer_DocumentLoad

Antes de cargar (mostrar al usuario) un documento nuevo en el Visor de Documentos

oCaptikaDocumentPage

bHalt sHaltMsg

DocViewer_DocumentLoaded

Al finalizar la carga de un documento nuevo en el Visor de Documentos.

oCaptikaDocument

oCaptikaDocumentViewer

DocViewer_DocumentClose

Al iniciar cierre de un documento en el Visor de Documentos

oCaptikaDocument

oCaptikaDocumentViewer bHalt sHaltMsg

DocViewer_DocumentClosed

Una vez cerrado un documento

iCaptikaDocumentOrder

DocViewer_FieldGotFocus

Al hacer foco en un campo de Captika

oCaptikaDocumentViewer

oCaptikaField oVisualFieldObj

DocViewer_FieldLostFocus

Al perder (salir) foco en un campo de Captika

oCaptikaDocumentViewer

oCaptikaField oVisualFieldObj

DocViewer_FieldKeyUp

Al presionar una tecla en un campo de Captika

oCaptikaDocumentViewer

oCaptikaField oVisualFieldObj

DocViewer_FieldValueChanged

Al cambiar el valor de un campo

oCaptikaDocumentViewer

oCaptikaField oVisualFieldObj

DocViewer_CustomButton1

DocViewer_CustomButton2

DocViewer_CustomButton3

Al presionar alguno de los botones Personalizados definidos en la Solapa “Botones Personalizados”

oCaptikaDocument

oCaptikaDocumentViewer

SrvWorksetProcess_Before

Cuando Captika funciona en modo servicio se dispara est evento antes de comenzar a procesar los items.

 

 

 

Objetos referenciados en Scripting

Objeto

Descripción Objeto

Funciones o Propiedades que pueden ser invocadas del objeto desde scripting

Objeto

Descripción Objeto

Funciones o Propiedades que pueden ser invocadas del objeto desde scripting

oCaptikaBatch

ThBatch

Objeto que referencia al Lote (grupo de documentos que componen el mismo)

BatchName:

Devuelve el nombre del Batch (nombre que asigno el usuario o se asignó automáticamente al digitalizar o importar nueva documentación)

WorksetName:

Devuelve el nombre del trabajo (Configuración) en el que se está trabajando

oCaptikaBatch.DocumentsCount:

Devuelve la cantidad de documentos que contiene el Batch (Lote), es útil para poder recorrer la colección de documentos que contiene un Lote.

oCaptikaBatch.ShowMessage (message,messageTitle)

Permite mostrar un mensaje de texto con una alterta al usuario, tiene dos parametros message (el mensaje que vera el usuario) y messageTitle el nombre de la ventana

El siguiente ejemplo utiliza las dos funciones anteriores para mostrar un mensaje de texto con la cantidad de documentos que contiene un lote):

En C#

oCaptikaBatch.ShowMessage("El Lote contiene: " + oCaptikaBatch.DocumentsCount + " documentos", "MyMessageWindow");

En .VB

oCaptikaBatch.ShowMessage("El Lote contiene: " & oCaptikaBatch.DocumentsCount & " documentos”, "MyMessageWindow")

oCaptikaBatch.DocumentGet(ByVal DocumentOrder As Integer):

Devuelve una referencia a un documento, indicando el número de orden del documento (DocumentOrder).

El siguiente ejemplo (Buscar en un lote si hay un documento que tenga un campo llamado “TRAMITE” con el valor “2974”):

En C#

for (int i = 0; i < oCaptikaBatch.Documents.Count; i++) { if (oCaptikaBatch.DocumentGet(i).FieldGetValue("TRAMITE ", 1) == "2974") { ThDocument oDocumento = oCaptikaBatch.DocumentGet(i); oCaptikaBatch.ShowMessage("El Doc. " + oDocumento.DocumentOrder + " tienen el tramite buscado!", "MyMessage"); } }

En .VB

For x = 1 To oCaptikaBatch.DocumentsCount If oCaptikaBatch.DocumentGet(x).FieldGetValue("TRAMITE ", 1) = "2974" Then Dim oDocumento = oCaptikaBatch.DocumentGet(x) oCaptikaBatch.ShowMessage("El Doc. " & oDocumento.DocumentOrder & " tienen el tramite buscado!", "MyMessage") End If Next

oCaptikaDocument

ThDocument

Objeto que referencia a un documento grupo de imágenes y campos que conforman un documento

BatchParentGet:

Este metodo nos permite desde un objeto del tipo Documento saltar al objeto Batch (Lote) del que lo contiene.

Estos ejemplo muestran como Referenciar al objeto Batch que contiene el documento:

En C#

ThBatch oCaptikaBatch = oCaptikaDocument.BatchParentGet();

En .VB

Dim oCaptikaBatch = oCaptikaDocument.BatchParentGet

FieldGetValue (ByVal FieldName As String, ByVal iFieldPage As Integer):

Permite obtener un valor de campo, ya sea este campo de ámbito Batch, Documento o Página. En caso que el campo sea de ámbito documento o Batch debe proporcionarse como iFieldPage el valor 1.

Ejemplo de como consultar el valor de los campos de Captika y almacenarlo en una variable del tipo string llamada nroComprobante

En C#

string nroComprobante = oCaptikaDocument.FieldGetValue("NRO_COMPROBANTE", 1);

En .VB

Dim nroComprobante As String = oCaptikaDocument.FieldGetValue("NRO_COMPROBANTE", 1)

FieldSetValue (ByVal FieldName As String, FieldValue As String, ByVal iFieldPage As Integer):

Permite cambiar/fijar el valor de un campo, en el caso que el campo configurado sea de ámbito Documento o Batch este cambio se aplicara a su ámbito. En todo caso, cualquiera sea el ámbito, es obligatorio indicar el número de página (en los casos que el campo sea de ámbito Batch o Documento puede indicarse como convención el parámetro iFieldPage como 1)

Ejemplo (Setear el valor del campo NRO_COMPROBANTE en 2874 para la página 1):

En C#

string nroComprobante = oCaptikaDocument.FieldGetValue("NRO_COMPROBANTE", 1);

En .VB

oCaptikaDocument.FieldSetValue("NRO_COMPROBANTE", "2874", 1)

oCaptikaDocumentPage

ThDocumentPage

Objeto que referencia a una Página de Captika

DocumentParentGet:

Devuelve una referencia al objeto Documento (oCaptikaDocument) que contiene la página.

Ejemplo (Referenciar al objeto Documento que contiene la página y mostrar un mensaje con el número de orden del documento):

Dim oCaptikaBatch Set oCaptikaBatch = oCaptikaDocument.BatchParentGet Msgbox "El documento está en el Lote: " & oCaptikaBatch.BatchName

oCaptikaDocumentViewer

Visor de Documentos de Captika

oThCurrentBatch:

Devuelve una referencia al objeto Lote (oCaptikaBatch) que contiene la página.

oThCurrentDocument:

Devuelve una referencia al objeto Documento (oCaptikaDocument) que contiene la página.

oThCurrentPage:

Devuelve una referencia al objeto Pagina (oCaptikaDocumentPage) que contiene la página.

Field_GetValue (ByVal FieldName As String, ByRef FieldValue As String):

Obtiene el valor del campo del campo FieldName que se está visualizando en el Visor de documentos. El valor del campo lo devuelve en el parámetro FieldValue.

Ejemplo (se busca el valor del campo TIPO_COMPR y si su valor es igual a “A” entonces se deshabilita el campo CUIT):

Dim sTipoComprobanteValue b=oCaptikaDocumentViewer.Field_GetValue ("TIPO_COMPR",sTipoComprobanteValue ) If sTipoComprobanteValue = "A" Then oCaptikaDocumentViewer.Field_SetEnabled "CUIT",False End If

Field_SetValue (ByVal FieldName As String, ByVal FieldValue As String):

Permite cambiar el valor de un campo, fija el valor del campo FieldName a FieldValue.

Ejemplo (fijar el valor del campo TIPO_COMPROBANTE a “B”):

oCaptikaDocumentViewer.Field_SetValue "TIPO_COMPROBANTE","B"

Field_SetEnabled (ByVal FieldName As String, ByVal bEnabled As Boolean):

Habilita y/o deshabilita al usuario el acceso sobre el campo FieldName.

Ejemplo (habilitar acceso al campo TIPO_COMPROBANTE):

oCaptikaDocumentViewer.Field_SetEnabled "TIPO_COMPROBANTE",True

Ejemplo (deshabilitar acceso al campo TIPO_COMPROBANTE):

oCaptikaDocumentViewer.Field_SetEnabled "TIPO_COMPROBANTE",False

Field_SetVisible (ByVal FieldName As String, ByVal bVisible As Boolean):

Oculta visualmente el valor del campo FieldName al usuario. El campo sigue estando visible pero el valor del mismo se oculta al usuario.

Ejemplo (fijar el valor del campo TIPO_COMPROBANTE a “B”):

oCaptikaDocumentViewer.Field_SetVisible "TIPO_COMPROBANTE",False

 

 

 

 

 

 

Related content