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:
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.
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.
void CloseConnection(): Encargado de cerrar la conexión con el sistema externo.
void BeginTransaction(): Encargado de iniciar una nueva transacción para la operación actual en el sistema.
void Commit(): Hace persistir (Commit) la transacción actual en el sistema de referencia.
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:
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
objProvider: Permite la conversión hacia el objeto que implementa la interface IProviderVirtualDA.
htMetadata: Contiene la información necesaria como metadatos para establecer la conexión con el sistema configurado.
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
sEntSource: Tabla en donde la entidad es implementada.
arrsKeyColumns: Un arreglo que contiene los nombres de las columnas usadas para filtrar el registro.
arroKeyValues: Arreglo que contiene los valores a ser usados como filtros para una búsqueda del registro.
arrsColList: Arreglo que contiene el nombre de las columnas a ser consultadas.
RETORNA - un DataSet con los valores de la entidad.
DataSet GetEntityInstancesTable(string sEntSource, string[] arrsKeyColumns, string[] arrsColList, string sFilterText, bool bFillSchema, int iTopReturnRows)
PARÁMETROS
sEntSource: Tabla en donde la entidad está localizada.
arrsKeyColumns: Arreglo de columnas usadas como llaves.
arrsColList: Columnas a ser incluidas en la lista.
sFilterText: Filtro a ser aplicado en la búsqueda de entidades en la cláusula WHERE.
bFillSchema: Verdadero (True) si la información del esquema se devuelve de la base de datos, Falso (False) de lo contrario.
iTopReturnRows: Número que indica cuantos registros se retornan.
RETORNA - un DataSet con los valores de la entidad.
object GetAttributeValue(string sEntSource, string[] arrsKeyColumns, object[] arroKeyValues, string sAttrSource)
PARÁMETROS
sEntSource: Table en donde la entidad es implementada.
arrsKeyColumns: Arreglo de columnas usadas como llaves.
arroKeyValues: Valores de las columnas usadas como llaves.
sAttrSource: Columna de valores para devolver.
RETORNA - Valor del atributo.
bool ExistsEntityInstance(string sEntSource, string[] arrsKeyColumns, object[] arroKeyValues)
PARÁMETROS
sEntSource: Tabla en donde la entidad esta implementada.
arrsKeyColumns: Arreglo de columnas usadas como llave.
arroKeyValues: Valores de las columnas usadas como llave.
RETORNA - Verdadero (True) si la instancia fue encontrada, Falso (False) de lo contrario.
int ExistsEntityInstance(string sEntSource, string sColumn, object oValue, string[] arrsKeyColumns, object[] arroKeyValues)
PARÁMETROS
sEntSource: Tabla en donde la entidad esta implementada.
sColumn: Columna usada para encontrar la instancia.
oValue: Valor usado para encontrar la instancia.
arrsKeyColumns: Arreglo de columnas usadas como llave.
arroKeyValues: Arreglo de valores usados como llave.
RETORNA - 1 si la instancia fue encontrada, 0 si no.
Hashtable AddEntity(string sEntSource, Hashtable htAddCols, string[] arrsKeyColumns, object[] arroKeyValues, string[] arrsAutoColumns): Agrega una nueva instancia (valores) a la base de datos
PARÁMETROS
sEntSource: Tabla en donde la entidad esta implementada.
htAddCols: Lista de las columnas para agregar valores.
arrsKeyColumns: Arreglo de columnas usadas como llave.
arroKeyValues: Arreglo de valores usadas como llaves.
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.
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
sEntSource: Tabla en donde la entidad esta implementada.
arrsKeyColumns: Arreglo de columnas usadas como llave.
arroKeyValues: Valor de las columnas usada como llave.
htUpdateCols: Lista de columnas a ser actualizadas, con valores.
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.
bool DeleteEntity(string sEntSource, string[] arrsKeyColumns, object[] arroKeyValues): Borra un registro de la base de datos.
PARÁMETROS
sEntSource: Tabla en donde la entidad esta implementada.
arrsKeyColumns: Arreglo de columnas usadas como llave.
arroKeyValues: Valor de las columnas usadas como llave.
RETORNA - Verdadero (True) si el registro fue borrado, Falso (False) de lo contrario.
Ejemplos
- Ejemplo de Clase que Implementa la Interfaz IProviderVirtualDA
- Ejemplo de Clase que Implementa la Interfaz IEntityVirtualDA
<comments />