Toda la información de producto en wiki.bizagi.com aplica para Bizagi BPM Suite 9.1.X.
Para las nuevas versiones de Bizagi BPM Suite (10.X y superior) visite la Guía de Usuario.
 

Como Crear una Biblioteca Personalizada de Virtualizacion

De

<keywords content="keywords"> biblioteca virtual, entidad de biblioteca </keywords>

Aplica para la EDICIÓN ENTERPRISE .NET

Contenido

Cómo Crear una Biblioteca Personalizada de Virtualización

Para virtualizar fuentes de datos distintos a MSSQL u Oracle, es necesario escribir una librería que implemente las interfaces IProviderVirtualDA y IEntityVirtualDA. Bizagi separa las operaciones para conexión, desconexión y manejo transaccional, de las operaciones para insertar, actualizar, y consultar las fuentes de datos en las interfaces Proveedor (Provider) y Entidad (Entity).

Interfaz del Proveedor (Provider) IProviderVirtualDA

La clase que implementa esta interfaz debe contener los siguientes métodos:

Image:Bulletrojo.gif void Init (HybridDictionary htMetadata): Encargado de tomar los datos suministrados en la configuración del sistema, como el nombre del servidor, nombre de la base de datos, usuario, contraseña, etc. Este recibe un objeto tipo HybridDictionary que contiene los datos configurados como metadatos del sistema.


Image:Bulletrojo.gif void OpenConnection(): Este método es usado para hacer la conexión con el sistema externo. En el caso de una base de datos, aquí es donde usted construye el enlace de la conexión y abre una conexión con el repositorio.


Image:Bulletrojo.gif void CloseConnection(): Encargado de cerrar la conexión con el sistema externo.


Image:Bulletrojo.gif void BeginTransaction(): Encargado de iniciar una nueva transacción para la operación actual en el sistema.


Image:Bulletrojo.gif void Commit(): Hace persistir (Commit) la transacción actual en el sistema de referencia.


Image:Bulletrojo.gif void Rollback(): Lleva a cabo el rollback de la transacción actual en el sistema de referencia.

Interfaz de la Entidad (IEntityVirtualDA)

La clase que implementa esta interfaz debe contener la lógica necesaria para manipular los datos virtualizados, tales como insertar un nuevo registro, consultar dentro de un grupo de registros, actualizar y borrar un registro. Los métodos que la clase debe contener son listados a continuación:

Image:Bulletrojo.gif void Init(IProviderVirtualDA objProvider, HybridDictionary htMetadata): Inicializa la conexión con el sistema. Los parámetros necesarios para establecer la conexión con el sistema son pasados por este método.

PARÁMETROS

Image:Bulletazul.gif objProvider: Permite la conversión hacia el objeto que implementa la interface IProviderVirtualDA.

Image:Bulletazul.gif htMetadata: Contiene la información necesaria como metadatos para establecer la conexión con el sistema configurado.


Image:Bulletrojo.gif DataSet GetEntityInstance(string sEntSource, string[] arrsKeyColumns, object[] arroKeyValues, string[] arrsColList): Toma datos desde las instancias de la entidad (valores) de la tabla correspondiente para un ID específico.

PARÁMETROS

Image:Bulletazul.gif sEntSource: Tabla en donde la entidad es implementada.

Image:Bulletazul.gif arrsKeyColumns: Un arreglo que contiene los nombres de las columnas usadas para filtrar el registro.

Image:Bulletazul.gif arroKeyValues: Arreglo que contiene los valores a ser usados como filtros para una búsqueda del registro.

Image:Bulletazul.gif arrsColList: Arreglo que contiene el nombre de las columnas a ser consultadas.

RETORNA - un DataSet con los valores de la entidad.


Image:Bulletrojo.gif DataSet GetEntityInstancesTable(string sEntSource, string[] arrsKeyColumns, string[] arrsColList, string sFilterText, bool bFillSchema, int iTopReturnRows)

PARÁMETROS

Image:Bulletazul.gif sEntSource: Tabla en donde la entidad está localizada.

Image:Bulletazul.gif arrsKeyColumns: Arreglo de columnas usadas como llaves.

Image:Bulletazul.gif arrsColList: Columnas a ser incluidas en la lista.

Image:Bulletazul.gif sFilterText: Filtro a ser aplicado en la búsqueda de entidades en la cláusula WHERE.

