Llaves de negocio

<< Click to Display Table of Contents >>

Navigation:  Bizagi Studio > Asistente de Procesos > Modelar Datos >

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:

 

BusinessKeys

 

 

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).

 

note_pin

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).

 

 

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

 

BusinessKeys00

 

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.

 

BusinessKeys01

 

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.

 

 

BusinessKeys02

 

 

 

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:

 

BusinessKeys03 

 

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).