Adicionar y remover registros de Mis Cosas

<< Click to Display Table of Contents >>

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

Adicionar y remover registros de Mis Cosas

Cuando usted desee añadir o remover ítems a 'Mis Cosas' del Stakeholder, puede hacerlo mediante una expresión.

Para registros relacionados a 'Mis Cosas', debe considerar si el registro a añadir ha sido creado previamente, de manera que se pueda adjuntar, o si en caso contrario, es un nuevo registro.

Además, debe considerar si el Stakeholder es un usuario único, dueño del registro o si los otros Stakeholders poseen el registro de igual manera (Observe el registro en 'Mis Cosas').

 

Ejemplo

Suponga un escenario donde en un concesionario de automóviles usted necesite diseñar una solución en la cual los clientes puedan adicionar y eliminar automóviles desde una lista de favoritos. Puede hacerlo utilizando una expresión que permita la adición de un registro de un vehículo a una colección en 'Mis Cosas', y una vez el registro se encuentre allí, puede usar una regla de acción para eliminar dicho ítem desde 'Mis Cosas'.

 

¿Qué necesita hacer?

1. Crear el Modelo de Datos que soportará el escenario anteriormente planteado.

2. Habilitar la entidad en 'Mis Cosas'

3. Crear una búsqueda para encontrar los vehículos y añadirlos a la lista de favoritos.

4. Crear una acción para añadir los vehículos a la lista de favoritos.

5. Crear una acción para remover los vehículos de una lista de favoritos.

 

Crear un Modelo de Datos que soporte el escenario

Se debe tener en cuenta que muchos de los clientes pueden añadir el mismo vehículo a su lista de favoritos, por lo tanto, un vehículo puede ser incluido como favorito en la lista de muchos de los clientes. En este caso, no es posible tener una colección directa de Cliente a Vehículo, porque esto implicaría que un cliente es propietario, de manera que no permitiría el escenario descrito anteriormente donde es necesario tener varios clientes que puedan seleccionar varios vehículos.

Para habilitar el modelo, se requiere utilizar un entidad intermedia entre vehículos y clientes a la cual llamaremos Vehículos favoritos. Ambas entidades, Vehículos y Clientes tendrán una relación uno-a-muchos.

 

AddMyStuff1

 

 

Habilitar la entidad en 'Mis Cosas'

Dado este enfoque, la entidad requerida para enlazar la definición de los Clientes de los Stakeholders es la nueva entidad Vehículos favoritos.

Diríjase a 'Mis Cosas' y habilite la colección de Vehículos favoritos en el contexto "Siempre disponible".

 

AddMyStuff2

 

Crear una Búsqueda para encontrar vehículos que se añadirán a lista de favoritos.

En el Stakeholder, cree una búsqueda para habilitar la búsqueda de vehículos en el proyecto.

 

AddMyStuff3

 

Crear una acción para adicionar un vehículo a la lista de favoritos

Se necesita un botón sobre los registros de los vehículos en la búsqueda realizada por un Cliente, de tal manera, se seleccionará la entidad Vehículos para ser aquella donde la acción es ejecutada.

Después, se seleccionará una regla para ejecutar y crear una nueva regla.

 

AddMyStuff4

 

La expresión requiere la adición de un nuevo registro a la lista de la entidad Vehículos favoritos, enlazando al cliente con el vehículo que ha sido añadido.

Por lo tanto, se necesita usar la función Me.newCollectionItem tal como se muestra a continuación:

 

AddMyStuff5

 

var NewFav = Me.newCollectionItem("Addedtofavorites");

NewFav.setXPath("Client",Credential.Stakeholder("Client"));

 

Tenga en cuenta que sólo se actualizará el Cliente en la expresión debido a que el registro del vehículo será inyectado automáticamente por Bizagi.

 

Crear una acción para remover un vehículo de la lista de favoritos

Se necesita un botón sobre los registros de los vehículos que se han incluido en la colección de Favoritos, de tal manera se seleccionará la entidad Vehículos favoritos para ser aquella donde la acción es ejecutada.

Luego, se seleccionará una regla para ejecutar y crear una nueva regla.

 

AddMyStuff6

 

La expresión requiere la eliminación completa de un registro desde la entidad Vehículos favoritos. Se usará la función Me.deleteCollectionItems como se muestra a continuación:

 

AddMyStuff7

 

var ThisItem = Me.Context.getXPath("Id");

Me.deleteCollectionItems("Client.Favoritevehicles", Me.getXPath("Client.Favoritevehicles[id = "+ ThisItem +"]")