<< Clic para mostrar Tabla de Contenidos >> Rastrear mi regla de negocio |
Introducción
Durante las etapas de desarrollo de un proyecto o en ambientes de producción existen situaciones donde es necesario rastrear o depurar errores.
Bizagi ofrece la posibilidad de rastrear errores del flujo del proceso (para controlar y diagnosticar errores potenciales) de forma que los administradores puedan comprobar si las reglas de negocio, validaciones, invocación de interfaces o el proceso mismo necesitan ser modificado.
Esto es una herramienta muy poderosa para las Reglas de Negocio, en particular para ayudar al detectar aquellos comportamientos que requieren ajustes.
Trazas en reglas de negocio
En las reglas de negocio, además de seleccionar el nivel y las opciones de las trazas, es necesario incluir una sentencia de en el código de la regla y así identificar qué es exactamente (nivel de detalle) lo que se quiere rastrear.
Esta línea de comandos grabará en un registro independiente (un archivo.txt), toda la información personalizada que el usuario quiere rastrear dentro de la regla.
Las trazas son construidas utilizando la función trace. La siguiente es la sintaxis de la función:
CHelper.trace("FileName","Trace text" + Attribute/Variable)
Los parámetros de la función son:
•File Name: se refiere al nombre del archivo .txt donde se guardan las trazas.
Cuando el File Name contiene un carácter no alfanumérico (#, ?, &, $, %, *), Bizagi reemplaza automáticamente ese carácter con un guión bajo (_) para evitar errores del sistema o excepciones. Por ejemplo, si su File Name es c#test, el archivo de trazas .txt se denomina c_test_log. |
•Object to be traced: el texto de la traza identifica el objeto (atributo o variable) en el archivo log (archivo de trazas .txt). El objeto que será rastreado puede ser un atributo seleccionado por una expresión de navegación XPath, una función o una variable. El texto dentro de las comillas puede ser cualquier texto, no es necesario que sea el nombre del atributo dentro del modelo de datos.
Usted puede encontrar está función en la categoría de Trazas.
Ejemplo
Suponga una compañía de Logística y Transporte que tiene definido un proceso llamado Shipping Process, para manejar y monitorear las entregas internacionales. La primera tarea del proceso permite a los clientes calcular el costo de su envío. El cliente debe dar las dimensiones y el peso del paquete a enviar. El costo estimado del envío se calcula automáticamente con base a un peso volumétrico real y el costo por libra, el cual varía dependiendo del país destino.
El peso volumétrico refleja la densidad del paquete. Un ítem menos compacto generalmente utiliza más espacio en comparación de su peso actual. El peso volumétrico o dimensional se calcula y se compara con el peso actual del envío para determinar cual es más grande; el mayor peso se utiliza para calcular el costo de envío.
El peso volumétrico es calculado utilizando un factor de conversión (para que pueda ser comparado con el peso real) el cual asumiremos siempre como “4000”. Utilizando el peso volumétrico se obtiene utilizando la siguiente formula.
Length*Width*Height/4000
Usted quiere verificar cada paso del calculo del costo para asegurar su correcto funcionamiento.
Para configurar las trazas de las Reglas de Negocio, siga los siguientes pasos:
1. Cree una expresión.
En el ejemplo vamos a definir una expresión asociada con un botón en la forma de la tarea Quote Shipment.
Incluya un Botón y asocie una expresión a él.
2. Incluya el código en un módulo de expresión como se muestra en la siguiente imagen:
Obtenga el costo por libra de la entidad RateTable de acuerdo al país destino.
Luego calcule el peso volumétrico y compárelo con el peso real para obtener el peso mayor.
Finalmente obtenga el costo total multiplicando el Costo por Libra y el Peso Mayor.
3. Para incluir varias trazas utilice la función Trace de la categoría Trazas.
Defina CostCalculation como el nombre del archivo donde se van a guardar las trazas.
Vamos a definir las trazas para Costo por libra, Peso volumétrico, Peso real, Peso Mayor y Costo de envío.
Vamos a utilizar variables y expresiones XPath en las trazas para asegurarnos que los valores se recuperan correctamente.
Las trazas que utilizan variables se escriben de la siguiente forma:
CHelper.trace("CostCalculation", "Volumetric Weight ="+VolumetricWeight);
Las trazas que utilizan expresiones XPath se escriben de la siguiente forma:
CHelper.trace("CostCalculation", "Cost ="+<ShippingProcess.Costs>);
Las trazas que utilizan variables y expresiones XPath se escriben de la siguiente forma:
CHelper.trace("CostCalculation","Cost per Pound to "+<ShippingProcess.DestinationCountry.Name>+" = "+CostperLb);
Note que el signo (+) concatena varios ítems dentro de la sentencia.
//Obtener el costo por kilo basado en el país destino
var parameters = new FilterParameters();
parameters.AddParameter("@Country", <ShippingProcess.DestinationCountry.Id>);
var CostperLb=CHelper.getEntityAttrib("RateTable","CostperKg","Country=@Country",parameters);
CHelper.trace("CostCalculation","Cost per Pound to "+<ShippingProcess.DestinationCountry.Name>+" = "+CostperLb);
//Calcular peso volumétrico
var VolumetricWeight=<ShippingProcess.Lenght>*<ShippingProcess.Widht>*<ShippingProcess.Height>/4000;
CHelper.trace("CostCalculation", "Volumetric Weight ="+VolumetricWeight);
//Determinar mayor peso
CHelper.trace("CostCalculation", "Real Weight ="+<ShippingProcess.Weight>);
if (VolumetricWeight > <ShippingProcess.Weight>)
{
var HigherWeight=VolumetricWeight;
CHelper.trace("CostCalculation", "Higher Weight ="+HigherWeight);
}else
{
var HigherWeight=<ShippingProcess.Weight>;
CHelper.trace("CostCalculation", "Higher Weight ="+HigherWeight);
}
//Calcular costo
<ShippingProcess.Cost>=HigherWeight*CostperLb;
CHelper.trace("CostCalculation", "Cost ="+<ShippingProcess.Costs>);
Guarde la expresión
4. Ejecute el proceso y escriba los valores en los campos requeridos. Dé clic en el botón para ejecutar la expresión.
5. En la carpeta de las trazas de su proyecto, abra el archivo .txt con el nombre definido en el parámetro en la función CHelper.trace.
Last Updated 12/12/2022 2:24:11 PM