Desasociar elementos de una colección

<< Click to Display Table of Contents >>

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

Desasociar elementos de una colección

Visualice su colección como una tabla. Desasociar un elemento es desconectarlo de una fila de la tabla, pero dejando los datos en la base de datos para ser utilizados por otra colección.

 

Los ítems (registros) de una colección se pueden eliminar o desasociar.

Cuando se elimina un ítem, éste será eliminado la colección y de la base de datos.

Al desasociar un ítem, éste se desconectará de la colección pero permanecerá en la base de datos.

 

Cuando un ítem es compartido por dos o más colecciones, se recomienda desasociar en vez de eliminar.

 

Si desasocia un ítem (o registro) tiene tres opciones:

Desasociar todos los elementos de la colección: desconecta todos los ítems (registros) de una colección utilizando la función detachAllCollectionItems.

Sólo se debe especificar el XPath a la colección y todos los registros serán desasociados.

 

Desasociar algunos artículos de la colección: desconectar algunos ítems (uno o más registros) de una colección con la función detachCollectionItems.

Es necesario especificar el XPath de la colección y el XPath filtrando los elementos que desea desasociar.

 

Desasociar UN ítem de colección: desconectar UN ítem (registro) de una colección con la función detachCollectionItem.

Es necesario especificar el XPath de la colección y el XPath filtrando el único elemento que desea separar. Si en el filtro se encuentra más de un ítem la función presentará un error al usuario final.

 

Las funciones se encuentran en la categoría Colecciones.

 

 

addrelation18

 

 

La sintaxis de las funciónes es la siguiente :

 

Me.detachAllCollectionItems("ProcessEntity.RelationshipToTheCollection")

Me.detachCollectionItems("ProcessEntity.RelationshipToTheCollection",filtered XPath)

Me.detachCollectionItem("ProcessEntity.RelationshipToTheCollection",filtered XPath)

 

Tomemos como ejemplo un proceso de un Colegio. A través del año, el director del salón actualiza las calificaciones de los estudiantes y ve que quienes están aprobando y que está perdiendo. Hay tres colecciones, la colección de Estudiantes, con la información actualizada de los estudiantes, la colección Aprobados y la colección Perdiendo.

Las tres son colecciones de la misma entidad Maestra: Estudiantes.

 

 

Detach1

 

 

Cuando se actualiza la colección estudiantes, queremos ver de manera independiente dos colecciones: una con aquellos que tiene un promedio mayor de 6 y otra con los que no.

Utilizamos la función detachcollectionItems para desconectar de la colección Perdiendo, los estudiantes que ahora están aprobando.

Note que no utilizamos la función deleteCollectionItems porque sólo queremos desconectar los ítems de la colección, pero aún guardarlos en la base de datos, ya que se pueden unir a la colección Aprobados, y además forman parte de la colección de los Estudiantes.

 

Detach2

 

A continuación encontrará las diferentes maneras en que los ítems se pueden desasociar en función de las necesidades de negocio.

 

Example

Result

if(<count(School.Approvedstudents[Average < 6])>==1)

{

Me.detachCollectionItem("School.Approvedstudents", <School.Approvedstudents[Average < 6]> );

}

Desasocia solo los estudiantes cuyo promedio esta debajo de 6 y pertenecen a la colección Aprobados.

var average = 6;

Me.detachCollectionItems("School.Failedstudents", Me.getXPath("School.Students[Average > "+ average +"]"));

 

or

 

Me.detachCollectionItems("School.Failedstudents", <School.Students[Average > 6]>);

Desasocia a todos los estudiantes que estaban perdiendo y ahora están aprobando. Los ítems (estudiantes) serán desconectados de la colección Perdiendo pero seguirán presentes en la base de datos.

Me.detachAllCollectionItems("School.Failedstudents");

 

Me.detachAllCollectionItems("School.Approvedstudents");

Desasocia todos los ítems de amabas relaciones, pero los deja en la base de datos.