Datos Generales

Tipo de Bandeja

Base de Datos

Nombre Calificado

com.latintech.thuban.docintro.tray.DBPoolingTray

Extiende de

AbstractTray

Descripción

Bandeja de trabajo que permite arrancar un procesamiento en base al resultado de una consulta a la una base de datos.

Disponible desde Versión

6.3

Parámetros soportados

A continuación se listarán todos los parámetros aceptados por la bandeja. Los títulos que anteceden cada tabla son los nombres de los parámetros, los mismos son caseSensitive.

name

Tipo

String

Requerido

Descripción

Es el nombre que se le otorga a esta instancia particular de la bandeja que se está definiendo en el XML de DocIntro. Es utilizado para referencia la bandeja en el TrayManager.

errorFolder

Tipo

Carpeta

Requerido

Sí. Además la misma debe existir.

Descripción

Carpeta dónde se alojarán los logs y archivos que durante el procesamiento arrojen error.

triggerQuery

Tipo

String

Requerido

Descripción

Consulta a evaluar por la bandeja para iniciar o no el procesamiento. Puede ser una consulta SQL o un StoredProcedure (debe ser antecedido por exec. Por ejemplo “exec SP_PRUEBA”.

activactionOnResults

Tipo

Boolean

Requerido

No. Valor por defecto “true

Descripción

Indica si se el procesamiento debe iniciarse si la “triggerQuery” retorna resultados o no. Por ejemplo:

  • Si esta en “true” se generara el workitem que inicia el procesamiento si la “triggerQuery“ retorna resultados.

  • Si esta en “false” se generara el workitem que inicia el procesamiento si la “triggerQuery” no arroja resultados.

De está forma se puede controlar la condición de ejecución de la bandeja.

datasource

Tipo

DataSource

Requerido

No

Descripción

Base de datos sobre la cual ejecutara la “triggerQuery“. En caso de no estar definido, se utilizará la base de datos de Thuban.

En caso de querer definirlo, es preciso definir el DataSource a utilizar en el XML del docintro. Por ejemplo:

<bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="user" value="myusername"/>
    <property name="password" value="mypassword"/>
    <property name="driverClass" value="net.sourceforge.jtds.jdbc.Driver"/>
    <property name="jdbcUrl" value="jdbc:jtds:sqlserver://127.0.0.1:1433/MyDatabase;sendStringParametersAsUnicode=false"/> 
    <property name="acquireIncrement" value="2"/>
    <property name="maxPoolSize" value="30"/>
    <property name="minPoolSize" value="3"/>
    <property name="maxConnectionAge" value="50000"/>
    <property name="maxIdleTime" value="10000"/>
    <property name="idleConnectionTestPeriod" value="6000"/>
    <property name="maxIdleTimeExcessConnections" value="2000"/>  
</bean>

includeHeaders

Tipo

Boolean

Requerido

No. Valor por defecto “false

Descripción

Le indica a la bandeja si se desean obtener los nombres de las columnas del resultado de la “triggerQuery

className

Tipo

String

Requerido

No

Descripción

Indica el ID de la clase documental de destino de los archivos a ser procesados. No es necesario definirla aquí, puede ser definida posteriormente en un procesador.

internalName

Tipo

String

Requerido

No

Descripción

Permite sobreescribir la configuración de la clase documental indicando aquí de que forma se debe conformar el nombre del documento en Thuban.

Puede ser definido posteriormente en un procesador de subida de documentos.

En caso de no informar nada en ningún lado del DocIntro, al momento de subirse el documento a Thuban se generará el nombre como está definido en la clase documental.

maskTool

Tipo

ThubanMaskTool

Requerido

No

Descripción

Esta es una propiedad que referencia otro Bean de utilidades del docintro que permite reemplazar valores de campos o asignar valores a campos en función de Máscaras. Por ejemplo, si se define una campo:

$F{'yyyy-MM-dd'}

Esa máscara será reemplazada por la fecha del momento con ese formato por el maskTool.

Particularidades de funcionamiento

  1. Existe solo un MarshallingManager que se puede utilizar con este tipo de bandeja, el QueryResultMarshallingManager

  2. No tiene el parámetro fields para agregar campos al workitem desde la bandeja.

  3. A la fecha no existe ningún procesador que sea capaz de trabajar con los resultados de la query. El caso típico de uso es utilizar esta bandeja como disparador de un proceso de docintro que depende de una condición o datos en una base de datos y no de archivos físicos. También se pueden desarrollar procesador personalizados para trabajar con los resultados de la query.

Ejemplos de Configuración

Básica

<bean id="dbQueryTray" class="com.latintech.thuban.docintro.tray.DBPoolingTray">
	<property name="errorFolder" value="C:\DocIntro\error"/>
	<property name="className" value=""/>
	<property name="internalName" value=""/>
	<property name="maskTool" ref="maskTool"/>
	<property name="marshallingManager" ref="queryMarshallingManager"/>
	<property name="name" value="dbQueryTray"/>
	<property name="triggerQuery" value="SELECT INDEX_ITEM_ID FROM THUBAN_INDEXES WHERE INDEX_ITEM_CLASS = 'MY CLASS'"/>		
</bean>

Básica con activación sin resultados

<bean id="dbQueryTray" class="com.latintech.thuban.docintro.tray.DBPoolingTray">
	<property name="errorFolder" value="C:\DocIntro\error"/>
	<property name="className" value=""/>
	<property name="internalName" value=""/>
	<property name="maskTool" ref="maskTool"/>
	<property name="marshallingManager" ref="queryMarshallingManager"/>
	<property name="name" value="dbQueryTray"/>
	<property name="activactionOnResults" value="false"/>
	<property name="triggerQuery" value="SELECT INDEX_ITEM_ID FROM THUBAN_INDEXES WHERE INDEX_ITEM_CLASS = 'MY CLASS'"/>		
</bean>

Indicando DataSource

<bean id="dbQueryTray" class="com.latintech.thuban.docintro.tray.DBPoolingTray">
	<property name="errorFolder" value="C:\DocIntro\error"/>
	<property name="className" value=""/>
	<property name="internalName" value=""/>
	<property name="maskTool" ref="maskTool"/>
	<property name="marshallingManager" ref="queryMarshallingManager"/>
	<property name="name" value="dbQueryTray"/>
	<property name="triggerQuery" value="SELECT INDEX_ITEM_ID FROM THUBAN_INDEXES WHERE INDEX_ITEM_CLASS = 'MY CLASS'"/>		
	<property name="datasource" ref="myDataSource"/>
</bean>