Saltar al contenido

Compartir datos no vinculantes entre paneles en Jitterbit App Builder

En App Builder, vinculación compartida permite que los paneles intercambien datos sin necesidad de complejas uniones SQL cruzadas dentro de un objeto de negocio. Las uniones tradicionales pueden ser intensivas en recursos y pueden degradar el rendimiento de la aplicación. La vinculación compartida elude esto al hacer que un valor específico de un panel padre esté disponible para la lógica de un panel hijo a través de la función shared().

Mientras que la vinculación estándar de paneles se basa en coincidencias exactas de ID para filtrar resultados, la vinculación compartida se utiliza para pasar variables que pueden ser referenciadas en cualquier parte del SQL, reglas CRUD o acciones del panel de destino. Esta característica es un componente clave de las relaciones entre paneles y no se limita a enlaces de página a página.

Escenario de ejemplo: Asignaciones de proyectos

Para ilustrar este concepto, considera una página que contiene una lista de Proyectos y una lista de Empleados. El objetivo es permitir que un usuario asigne un empleado a un proyecto al hacer clic en un botón. En este caso, el panel de Proyecto compartirá su ID con el panel de Empleado para que se pueda crear un registro de asignación.

Paso 1: Actualizar la regla de negocio del Empleado

El primer paso es preparar el panel hijo para recibir los datos compartidos. Debes actualizar la regla de negocio que soporta el panel de Empleado añadiendo una nueva columna que utilice la función compartida. Por ejemplo, añade una columna a la regla de Empleado (Fuente) utilizando la sintaxis shared('ProjectID'). Debes aliasar esto como ProjectID y asegurarte de que el tipo de dato lógico esté configurado como ID Único.

Nueva columna de ID de Proyecto

Paso 2: Crear una regla CRUD/Cram

A continuación, crea una regla CRUD/Cram que involucre tanto las tablas de Empleado como de Proyecto para manejar la inserción de la asignación. Esta regla mapeará EmployeeID y ProjectID a sus respectivos objetivos, utilizando NEWUUID() para generar un identificador único para la nueva relación proyecto-empleado.

Paso 3: Registrar la acción y el evento

Con la regla creada, agrégala como una acción dentro de un nuevo evento personalizado, como "AssignEmployee", en el objeto de negocio Employee. Para que esta operación funcione correctamente, establece el Refresh Scope en Global. Durante el registro, debes configurar dos registros de enlace para que la acción mapee el EmployeeID y el ProjectID compartido.

Paso 4: Implementar el control de UI

Para permitir que los usuarios activen la lógica, agrega un control de Button (etiquetado como "Assign") al panel de Employee. Asocia este botón con el evento personalizado "AssignEmployee" creado en el paso anterior.

Paso 5: Configurar el enlace del panel compartido

El paso final es establecer la relación real entre los paneles. En la pantalla de edición de la página, configura el enlace del panel para que el panel de Employee esté vinculado al panel de Projects.

Inicialmente, el sistema predeterminará un tipo de enlace estándar. Necesitarás seleccionar una columna para el padre (ProjectID) y el hijo. Una vez que se cree el registro, abre las propiedades de las columnas de enlace y cambia el Type de "Binding" a "Shared". Esto confirma que la relación está destinada únicamente a pasar el valor de ProjectID al objeto de negocio del panel hijo en lugar de filtrar los resultados del panel hijo en función de una coincidencia exacta.

Después de actualizar la aplicación, seleccionar un proyecto y hacer clic en Assign en un empleado vinculará exitosamente los dos registros. Este proceso demuestra cómo los datos pueden compartirse y actuarse de manera eficiente a través de los paneles.

Consejo

Los valores compartidos son altamente versátiles. Dependiendo de tu caso de uso específico, una columna compartida puede usarse dentro de declaraciones SELECT para visualización o referenciarse en cláusulas WHERE para impulsar la lógica de filtrado personalizada a través de acciones.