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 |
---|---|---|
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):
[Scripting] Batch_DocumentValidate
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 [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:
[Scripting] Batch_BatchRelease
[Scripting] Batch_DocumentsRecognized
[Scripting] Batch_DocumentsSeparated
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 |
---|---|---|
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
|
|
|
|
|
|
|