Forzar un atributo para deployment

<< Click to Display Table of Contents >>

Navigation:  Bizagi Studio > Asistente de Procesos > Reglas de Negocio > Ejemplos de reglas de negocio >

Forzar un atributo para deployment

El analizador de reglas de Bizagi es muy robusto identificando todos los atributos, entidades, etc., que han de ser enviados en paquetes de deployment a los entornos de pruebas y producción.

Sin embargo a veces las expresiones se construyen de tal manera que Bizagi no es capaz de detectar atributos específicos. Al probar los paquetes de deployment en tiempo de ejecución se produce un error porque no se encuentra un atributo.

Esto ocurre cuando un atributo se usa exclusivamente en una regla y no se incluye en formas o asignaciones. Adicionalmente la expresión que lo contiene está escrita de tal manera que Bizagi no puede detectarlo.

 

Cuando la construcción de expresiones complejas se realiza de manera dinámica, se recomienda utilizar la siguiente sentencia para forzar a Bizagi a incluir dicho atributo en el deployment.

 

CHelper.usingAttrib("EntityName", "AttribName")

 

La sentencia recibe dos parámetros:

La entidad donde se guarda el atributo

El atributo a ser forzado en el despliegue.

 

Ambos parámetros deben escribirse entre comillas dobles. NO se debe utilizar variables como parámetros.

La inclusión de la sentencia en una expresión no tiene efecto sobre el resultado de la misma. Se puede incluir al principio o al final. Se recomienda incluir al comienzo para que sea más fácil de identificar.

 

Ejemplo

Cuando se usan variables como filtro en sentencias GetEntity para filtrar una entidad, los atributos contenidos no se van en el paquete de deployment si no se usan en ningún otro lugar como formas o asignaciones.

La siguiente sentencia muestra como el atributo IsAdditional, que solo es usado en esta regla, no se incluye en el deployment. Por ello se debe usar la sentencia usingAttrib.

 

var Filter = "IsAdditional = 1 AND cAmounttoPay > 0";

var Transactions = CEntityManager.GetEntity("Installment").GetEntityList("","",Filter,"");

for(var i =0; i < Transactions.Length; i++)

{

 var Transaction = Me.newCollectionItem("Transfer.Transactions")

 Transaction.setXPath("Transaction",Transactions[i].SurrogateKeyValue);

}

CHelper.usingAttrib("Installment", "IsAdditional");

 

La imagen muestra el mensaje de error que se recibe en el Portal de Trabajo cuando un atributo incluído en una expresión no se lleva en el deployment.

 

Using1

 

 

 

Ejemplo

Cuando se construyen xPaths como cadenas de texto y se guardan en una variable, Bizagi no puede identificar los atributos contenidos. Si los atributos incluidos en el xPath de cadena no se usan en formas o asignaciones, no se llevarán en el deployment.

La siguiente sentencia muestra como el xPath sPath se construye de manera dinámica. El atributo idUser usado exclusivamente en esta expresión no se va en el deployment. Se usa entonces la sentencia usingAttrib.

 

var idActivity=CHelper.getEntityAttrib("Activity","idActivity","sName='"+Me.Task.Name+"'");

var idValRole=CHelper.getEntityAttrib("ActivityConfigurat","idValidationRole","idactivity='"+idActivity+"'");

var sPath="Request.AllUsers[idValidationRole.id ="+idValRole+"].idUser";

Me.setXPath(sPath,Me.Case.WorkingCredential.UserId);

CHelper.usingAttrib("AllUsers", "idUser");