<< Clic para mostrar Tabla de Contenidos >> Llaves de negocio |
Introducción
Una llave de negocio es la columna, o conjunto de columnas, que define de manera única cada registro de una entidad.
A través de la definición de llaves de negocio, se garantiza que la información contenida en dichas columnas sea diferente para cada registro en una misma entidad (y así evitar duplicados).
Bizagi no permitirá ingresar un nuevo registro donde se tenga un valor ya existente de llave de negocio.
Como ejemplo, si tomamos una entidad de parametrización País usando como llave de negocio el código ISO del país, Bizagi validará que no hayan dos registros con un mismo código ISO, como por ejemplo "MX" (Mexico).
Esta definición conlleva a tener un constraint de unicidad en la información.
La imagen a continuación ilustra otro ejemplo típico, donde una entidad Cliente tiene como llave de negocio, conjuntamente la información del Tipo de documento y Número de documento:
Nótese que en este ejemplo, el cliente Jack White no cuenta con una llave de negocio diferente por lo que no será permitido crearlo en Bizagi (su tipo y número de documento es idéntico al de John Smith).
Por defecto y cuando se crean entidades, Bizagi crea una llave subrogada principalmente de uso interno. Sin embargo, además de esta llave que maneja Bizagi, es una buena práctica que se definan las llaves de negocio en sus entidades cuando aplique (por ejemplo, muy comúnmente útil en todas las entidades de parametrización y solamente en pocas entidades maestras). Esto se torna aún más importante si planea en integrar dicha información con otro sistema (de manera que haya confiabilidad de registros únicos, a través de códigos). |
Beneficios del uso de llaves de negocio
El uso de llaves de negocio provee ventajas con respecto a la integridad de datos, rendimiento, y relacionadas a mejores prácticas de seguridad e integración:
•Cuando se crea un nuevo registro, se evitan datos duplicados dado que Bizagi valida automáticamente que no exista un registro con el mismo valor en su llave de negocio.
•Las llaves de negocio son automáticamente indexadas para optimizar la búsqueda de registros, aspecto que produce una gran ventaja al contar con un gran volumen de registros.
•Cuando se realizan integraciones con otros sistemas, se puede apoya en códigos únicos para la certeza de que tanto Bizagi como el sistema externo, utilizan un mismo registro lógico.
•Cuando se realizan integraciones con otros sistemas, la información que se intercambia y se envia a otros sistemas, se basa en códigos.
Esto es compatible con algunos estándares específicos para cada industria, como por ej HIPAA para el sector salud, donde se refuerza el concepto de seguridad por obscuridad, (además de blindar con otras medidas de seguridad encima), al no enviar directamente información sensible de manera intuitiva o de fácil lectura.
Otros ejemplos
La definición de llaves de negocio en sus entidades le permite fácilmente evitar registros duplicados en escenarios comunes como en estos ejemplos:
•Una entidad Cliente donde se use el número de seguridad social como llave de negocio, de manera que se garantice que a nivel de registros, no habrá otra persona con el mismo número de seguridad social.
•Una entidad Producto utilizando un código de producto como llave de negocio, igualmente para validar que no vayan a existir 2 productos con un mismo código.
•Una entidad PrecioProducto donde se tiene un histórico del precio de los productos, y donde se tiene una combinación del id de producto y la fecha inicial que aplica (para registrar el precio del producto, desde una cierta fecha dada). De esta manera, no habrán 2 registros del mismo producto con posiblemente 2 precios diferentes a aplicar a una misma fecha.
Procedimiento
Para definir una llave de negocio, abra su proyecto con Bizagi Studio y vaya a la vista de Experto.
En el módulo de Entidades, ubique su entidad para dar clic derecho sobre ella y seleccione las Propiedades Avanzadas.
Seleccione la pestaña Llave de Negocio y marque la casilla que indica Habilitar llave de negocio.
Incluya cuál o cuales atributos de la lista harán parte de esta definición.
Nótese que en este ejemplo, los atributos Tipo de documento (DocumentType) y Número de documento (DocumentNumber) serán conjuntamente la definición de la llave de negocio.
No se recomienda la definición de llaves de negocio utilizando un atributo que hace referencia a una relación con otra entidad ya que este tipo de llave de negocio no puede ser usada en la definición de reglas y políticas de negocio. |
Tenga presente que si DocumentType es un atributo de referencia a otra entidad (una entidad Tipo de Documento), entonces se esperaría que dicha entidad también tenga una definición de llave de negocio (aunque no sea obligatorio) dado que esa sería la manera de garantizar que cada registro en esa tabla no tenga un valor de negocio duplicado.
Consideraciones de virtualización y replicación
Si necesita virtualizar o replicar una entidad, es obligatorio que la entidad tenga una llave de negocio. Para la virtualización o la replicación, las llaves de negocio no se pueden crear cuando el atributo es una relación con otras entidades, incluidas las relaciones anidadas, por ejemplo, entidad principal - entidad hijo - entidad nieto.
Puede ver más información en consideraciones con llaves primarias y de negocio.
Consideraciones en la integración
Cuando se cuenta con una definición de llaves de negocio en las entidades, deberá considerar el siguiente aspecto si en su proyecto utiliza los servicios Web del API de Bizagi (la capa SOA) para que una aplicación externa envíe información a Bizagi:
La manera de referenciar registros en Bizagi (sea para actualizarlos o para crearlos de manera única) a través de la información en archivos XML vía servicios Web, debe ser sin incluir la cláusula businessKey como un atributo XML:
Nótese que en el ejemplo anterior, se actualizaría la información de la compañía (Company) del Cliente (Customer) que tiene:
Document type=1 AND Document number=123456789. (tipo de documento 1, y número de documento 123456789).
Desde que la versión 10.8, los tipos de datos de las llaves de negocio se toman como Bigint en lugar de Integer, lo que garantiza que haya una gran cantidad de claves disponibles para un uso muy prolongado del producto. |
Last Updated 1/24/2023 3:42:14 PM