<< Clic para mostrar Tabla de Contenidos >> Forzar un atributo para deployment |
El analizador de expresiones de Bizagi es altamente robusto para identificar todos los atributos, entidades y otros elementos que deben incluirse en los paquetes de deployment para los ambientes de Pruebas y Producción.
Sin embargo, en algunos casos, ciertos atributos del modelo de datos pueden no incluirse en un paquete de deployment. Como resultado, al probar un paquete de deployment en el ambiente de Pruebas, puede ocurrir un error en tiempo de ejecución debido a un atributo faltante.
Este problema surge cuando un atributo se usa exclusivamente dentro de una expresión y no se referencia en otros lugares, como en formas o asignaciones. Además, si la expresión está estructurada de manera que impide que Bizagi detecte el atributo, este no se incluirá en el deployment.
Para garantizar que los atributos se incluyan correctamente al trabajar con expresiones complejas y dinámicas, se recomienda usar cualquiera de las siguientes sentencias:
CHelper.usingAttrib("EntityName", "AttribName")
Donde:
•EntityName: Nombre de la entidad donde se almacena el atributo.
•AttribName: Nombre del atributo que se debe incluir en el deployment.
CHelper.usingXPath("EntityName", "XPath")
Donde:
•EntityName: Nombre de la entidad donde se almacena el atributo.
•XPath: XPath del atributo que se debe incluir en el deployment.
CHelper.usingXPath("XPath")
Donde:
•XPath: XPath del atributo que se debe incluir en el deployment.
Todos los parámetros deben estar entre comillas dobles. NO use variables como parámetros.
Incluir cualquiera de estas sentencias en una expresión no afecta su ejecución. Se pueden colocar al inicio o al final de la expresión; sin embargo, se recomienda ubicarlas al inicio para facilitar su identificación.
Cuando usted referencia un atributo mediante CHelper.usingAttrib o CHelper.usingXPath, Bizagi incluye automáticamente la entidad a la que pertenece dicho atributo. No es posible hacer deployment de atributos sin las entidades asociadas. |
Al usar variables como filtros en una sentencia GetEntity para filtrar una entidad, los atributos dentro de la variable de filtro no se incluyen en el paquete de deployment a menos que se usen en formas o asignaciones.
El siguiente ejemplo muestra cómo el atributo IsAdditional, que se usa exclusivamente en la expresión, no se incluye en el paquete de deployment. Para asegurar su inclusión, se puede utilizar la sentencia usingAttrib:
var parameters = new FilterParameters();
parameters.AddParameter("@IsAdditional", 1);
parameters.AddParameter("@cAmounttoPay", 0);
var Transactions = Me.getXPath("entity-list('Installment', 'IsAdditional = @IsAdditional AND cAmounttoPay > @cAmounttoPay')",parameters);
for(var i =0; i < Transactions.size(); i++)
{
var Transaction = Me.newCollectionItem("Transfer.Transactions")
Transaction.setXPath("Transaction",Transactions[i].getXPath("Id"));
}
CHelper.usingAttrib("Installment", "IsAdditional");
La siguiente imagen muestra el mensaje de error en el Portal de Trabajo cuando un atributo dentro de una expresión no se encuentra en el proyecto.
Al crear un XPath como cadena de texto y guardarlo en una variable, Bizagi no puede identificar los atributos contenidos en él. Si estos atributos no se usan en formas o asignaciones, no se incluirán en el paquete de deployment.
El siguiente ejemplo muestra cómo el XPath sPath se construye dinámicamente y se guarda en una variable como cadena de texto. Como el atributo IdUser se usa exclusivamente en esta expresión, no se incluye en el deployment. Para garantizar su inclusión, se puede utilizar la sentencia usingXPath:
var parameters = new FilterParameters();
parameters.AddParameter("@sName", Me.Task.Name);
var idActivity=CHelper.getEntityAttrib("Activity","idActivity","sName=@sName",parameters);
parameters.AddParameter("@idactivity", idActivity);
var idValRole=CHelper.getEntityAttrib("ActivityConfigurat","idValidationRole","idactivity=@idactivity",parameters);
var sPath="Request.AllUsers[idValidationRole.id ="+idValRole+"].idUser";
Me.setXPath(sPath,Me.Case.WorkingCredential.UserId);
CHelper.usingXPath("Request", "idUser");
Al crear un nuevo caso mediante la función CHelper.NewCase, el método recibe una cadena XML como parámetro. Este XML puede incluir información sobre el creador del caso, así como datos de negocio. Sin embargo, Bizagi no puede detectar automáticamente los atributos dentro de esta cadena.
El siguiente ejemplo muestra cómo crear un nuevo caso del proceso Change Management, utilizando una expresión en la que el atributo AssociatedTicket se incluye en el XML. Para que este atributo sea reconocido, se puede utilizar la sentencia usingXPath:
{
var sXML ="<BizAgiWSParam>"; //inicio del xml
sXML += "<domain>domain</domain>"; //dominio del usuario que creará el caso
sXML += "<userName>HelpDeskAgent</userName>"; //usuario que creará el caso
sXML += "<Cases><Case><Process>ChangeManagement</Process>"; //nombre del proceso
sXML += "<Entities>"; //inicio de la información de negocio
sXML += "<ChangeRequest>"; //nombre de la entidad de proceso
sXML += "<AssociatedTicket>" + Me.Case.CaseNumber + "</AssociatedTicket>"; //información de negocio
sXML += "</ChangeRequest></Entities></Case></Cases></BizAgiWSParam>"; //fin del xml
CHelper.usingXPath("ChangeRequest.AssociatedTicket")
CHelper.NewCase(sXML)
}
Last Updated 3/17/2025 5:08:55 PM