Saltar al contenido

Datos No Vinculantes Compartidos Entre Paneles

En Vinyl es posible compartir datos entre dos Paneles sin necesidad de crear una unión cruzada detrás de escena en el Objeto de Negocio. Este artículo explicará un ejemplo de configuración de datos compartidos no vinculantes entre paneles, aprovechando Shared() función.

En este ejemplo, tenemos una lista de Proyectos y una lista de Empleados y queremos asignar un Empleado a un Proyecto simplemente haciendo clic en un botón de la lista. En este ejemplo, un Proyecto tiene un Título y un Empleado tiene un Nombre Completo. Después de completar el ejercicio de ejemplo, nuestra página se verá así:

Datos compartidos

Paso 1: Actualice la Regla del Panel de Empleados

En este paso, actualizaremos la regla comercial que respalda el panel de Empleado para agregar una nueva columna que aproveche la función Compartida. Por ejemplo: agregue una columna a Empleado (Fuente) usando el valor shared('ProjectID'), Alias como ID de proyecto y Transmitir lo lógico como ID único.

Paso 2: Crear una Regla CRUD Cram

En este paso crearemos una regla CRUD Cram con las tablas Empleado y Proyecto, para insertar el Empleado seleccionado en el Proyecto usando la función Compartido.

La Crud Rule tendrá la acción de Cram y aprovechará las tablas de Empleado (E) y Proyecto (P).

Columnas para configurar para la regla:

  • E. EmployeeID apunta al EmployeeID
  • P.ProjectID apunta al ProjectID
  • NEWUUID() apunta al ProjectEmployeeID

Paso 3: Agregar la Regla CRUD a una Acción en el Objeto Comercial del Empleado

En este paso agregaremos la regla CRUD Cram a una acción para un evento personalizado que crearemos llamado "AssignEmployee". Establezca el ámbito de actualización en Global. Asocie este evento al objeto comercial del empleado.

Para que esto funcione correctamente, necesitaremos configurar dos registros vinculantes para la Acción.

  1. ID de empleado a ID de empleado
  2. ID de proyecto a ID de proyecto

Paso 4: Agregue el Evento a un Botón

En este paso agregaremos el evento personalizado AssignEmployee creado en el paso 2 a un control de botón llamado "Asignar" que agregaremos al Panel de empleados en la página.

Paso 5: Configurar el Enlace del Panel

En este paso, comparta el ID del proyecto a través del enlace del panel, asegurándose de que tanto el panel de empleados como el panel de empleados asignados al proyecto estén vinculados a proyectos. Deberá agregar información de columnas de enlace, que de forma predeterminada es un enlace normal, por lo que inicialmente seleccionará una columna aleatoria para el panel secundario (actual) y el ID de proyecto deseado como principal.

Después de agregar la información del Panel de enlace, seleccione y abra el registro Columnas de enlace y cambie el valor Tipo para que sea Compartido.

Esto limitará la información del resultado solo al valor de la columna principal que desea compartir, que es ProjectID en este ejemplo. Clic en Guardar**.

Ahora, cuando actualice la página y haga clic en el botón Asignar del Panel de empleados, verá que el empleado seleccionado se agrega al proyecto seleccionado en el Panel de empleados asignados al proyecto resultante. Tenga en cuenta que esto se logra sin tener que crear una unión cruzada en el objeto comercial del empleado. Cross Joins puede utilizar muchos recursos y, en ocasiones, ralentizar el procesamiento de aplicaciones.

Nota

Dependiendo del caso de uso, o de la frecuencia con la que se usa una columna compartida en todas las acciones, también es posible agregar el valor compartido a una selección de columna de objeto comercial o usarlo en declaraciones Where.