Image:Bulletazul.gif bFillSchema: Verdadero (True) si la información del esquema se devuelve de la base de datos, Falso (False) de lo contrario.

Image:Bulletazul.gif iTopReturnRows: Número que indica cuantos registros se retornan.

RETORNA - un DataSet con los valores de la entidad.


Image:Bulletrojo.gif object GetAttributeValue(string sEntSource, string[] arrsKeyColumns, object[] arroKeyValues, string sAttrSource)

PARÁMETROS

Image:Bulletazul.gif sEntSource: Table en donde la entidad es implementada.

Image:Bulletazul.gif arrsKeyColumns: Arreglo de columnas usadas como llaves.

Image:Bulletazul.gif arroKeyValues: Valores de las columnas usadas como llaves.

Image:Bulletazul.gif sAttrSource: Columna de valores para devolver.

RETORNA - Valor del atributo.


Image:Bulletrojo.gif bool ExistsEntityInstance(string sEntSource, string[] arrsKeyColumns, object[] arroKeyValues)

PARÁMETROS

Image:Bulletazul.gif sEntSource: Tabla en donde la entidad esta implementada.

Image:Bulletazul.gif arrsKeyColumns: Arreglo de columnas usadas como llave.

Image:Bulletazul.gif arroKeyValues: Valores de las columnas usadas como llave.

RETORNA - Verdadero (True) si la instancia fue encontrada, Falso (False) de lo contrario.


Image:Bulletrojo.gif int ExistsEntityInstance(string sEntSource, string sColumn, object oValue, string[] arrsKeyColumns, object[] arroKeyValues)

PARÁMETROS

Image:Bulletazul.gif sEntSource: Tabla en donde la entidad esta implementada.

Image:Bulletazul.gif sColumn: Columna usada para encontrar la instancia.

Image:Bulletazul.gif oValue: Valor usado para encontrar la instancia.

Image:Bulletazul.gif arrsKeyColumns: Arreglo de columnas usadas como llave.

Image:Bulletazul.gif arroKeyValues: Arreglo de valores usados como llave.

RETORNA - 1 si la instancia fue encontrada, 0 si no.


Image:Bulletrojo.gif Hashtable AddEntity(string sEntSource, Hashtable htAddCols, string[] arrsKeyColumns, object[] arroKeyValues, string[] arrsAutoColumns): Agrega una nueva instancia (valores) a la base de datos

PARÁMETROS

Image:Bulletazul.gif sEntSource: Tabla en donde la entidad esta implementada.

Image:Bulletazul.gif htAddCols: Lista de las columnas para agregar valores.

Image:Bulletazul.gif arrsKeyColumns: Arreglo de columnas usadas como llave.

Image:Bulletazul.gif arroKeyValues: Arreglo de valores usadas como llaves.

Image:Bulletazul.gif arrsAutoColumns: Arreglo de columnas auto-numéricas.

RETORNA - una tabla de Hash (HashTable) que contiene el nombre de la columna y el valor que fue insertado.


Image:Bulletrojo.gif Hashtable UpdateEntity(string sEntSource, string[] arrsKeyColumns, object[] arroKeyValues, Hashtable htUpdateCols, string[] arrsAutoColumns): Actualiza los datos de una instancia de la entidad (valores) en la base de datos y registra la actualización.

PARÁMETROS

Image:Bulletazul.gif sEntSource: Tabla en donde la entidad esta implementada.

Image:Bulletazul.gif arrsKeyColumns: Arreglo de columnas usadas como llave.

Image:Bulletazul.gif arroKeyValues: Valor de las columnas usada como llave.

Image:Bulletazul.gif htUpdateCols: Lista de columnas a ser actualizadas, con valores.

Image:Bulletazul.gif arrsAutoColumns: Arreglo de columnas auto-numéricas.

RETORNA - una tabla de Hash (HashTable) que contiene el nombre de la columna y el valor que fue insertado.


Image:Bulletrojo.gif bool DeleteEntity(string sEntSource, string[] arrsKeyColumns, object[] arroKeyValues): Borra un registro de la base de datos.

PARÁMETROS

Image:Bulletazul.gif sEntSource: Tabla en donde la entidad esta implementada.

Image:Bulletazul.gif arrsKeyColumns: Arreglo de columnas usadas como llave.

Image:Bulletazul.gif arroKeyValues: Valor de las columnas usadas como llave.

RETORNA - Verdadero (True) si el registro fue borrado, Falso (False) de lo contrario.


Ejemplos

<comments />