<< Clic para mostrar Tabla de Contenidos >> Ejemplo de Multi Selección |
Una compañía de música debe diseñar un proceso (llamado Plan Orchestra Tour) con el cual planear los tours de su orquesta. En este proceso un representante de la orquesta debe seleccionar los diversos músicos que formaran parte de la orquesta y las ciudades que visitaran en el tour. Debido al gran número de músicos que forman una orquesta, agregar uno a uno sus miembros, es muy poco eficiente. En este caso el control Multiselección permite realizar esta tarea de manera más ágil ya que permite seleccionar a los diferentes músicos en un solo control. Este control también facilita la selección de las ciudades que el tour visitará.
Cada músico se representa con una entidad WFUser que tiene asociada un instrumento.
La relación Muchos a Muchos debe ser creada en el modelo de datos como se muestra a continuación:
El control Multiselección puede relacionar un Tour con muchos músicos.
Siga estos pasos para configurarlo:
1.En el diseñador de formas, arrastre y suelte un control de Multiselección desde la pestaña Controles.
2.Cuando se suelta el control, se abrirá una ventana.
3.Ingrese la información de la configuración:
•XPath izquierda: Seleccione el XPath a la entidad principal. En este caso, a la entidad PlanOrchestraTour. Tenga en cuenta que no podrá seleccionar una entidad que sea usada en ese momento como contexto (por ejemplo, cuando se trabaja dentro de una inner form).
•XPath derecha: Seleccione el XPath desde la entidad principal hacia la colección de la entidad secundaria que contiene los registros que serán mostrados. En este caso, la colección WFUSER.
Navegue a través de la entidad Complaints. Seleccione la colección a WFUser. Esta colección fue creada por defecto cuando se creó la relación Muchos a Muchos.
•Atributo derecha: Seleccione el atributo de la entidad Secundaria que será presentado al usuario final. En este caso el atributo fullName.
•Atributo adicional derecha: Seleccione un atributo adicional para mostrar. En este caso usaremos el atributo que representa el nombre del instrumento.
•Filtro derecha: Seleccione el filtro para los elementos que serán mostrados en el Control. En este caso, cree un filtro básico para mostrar unicamente los usuarios activos (enabled is equal to true).
4.Cuando termine la configuración, el control será mostrado en el Diseñador de formas. Si la configuración no se ha terminado, no se mostrará el control.
5. Vaya al Portal de Trabajo para probar el Control.
Seleccione los nombres de los usuarios en la entidad WFUser que desea agregar al tour. En este caso, tenemos:
•Billy Cranston (instrumento: piano).
•Kimberly Hart (instrumento: voz).
•Trini Kwan (instrumento: violín).
Como puede ver si el espacio del control no es suficiente para mostrar todos los registros seleccionados, se mostrará el icono . El número que se muestra en el icono es igual al número de registros que no se pueden visualizar.
Estos registros se pueden visualizar haciendo clic en el icono .
Para borrar uno de los registros asociados solo haga clic en el icono() a la derecha deñ registro que quiere borrar.
Si quiere aprovechar las funcionalidades desde el control multi selección más allá de las formas, también puede configurarlo desde reglas de negocios. Continuando con el ejemplo, si ahora desea que se pueda agregar un músico con varios instrumentos ó varios músicos con varios instrumentos, debe tener configurarse de la siguiente manera:
1. Se deben crear las relaciones muchos a muchos en el modelo de datos. En el ejemplo, vea las relaciones mucho a mucho de usuarios e instrumentos con el proceso.
2. El control multi selección debe configurarse, tal como se aprecia en las siguientes imágenes, para mostrar esa relación muchos a muchos, tanto para usuarios como para instrumentos:
Configuración proceso - usuarios
Configuración proceso - instrumentos
3. Desde regla de negocios, se hace uso de la función Me.attachCollectionItem para usuarios e instrumentos, de la siguiente manera:
a. En la tarea de la forma, en Acciones de la Actividad, cree una expresión en la sección Al Salvar. En el caso del ejemplo, se le asigna el nombre AddMulti.
b. Una vez creada la expresión, se ingresa el código en donde se emplea la función Me.attachCollectionItem para crear el registro de manera automática y sin complejidades para el usuario. En el ejemplo, además de utilizar la función para los usuarios y los instrumentos, cuenta también con filtros y expresiones XPath.
Este es el código de la expresión |
var oUsrs; var oParameters = new FilterParameters(); oParameters.AddParameter("@param1", ""); oUsrs = Me.getXPath("entity-list('WFUSER','')",oParameters); for(var i=0;i<oUsrs.size();i++) { Me.attachCollectionItem("MyProcess.MyProcessToWFUser",oUsrs.get(i)); } var oInstruments; var oParametersInstruments = new FilterParameters(); oParametersInstruments.AddParameter("@param1", ""); oInstruments = Me.getXPath("entity-list('Instrument','')",oParametersInstruments); for(var i=0;i<oInstruments.size();i++) { Me.attachCollectionItem("MyProcess.MyProcessToInstrument",oInstruments.get(i)); } |
Para mayor información sobre filros, diríjase al artículo Acceder a entidades no relacionadas con el modelo de datos.
Si desea conocer más sobre la función de Me.attachCollectionItem, puede revisar el artículo Asociar elementos a una colección. |
De esta manera, en el Portal de Trabajo podrá ver la configuración multi selección automáticamente:
Last Updated 7/5/2023 12:03:06 PM