Resueltas

Error de indice

Buenas tardes, he estado realizando unas formas de resumen para unas actividades, y al final debo sacar un informe de cada una. Pero cuando estoy ejecutando el proceso para pasar de una actividad a otra, me saca este mensaje:

Unable to process the case:Error evaluando la regla 10295:CResumen2 - Error El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección. Nombre del parámetro: index -El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección. Nombre del parámetro: index

La expresión CResumen2 es la siguiente:

Me.setXPath("Principal.Actividades_Principal[2].NombreAct", "Nombre");

Result=Me.getXPath("Principal.Anomalia");

Me.setXPath("Principal.Actividades_Principal[2].Anomalia", Result);

Si quito de la expresión el "[2]" se sigue ejecutando normalmente pero el nombre se repite a medida que avanzo, es decir:

Si el nombre de la primera actividad es "Primera"

Actividad 1 : Primera

Cuando avanzo a la segunda, el nombre de la primera toma el nombre de la segunda también, así:

Actividad 1 : Segunda

Actividad 2 : Segunda

y así sucesivamente:

Actividad 1 : Tercera

Actividad 2 : Tercera

Actividad 3 : Tercera

Entonces mi pregunta es la siguiente, como debo asignar a cierta posición de la entidad para obtener el nombre correcto.

Gracias.

photo
0

Estimado Edward,

Para realizar ese procedimiento, debe tener en cuenta que para recorrer la entidad, debe ser dinamicamente dado que el error que se presenta es porque esta buscando la posición 2 y no existe. Esta regla le ayuda a entender un poco mejor lo entre dicho

Ejemplo de Regla para obtener un atributo(id):

var Entity = CEntityManager.GetEntity("Entidad_de_proceso").GetEntityList("", "", "", "");

//Get the attribute value of the record

CHelper.trace("Rule","Number of registers of entity: "+Entity.Length);

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

{

surrogateKey = Entity.SurrogateKeyValue;

CHelper.trace("Rule","Register number: "+i+" has a SurrogateKeyValue = "+surrogateKey);

}Donde surrogateKey es número del caso en caso que sea entidad del proceso o la llave principal(id). Esto funciona para cualquier entidad. En esta documentación explica el procedimiento: