Microaplicaciones

Crear microaplicaciones

Un componente clave al crear microaplicaciones es planificar el flujo de trabajo teniendo presente el esquema de base de datos de la aplicación de destino. De este modo, se pueden identificar las API para crear la integración, lo que es necesario para generar una integración personalizada.

Existen innumerables aplicaciones que se pueden integrar en Citrix Workspace. Seleccione una aplicación de destino que contenga información de interés para los usuarios de Citrix Workspace. Las aplicaciones que se utilizan habitualmente para tareas rápidas y que no son intuitivamente accesibles para los usuarios son de especial interés. Las aplicaciones que permiten a los usuarios interactuar directamente desde Citrix Workspace tienen mucho más valor que las aplicaciones que simplemente permiten notificar a los usuarios. Algunos ejemplos incluyen la aprobación, la creación y la adición de elementos.

A continuación, identifique casos de uso clave para la aplicación empresarial de destino seleccionada que quiere integrar en Citrix Workspace. Por ejemplo:

  • Crear solicitud de días libres/vacaciones
  • Aprobar solicitud de días libres/vacaciones
  • Buscar aprobaciones pendientes
  • Marcar tarea como completada
  • Notificar al usuario de las tareas asignadas que se han creado o modificado
  • Aprobar factura

Una vez conocidos los casos de uso, el siguiente paso consiste en identificar las API que nos permitirán extraer información relevante del sistema de destino o inyectar datos en él.

A continuación, se muestra un supuesto de diseño de un flujo de trabajo mediante un caso de uso de aprobación de facturas. Para obtener información detallada, consulte Diseño de flujo de trabajo para supuesto de ejemplo.

Consideraciones importantes

Revise las siguientes consideraciones y limitaciones antes de diseñar el flujo de trabajo:

  • Solamente puede acceder a los datos de una página que están a una relación de distancia. Esto significa que, al generarse una página, solo puede referirse a datos directamente relacionados.
  • Todas las personalizaciones se realizan desde el contexto de un correo electrónico de usuario. Esto significa que, si está creando notificaciones o páginas personalizadas, el correo electrónico del usuario puede estar a un máximo de un nivel de relación.
  • Solo puede establecer enlaces de acción Ir a la página para notificaciones asociadas a una página basada en la misma tabla que la notificación.
  • Una página de detalles basada en registros (es decir, una página que utiliza un recordID) no se puede establecer como página de acción. Asegúrese de que ningún componente está asignado a un valor de registro. Por ejemplo, una página de detalles no debe establecerse como página de acción, a menos que sea un formulario de entrada puro, como Agregar una tarea.
  • Un cambio genera una notificación. Si el destinatario está en la tabla relacionada, la relación debe ser 1:1. No se admiten relaciones 1:N.
  • La tabla principal es la tabla en la que se genera el evento de notificación.
  • Se espera que haya como máximo un destinatario. Si el destinatario no está en la tabla principal, asegúrese de que solo hay un registro coincidente en la tabla no principal para cada registro de la tabla principal. Por ejemplo, si crea una notificación sobre la tabla pto_approval, pero puede haber dos aprobadores diferentes que pueden aprobar esa solicitud en la tabla pto_approver (denominada relación uno a varios) y quiere notificarlos a ambos, esto no es posible. El motor de notificaciones solo selecciona un aprobador aleatoriamente. Si hay muchos casos de este tipo, el evento de notificación no se evalúa.
  • La relación prevista entre la tabla principal y otras tablas es 1:1. Esto significa que para cada registro de la tabla principal habrá como máximo un registro en la otra tabla. Por lo tanto, el evento de notificación nunca puede producir más mensajes de notificación que el número de filas de la tabla principal. Si se infringe esta condición y tiene más de un registro para algunos registros de la tabla principal, habrá duplicación en los datos subyacentes. El motor de notificaciones seleccionará aleatoriamente solo el primer registro e ignorará los duplicados.
  • Si falta algún valor en la columna de la clave principal o tiene un tipo no válido, el registro se omite durante la sincronización y se genera una advertencia.
  • Hay una serie de límites estrictos para proteger la infraestructura y también a los usuarios administradores de la definición de eventos de notificación incorrectos. La relación máxima del número de filas devueltas por la consulta de notificación en comparación con el número de filas de la tabla principal es 1.6:1. Por ejemplo, supongamos que una tabla principal contiene 130 filas, pero la consulta de notificación devuelve 416 filas por alguna razón. Esto sería 3,2 veces más de lo previsto y superaría este límite. En este caso, el evento de notificación no se evalúa en absoluto y, en su lugar, se imprime una advertencia en el registro.
  • La estructura de la base de datos debe ser estrecha debido a las limitaciones del servidor. Esto debe tenerse en cuenta al diseñar los puntos finales y crear una estructura de base de datos.
  • Los mensajes de notificación se generan después de evaluar todas las condiciones. El número máximo de mensajes de notificación generados en un único proceso de notificación es 100 000.
  • El número máximo de registros que puede devolver una consulta de notificación es 1 000 000.
  • Si ha configurado campos personalizados que contienen datos altamente confidenciales, como credenciales, claves de API o secretos, los datos no están protegidos. Esos datos aparecen en los registros de depuración y en otros lugares.

Nota:

Todos los administradores con acceso a las microaplicaciones de Citrix Workspace tienen acceso a los datos que se encuentran en la caché. Los administradores no tienen acceso a las credenciales de orígenes de datos.

Fundamentos de la creación de microaplicaciones

Las microaplicaciones se componen de páginas o notificaciones de eventos, y generalmente ambas.

  • Las notificaciones son microaplicaciones controladas por eventos que notifican automáticamente a los usuarios cuando algo requiere su atención; por ejemplo, una tarjeta en el feed de actividades de Workspace. Estas microaplicaciones incluyen un Nuevo informe de gastos por aprobar y un Nuevo curso disponible para registro. En la siguiente lista, se muestran los tipos de desencadenantes de eventos disponibles:

    • Nuevos registros: Envía una notificación cuando se crea un nuevo registro en el origen del registro (SoR).
    • Registros cambiados: Envía una notificación cuando cambia un registro existente en el SoR.
    • Registro coincidente: Envía una notificación cuando los registros coinciden con una consulta definida en el momento específico en el SoR.
    • Eliminar registros: Envía una notificación cuando se elimina un registro en el SoR.
    • Notificación periódica: (acción del usuario) Envía periódicamente notificaciones no basadas en datos.
    • Informe periódico: Envía notificaciones periódicas con datos de informe resumidos (agrupación) durante un intervalo de tiempo especificado.
    • Recordatorio de fecha: Envía una notificación a la hora especificada, antes o después del valor de la columna de fecha de los registros.
  • Las páginas son microaplicaciones iniciadas por el usuario que están disponibles como acciones en Workspace y facilitan la realización de acciones de inicio. Por ejemplo, Solicitar días libres, Enviar un tíquet de servicio de asistencia y Buscar en el directorio. La lista siguiente muestra las plantillas de tipo de página:

    • Detalles: Genera una página en la que se muestran detalles estáticos de un registro individual del SoR.
    • Formulario: Genera una página modificable que proporciona detalles estáticos, además de la posibilidad de introducir datos de usuario en la página.
    • Tabla: Genera una página basada en las distintas tablas de datos que se cargan desde el SoR de la aplicación de destino.
    • Contenido estático: Genera una página que proporciona información estática y no procesable, como titulares, mensajes de error y recordatorios.

Agregar una nueva microaplicación

Este procedimiento es el mismo para cualquier microaplicación en blanco que quiera crear.

Siga estos pasos:

  1. Desde la página Integraciones de microaplicaciones o en la vista de la integración (se abre al seleccionar la integración), seleccione el menú que aparece junto a la integración a la que quiere agregar la microaplicación.
  2. Seleccione Agregar microaplicación.
  3. Seleccione Plantilla en blanco para crear su propia microaplicación, en función de sus necesidades empresariales. Tras agregar la microaplicación en blanco, aparece bajo la integración relacionada en la página Integraciones de microaplicaciones.
  4. Vuelva a la página Administrar microaplicaciones y seleccione Microaplicación en blanco en la lista, bajo la integración. Se abrirá la página Propiedades.
  5. Asígnele un nombre y una descripción.
  6. Seleccione Icono de microaplicación y elija un icono en el menú. Hay iconos de aplicación, iconos de acción y notificación e iconos de microaplicaciones y datos entre los que elegir.

Clonar una microaplicación

También puede clonar una microaplicación existente para crear una nueva microaplicación. Esta microaplicación reside en la misma integración. Debe darle a la nueva microaplicación un nombre único, ya que no puede haber dos microaplicaciones con el mismo nombre en la misma integración.

  1. En la página Integraciones de microaplicaciones o en la vista de la integración (se abre al seleccionar la integración), seleccione el menú que aparece junto a la microaplicación que quiere copiar y, a continuación, seleccione Clonar.
  2. Introduzca un Nombre de la nueva microaplicación en el campo y seleccione Clonar.

    La nueva microaplicación se agrega a la lista de microaplicaciones.

Nota:

También puede exportar e importar una nueva versión de la microaplicación desde el mismo menú. Para obtener más información sobre estas funciones, consulte Exportar e importar integraciones y microaplicaciones.

Diseño de flujo de trabajo para supuesto de ejemplo

Tiene un sistema de aprobación de facturas y necesita incluir los siguientes casos de uso en nuestro flujo de trabajo:

  • A los aprobadores se les deberá notificar cuando haya nuevas aprobaciones.
  • A los solicitantes se les deberá notificar cuando su solicitud haya sido aprobada o denegada.
  • Los aprobadores necesitan información sobre las facturas, incluidos el estado, el precio total, los detalles del solicitante (nombre/correo electrónico/teléfono) y una lista de detalles del artículo de línea (nombre/precio/cantidad).
  • Los solicitantes necesitan información sobre las facturas, incluidos el precio total, la lista de detalles de los aprobadores (nombre/correo electrónico/teléfonos) y una lista de detalles del artículo de línea (nombre/precio/cantidad).

Examinemos ahora nuestra base de datos, y sus relaciones de tabla: Esquema de base de datos y sus relaciones de tabla

Diseñar una microaplicación

A partir de aquí, sabemos que necesitamos cuatro notificaciones y cinco páginas.

Necesitamos crear cuatro notificaciones: dos para aprobadores y dos para solicitantes. El correo electrónico del aprobador y el solicitante están en la tabla de usuario que tiene una relación directa con las tablas approvers y invoice-detail.

Debe crear cinco páginas, una para cada uno de los siguientes elementos: lista de facturas de aprobadores, detalles de facturas de aprobadores, lista de facturas de solicitantes, detalles de facturas de solicitantes y detalles de artículos de línea de aprobadores y solicitantes.

Generar las notificaciones

Comience por crear las notificaciones. Todas las consideraciones y limitaciones se aplican a las notificaciones. Las notificaciones debe enviarlas el usuario. El correo electrónico del usuario debe estar en la tabla o a un nivel de relación de distancia como máximo.

Genere las notificaciones para los aprobadores en la tabla approvers:

  • notificación de nuevo registro en la tabla
  • notificación de cambio de estado

Genere las notificaciones para los solicitantes en la tabla invoice_detail:

  • notificación de nuevo registro en la tabla
  • notificación de cambio de estado

Limitaciones de diseño (aprobadores)

Los datos de la tarjeta de feeds del aprobador solo se pueden extraer de estas tablas:

  • approvers (tabla principal)
  • invoice-detail ( relación invoice_id)
  • users ( solo relación approver_id)

Esto significa que no puede obtener ningún dato sobre el solicitante en la tarjeta de feeds, ya que las personalizaciones se hacen a partir del contexto del correo electrónico de un usuario. Por ejemplo, si quiere tener el nombre del solicitante, debe cambiar el esquema de la base de datos y agregar el nombre del solicitante a la tabla invoice_detail.

Limitaciones de diseño (solicitantes)

Los datos de la tarjeta de feeds del solicitante solo se pueden extraer de estas tablas:

  • invoice-detail (tabla principal)
  • users ( solo relación requestor_id)

Esto significa que no puede obtener datos de line_items y approvers debido a que la relación es 1:N. Por ejemplo, el texto de tarjeta de feeds Su solicitud ha sido aprobada por manager@empresa.com. no es posible. Si necesita esta información, debe cambiar el esquema de la base de datos y agregar esta información a invoice_detail.

Conclusiones

A partir de aquí, puede determinar que debe haber dos páginas invoice_detail:

  • Aprobador de detalles de factura que creó en la tabla approvers
  • Solicitante de detalles de factura que creó en la tabla invoice_detail

Ahora puede reconocer que tiene una limitación aquí con la página Aprobador de detalles de factura. Puede agregar todos los datos de las tablas approvers (tabla principal), invoice-detail (relación invoice_id) y users (solo relación approver_id). Sin embargo, tiene el mismo problema que con la notificación. Falta información del solicitante y la tabla line_items está demasiado lejos: es decir, dos niveles de relación.

Solución temporal

Hay una solución temporal para obtener datos de una tabla situada a dos niveles de relación.

Opción 1 Use GoToPage. Puede agregar un tercer botón, como Ver detalles y transferir a los usuarios de esta página a la página Solicitante de detalles de factura. Ha creado esa página en la tabla invoice-detail, por lo que las tablas requestor y line_items están a solo un nivel de distancia.

Opción 2 Utilice el componente de tabla desvinculada: anule la selección de la opción Usar registros relacionados con la página de detalles y puede seleccionar line_items. Así se crea una tabla con todos los elementos. Debe agregar un filtro para seleccionar solo artículos para la factura en particular. line_items invoice_id =approvers invoice_id. Puede usar un enfoque similar para requestor. Como la tabla está sobre line_items, también puede agregar datos de una tabla que tiene relación 1:1 o N:1 con line_items.

Generar las páginas

Necesita crear cinco páginas, una para cada una de estas tablas:

  • lista de facturas de aprobadores
  • detalles de factura de aprobadores
  • lista de facturas de solicitantes
  • detalles de factura de solicitantes
  • detalles de artículos de línea de aprobadores y solicitantes

Si necesita dar cabida a permisos detallados basados en asignaciones de usuario, use una microaplicación independiente. Por ejemplo, es posible que el flujo de trabajo requiera que solo determinados usuarios tengan acceso a una página de creación. Para obtener una descripción completa de la interfaz de usuario del generador de páginas y sus componentes, consulte Componentes del generador de páginas. El recetario que aparece a continuación incluye un proceso detallado en el que se aprovechan componentes útiles para crear páginas de detalles y de lista.

Recetario de microaplicaciones

Siga estos ejemplos de tipos comunes de notificaciones y páginas que puede crear con una lista de ingredientes (componentes) proporcionados.

Notificaciones

Genere una notificación para enviar elementos nuevos o modificados desde su flujo de trabajo a los usuarios. Seleccione uno de los tipos de desencadenantes de eventos que se muestran a continuación y personalice el evento en el generador. Para obtener más información, consulte Generar notificaciones de eventos.

Desencadenantes de eventos:

  • Nuevos registros: Envía una notificación cuando se crea un nuevo registro en el origen del registro (SoR).
  • Registros cambiados: Envía una notificación cuando cambia un registro existente en el SoR.
  • Registro coincidente: Envía una notificación cuando los registros coinciden con una consulta definida en el momento específico en el SoR.
  • Eliminar registros: Envía una notificación cuando se elimina un registro en el SoR.
  • Notificación periódica: (acción del usuario) Envía periódicamente notificaciones no basadas en datos.
  • Informe periódico: Envía notificaciones periódicas con datos de informe resumidos (agrupación) durante un intervalo de tiempo especificado.
  • Recordatorio de fecha: Envía una notificación a la hora especificada, antes o después del valor de la columna de fecha de los registros.

Página de lista

Genere una página de lista para mostrar todos los elementos disponibles en el flujo de trabajo. Comience con los siguientes componentes. Para ver la página terminada y los detalles paso a paso para reproducirla, consulte Generar una página de lista.

Componentes:

  • Tabla: Agrega una tabla definiendo el origen de la tabla, los filtros y las columnas. Se pueden agregar acciones de enlace a páginas. Se deben configurar consultas personalizadas para limitar la exposición de los datos.
  • Entrada de texto: Define el origen de texto especificando la tabla de datos, la columna y el valor que se van a cargar en la página introducida por el usuario. El componente se puede marcar como opcional. El ancho del campo se puede modificar. Las reglas de validación se pueden configurar en función de una longitud mínima o máxima o un patrón de texto para identificar la entrada del usuario.

Página de detalles

Genere una página de lista para ver los detalles de un elemento disponible en el flujo de trabajo. Comience con los siguientes componentes. Para ver la página terminada y los detalles completos para reproducirla, consulte Generar una página de detalles.

Componentes:

  • Texto: Define el origen y el formato del texto para carga desde la caché en la página.
  • Botón Atrás: Permite a los usuarios volver a la página anterior.
  • Texto estático: Define texto estático que aparecerá en la página.
  • Cuadrícula flexible: Le ofrece un mayor control sobre el posicionamiento de los componentes en las páginas. Es útil al diseñar páginas destinadas a dispositivos con pantallas más grandes. Establezca la etiqueta y el número total de celdas que quiera en la cuadrícula.
  • Tabla: Agrega una tabla definiendo el origen de la tabla, los filtros y las columnas. Se pueden agregar acciones de enlace a páginas. Se pueden configurar consultas personalizadas basadas en los correos electrónicos de los usuarios para limitar la exposición de los datos.

Página de creación

Genere una página de creación para agregar elementos al flujo de trabajo. Comience con los siguientes componentes. Para ver la página terminada y los detalles completos para reproducirla, consulte Generar una página de creación.

Componentes:

  • Texto estático: Define texto estático que aparecerá en la página.
  • Cuadrícula flexible: Le ofrece un mayor control sobre el posicionamiento de los componentes en las páginas. Es útil al diseñar páginas destinadas a dispositivos con pantallas más grandes. Consta de elementos de cuadrícula. Establezca la etiqueta y el número total de celdas que quiera en la cuadrícula.
  • Entrada de texto: Define el origen de texto especificando la tabla de datos, la columna y el valor que se van a cargar en la página introducida por el usuario. El componente se puede marcar como opcional. El ancho del campo se puede modificar. Las reglas de validación se pueden configurar en función de una longitud mínima o máxima o un patrón de texto para identificar la entrada del usuario.
  • Seleccionar: Permite a los usuarios elegir entre una lista de valores. Se puede rellenar con datos del sistema de origen o puede introducirse la lista de valores manualmente. Se pueden agregar acciones.
  • Buscar: Permite a los usuarios buscar a través de una gran cantidad de valores y seleccionar un valor al buscar otra cosa.
  • Botón: Agrega a la página un componente en el que se puede hacer clic con acciones y lógica.

Insertar

La plantilla de página Insertar genera un iframe para insertar páginas web personalizadas. El tamaño del iframe se ajusta automáticamente al espacio disponible en la página. La página Insertar no tiene ningún componente ni está vinculada a una tabla de base de datos, de forma análoga a la página Contenido estático. Esto también significa que la URL de la página de inserción no puede utilizar variables de plantilla, ya que no hay una tabla de base de datos conectada. Para obtener información sobre el componente Insertar, consulte Componente de inserción.

Otros recursos

Consulte esta descripción general de Citrix Workspace Intelligence y el servicio de microaplicaciones en Vídeo: Descripción general de Microaplicaciones.

Obtenga información sobre cómo crear integraciones personalizadas y microaplicaciones en Vídeo: Integraciones personalizadas de microaplicaciones.

Puede obtener más información sobre cómo obtener una instancia de prueba en el portal para desarrolladores de Citrix Workspace.

Esta es una guía rápida para configurar una Microaplicación RSS: Recibir notificaciones cuando haya un boletín de seguridad de Citrix.

Visite el Foro de debate sobre microaplicaciones.

Crear microaplicaciones