Créer des micro-apps
Un composant clé lié à la création de micro-apps consiste à planifier votre workflow tout en développant une bonne connaissance du schéma de base de données de l’application cible. Cette approche vous permet d’identifier les API nécessaires à la création de votre intégration, dont vous aurez besoin pour créer une intégration personnalisée.
Il existe de nombreuses applications qui peuvent être intégrées à Citrix Workspace. Sélectionnez une application cible qui peut être exploitée par les utilisateurs de Citrix Workspace. Les applications qui sont régulièrement utilisées pour des tâches rapides et qui ne sont pas intuitivement accessibles aux utilisateurs sont particulièrement intéressantes. Les applications exploitables permettant aux utilisateurs d’interagir directement depuis Citrix Workspace ont beaucoup plus de valeur que les applications qui permettent simplement de notifier les utilisateurs. Les exemples incluent l’approbation, la création et l’ajout d’éléments.
Identifiez ensuite les principaux cas d’utilisation de l’application d’entreprise cible sélectionnée que vous souhaitez intégrer à Citrix Workspace. Par exemple :
- Créer une demande de congés
- Approuver la demande de congés
- Rechercher les approbations en attente
- Marquer la tâche comme étant terminée
- Avertir l’utilisateur des tâches attribuées créées ou modifiées
- Approuver la facture
Une fois les cas d’utilisation déterminés, l’étape suivante consiste à identifier les API qui permettent d’extraire des informations pertinentes du système cible ou d’y injecter de nouvelles informations.
Vous trouverez ci-dessous un scénario de conception de workflow à l’aide d’un cas d’utilisation d’approbation de facture. Pour plus d’informations, consultez Exemple de scénario de conception de workflow.
Remarques importantes
Passez en revue les considérations et limitations suivantes avant de concevoir votre workflow :
- Vous pouvez accéder aux données d’une page éloignée que d’un seul niveau de relation. Cela signifie que lorsqu’une page est créée, vous ne pouvez traiter que des données directement liées à cette page.
- Toutes les personnalisations sont effectuées dans le contexte d’une adresse e-mail d’un utilisateur. Cela signifie que si vous créez des notifications ou créez des pages personnalisées, l’adresse e-mail de l’utilisateur ne doit être éloignée que d’un seul niveau de relation.
- Vous pouvez uniquement définir les liens d’action Aller à la page pour les notifications pointant vers une page basée sur la même table que la notification.
- Une page détaillée basée sur un enregistrement (c’est-à-dire une page utilisant un paramètre recordID) ne peut pas être définie en tant que page d’action. Assurez-vous qu’aucun composant n’est mappé à une valeur d’enregistrement. Par exemple, une page Détail ne doit pas être définie comme page d’action, sauf s’il s’agit d’un formulaire de saisie pur, tel que Ajouter une tâche.
- Une modification génère une notification. Si le destinataire se trouve dans la table associée, la relation doit être 1:1 ; les relations 1:N ne sont pas prises en charge.
- La table primaire est la table sur laquelle vous générez l’événement de notification.
- Il y a généralement un destinataire au maximum. Si le destinataire ne se trouve pas dans la table primaire, assurez-vous qu’il n’existe qu’un seul enregistrement correspondant dans la table non primaire pour chaque enregistrement de la table primaire. Par exemple, si vous créez une notification sur la table
pto_approval
, mais que deux approbateurs différents peuvent approuver cette requête dans la tablepto_approver
(relation « un-à-plusieurs » ou « one-to-many ») et que vous souhaitez les notifier tous les deux, ce n’est pas possible. Le moteur de notification choisit un seul approbateur au hasard. Si de nombreux cas de ce type se produisent, l’événement de notification n’est pas du tout évalué. - La relation attendue entre la table primaire et les autres tables est une relation 1:1. Cela signifie que pour chaque enregistrement de la table primaire, il y aura un enregistrement au maximum dans l’autre table. Ainsi, l’événement de notification ne peut jamais produire plus de messages de notification que le nombre de lignes de la table primaire. Si cette condition n’est pas respectée et que vous disposez de plusieurs enregistrements pour certains enregistrements de la table primaire, la duplication de données sous-jacentes se produira. Le moteur de notification choisit le premier enregistrement au hasard et ignore les doublons.
- Si une valeur dans la colonne de clé primaire est manquante ou correspond à un type non valide, l’enregistrement est ignoré lors de la synchronisation et un avertissement est généré dans le journal.
- Il existe des limites strictes pour protéger l’infrastructure, ainsi que les utilisateurs administrateurs contre la définition d’événements de notification incorrects. Le rapport maximal entre le nombre de lignes renvoyées par la requête de notification et le nombre de lignes de la table primaire est de 1.6:1. Par exemple, supposons qu’une table primaire contienne 130 lignes, mais que la requête de notification renvoie 416 lignes pour une raison quelconque. Cela correspondrait à 3,2 fois plus de lignes que prévu et la limite serait dépassée. Dans ce cas, l’événement de notification n’est pas évalué du tout et un avertissement est généré dans le journal.
- La structure de base de données doit être étroite en raison des limitations du serveur. Cette approche doit être prise en compte lors de la conception de vos points de terminaison et de la création d’une structure de base de données.
- Les messages de notification sont générés après l’évaluation de toutes les conditions. Le nombre maximal de messages de notification produits par une seule exécution de notification est de 100 000.
- Le nombre maximal d’enregistrements qu’une requête de notification peut renvoyer est de 1 000 000.
- Si vous avez configuré des champs personnalisés qui contiennent des données très sensibles, telles que des informations d’identification, des clés API ou des clés secrètes, les données ne sont pas protégées. Ces données apparaissent entre autres dans les journaux de débogage.
Remarque :
Tous les administrateurs ayant accès aux micro-apps Citrix Workspace ont accès aux données qui se trouvent dans le cache. Les administrateurs n’ont pas accès aux informations d’identification pour les sources de données.
Créer des micro-apps de base
Les micro-apps sont constituées de pages ou de notifications d’événements, généralement les deux.
-
Les notifications sont des micro-apps basées sur des événements qui avertissent automatiquement les utilisateurs lorsqu’un élément nécessite leur attention, par exemple en créant une fiche dans le flux d’activités Workspace, telle que Nouvelle note de frais pour approbation et Nouveau cours disponible pour enregistrement. La liste suivante présente les types de déclencheurs d’événement disponibles :
- Nouveaux enregistrements : permet d’envoyer une notification lors de la création d’un enregistrement dans la source de l’enregistrement (SoR).
- Enregistrements modifiés : permet d’envoyer une notification lorsqu’un enregistrement existant est modifié dans le SoR.
- Enregistrement correspondant : permet d’envoyer une notification lorsque les enregistrements correspondent à une requête définie à l’heure spécifique dans le SoR.
- Enregistrements supprimés : permet d’envoyer une notification lorsqu’un enregistrement actif est supprimé dans le SoR.
- Notification périodique : (action de l’utilisateur) permet d’envoyer périodiquement des notifications non basées sur les données.
- Rapport périodique : permet d’envoyer des notifications périodiques avec des données de rapport résumées (regroupement) au cours d’un intervalle de temps spécifié.
- Rappel de date : permet d’envoyer une notification à l’heure spécifiée avant ou après la valeur de la colonne de date des enregistrements.
-
Les pages sont des micro-apps initiées par l’utilisateur qui sont disponibles en tant qu’actions dans Workspace et facilitent l’exécution des actions initiées. Par exemple, Demander des congés, Envoyer un ticket au service d’assistance et Rechercher dans le répertoire. La liste suivante présente les modèles de type de page :
- Détail : permet de créer une page pour afficher les détails statiques d’un enregistrement individuel de votre SoR.
- Formulaire : permet de créer une page modifiable pour fournir des informations statiques en plus de la possibilité d’entrer des données utilisateur sur votre page.
- Tableau : permet de créer une page basée sur le chargement des tableaux de données multiples à partir de votre SoR d’application cible.
- Contenu statique : permet de créer une page pour afficher des informations statiques, non exploitables, telles que des titres, des messages d’erreur ou des rappels.
Ajouter une micro-app
Cette procédure est la même pour toutes les micro-apps vierges que vous souhaitez créer.
Procédez comme suit :
- Sur la page Intégrations de micro-apps ou sur la vue d’intégration (ouverte en sélectionnant l’intégration), sélectionnez le menu en regard de l’intégration à laquelle vous souhaitez ajouter la micro-app.
- Sélectionnez Ajouter une micro-app.
- Sélectionnez Modèle vide pour créer votre propre micro-app en fonction des besoins de votre entreprise. Une fois la micro-app vierge ajoutée, elle apparaît sous l’intégration associée sur la page Intégrations de micro-apps.
- Revenez à la page Gérer les micro-apps et sélectionnez Micro-app vierge dans la liste sous l’intégration. La page Propriétés s’ouvre.
- Donnez un nom et une description appropriés à la micro-app.
- Sélectionnez Icône de la micro-app et choisissez une icône appropriée dans le menu. Vous pouvez sélectionner des icônes d’application, des icônes d’action et de notification et des icônes de micro-app et de données.
Cloner une micro-app
Vous pouvez également cloner une micro-app existante pour créer une nouvelle micro-app. Cette micro-app existe dans la même intégration. Vous devez donner un nom unique à la nouvelle micro-app car aucune micro-app dans la même intégration ne peut avoir le même nom.
- Sur la page Intégrations de micro-apps ou sur la vue d’intégration (ouverte en sélectionnant l’intégration), sélectionnez le menu en regard de l’intégration que vous souhaitez copier, puis sélectionnez Cloner.
-
Renseignez le champ Nom de la nouvelle microapp, puis sélectionnez Cloner.
La nouvelle micro-app est ajoutée à la liste des micro-apps.
Remarque :
Vous pouvez également exporter et importer une nouvelle version de la micro-app à partir du même menu. Pour plus d’informations sur ces fonctionnalités, consultez Exporter et importer des intégrations et des micro-apps.
Exemple de scénario de conception de workflow
Vous disposez d’un système d’approbation de factures et vous devez prendre en compte les cas d’utilisation suivants dans le workflow :
- Les approbateurs doivent être notifiés lorsque de nouvelles approbations sont effectuées.
- Les demandeurs doivent être notifiés lorsque leur demande est approuvée ou refusée.
- Les approbateurs requièrent des informations sur les factures, y compris l’état, le prix total, les détails du demandeur (nom/adresse e-mail/numéro de téléphone) et une liste des détails de lignes (nom/prix/quantité).
- Les demandeurs requièrent des informations sur les factures, y compris le prix total, les détails de l’approbateur (nom/adresse e-mail/numéro de téléphone) et une liste des détails de lignes (nom/prix/quantité).
Examinons maintenant notre base de données et ses relations au niveau de la table :
Concevoir votre micro-app
Comme l’indique le schéma, vous avez besoin de quatre notifications et de cinq pages.
Vous devez créer quatre notifications, deux pour les approbateurs et deux pour les demandeurs. L’adresse e-mail de l’approbateur et du demandeur se trouvent dans la table utilisateur qui a une relation directe avec les tables approvers
et invoice-detail
.
Vous devez créer cinq pages, une pour chacun des éléments suivants : liste des factures des approbateurs, détails des factures des approbateurs, liste des factures des demandeurs, détails des factures des demandeurs et détails de lignes des approbateurs et des demandeurs.
Créer vos notifications
Commencez par créer les notifications. Toutes les considérations et limitations s’appliquent aux notifications. Les notifications doivent être envoyées par l’utilisateur. L’adresse e-mail de l’utilisateur doit se trouver dans la table ou n’être éloignée que d’un seul niveau de relation.
Créez les notifications pour les approbateurs sur la table approvers
:
- Notification pour un nouvel enregistrement dans la table
- Notification de changement d’état
Créez les notifications pour les demandeurs sur la table invoice_detail
:
- Notification pour un nouvel enregistrement dans la table
- Notification de changement d’état
Limitations de conception (approbateurs)
Les données relatives à la fiche de flux de l’approbateur ne peuvent être extraites que des tables suivantes :
-
approvers
(table primaire) -
invoice-detail
(relation “invoice_id”) -
users
(uniquement relation “approver_id”)
Cela signifie que vous ne pouvez pas transférer des données sur le demandeur vers la fiche de flux car les personnalisations sont effectuées à partir du contexte d’un e-mail utilisateur. Par exemple, si vous souhaitez obtenir le nom du demandeur, vous devez modifier le schéma de base de données et ajouter le nom du demandeur à la table invoice_detail
.
Limitations de conception (demandeurs)
Les données relatives à la fiche de flux du demandeur ne peuvent être extraites que des tables suivantes :
-
invoice-detail
(table primaire) -
users
(uniquement relation “requestor_id”)
Cela signifie que vous ne pouvez pas obtenir de données de line_items
et de approvers
car la relation est 1:N. Par exemple, le texte de la fiche de flux Votre demande a été approuvée par manager@company.com n’est pas possible. Si vous avez besoin de ces informations, vous devez modifier le schéma de base de données et ajouter ces informations à invoice_detail
.
Conclusions
À partir de ce scénario, vous pouvez déterminer que deux pages invoice_detail
doivent être créées :
- Approbateur des détails de facture que vous créez sur la table
approvers
- Demandeur des détails de facture que vous créez sur la table
invoice_detail
Il est maintenant clair qu’une limitation existe avec la page Approbateur des détails de facture. Vous pouvez ajouter toutes les données à partir des tables approvers
(table primaire), invoice-detail
(relation invoice_id
) et users
(uniquement relation approver_id
). Cependant, le même problème se pose avec la notification. Il manque des informations sur le demandeur et la table line_items
est trop éloignée, c’est-à-dire il existe un écart de deux niveaux de relation.
Solution
Il existe une solution pour obtenir des données à partir d’une table se trouvant à deux niveaux de relation.
Option 1 : utilisez “Aller à la page” (GotoPage). Vous pouvez ajouter un troisième bouton, tel que Voir les détails et déplacer vos utilisateurs de cette page vers la page Demandeur des détails de facture. Vous avez créé cette page sur la table invoice-detail
, de sorte que les tables requestor
et line_items
sont uniquement éloignées d’un niveau.
Option 2 : utilisez le composant de table dissocié. Désélectionnez l’option Utiliser les enregistrements liés à la page des détails et sélectionnez line_items
. Cela permet de créer une table avec tous les éléments. Vous devez ajouter un filtre pour sélectionner uniquement les éléments associés à une facture particulière. line_items
invoice_id = approvers
invoice_id. Vous pouvez utiliser une approche similaire pour requestor
. Comme la table est située au-dessus de line_items
, vous pouvez également ajouter des données à partir d’une table qui a une relation 1:1 ou N:1 avec line_items
.
Créer vos pages
Vous devez créer cinq pages, une pour chacune de ces tables :
- Liste des factures des approbateurs
- Détails des factures des approbateurs
- Liste des factures des demandeurs
- Détails des factures des demandeurs
- Détails de lignes des approbateurs et des demandeurs
Si vous devez employer des autorisations détaillées basées sur les attributions d’utilisateur, utilisez une micro-app distincte. Par exemple, votre workflow peut exiger que certains utilisateurs accèdent à une page de création. Pour obtenir une vue d’ensemble complète de l’interface utilisateur du générateur de pages et de ses composants, consultez la section Composants du générateur de pages. Le livre de recettes ci-dessous présente des étapes détaillées qui utilisent des composants utiles pour créer des pages de détails et de listes.
Livre de recettes de micro-apps
Suivez ces exemples de types courants de notifications et de pages que vous pouvez créer avec une liste d’ingrédients (composants) fournis.
Notifications
Créez une notification pour transmettre aux utilisateurs des éléments nouveaux ou modifiés de votre workflow. Sélectionnez parmi les types de déclencheur d’événement indiqués ci-dessous, puis personnalisez l’événement dans le générateur. Pour plus d’informations, consultez Créer des notifications d’événements.
Déclencheurs d’événement :
- Nouveaux enregistrements : permet d’envoyer une notification lors de la création d’un enregistrement dans la source de l’enregistrement (SoR).
- Enregistrements modifiés : permet d’envoyer une notification lorsqu’un enregistrement existant est modifié dans le SoR.
- Enregistrement correspondant : permet d’envoyer une notification lorsque les enregistrements correspondent à une requête définie à l’heure spécifique dans le SoR.
- Enregistrements supprimés : permet d’envoyer une notification lorsqu’un enregistrement actif est supprimé dans le SoR.
- Notification périodique : (action de l’utilisateur) permet d’envoyer périodiquement des notifications non basées sur les données.
- Rapport périodique : permet d’envoyer des notifications périodiques avec des données de rapport résumées (regroupement) au cours d’un intervalle de temps spécifié.
- Rappel de date : permet d’envoyer une notification à l’heure spécifiée avant ou après la valeur de la colonne de date des enregistrements.
Page Liste
Créez une page de listes pour afficher tous les éléments disponibles dans votre workflow. Commencez par utiliser les composants suivants. Pour obtenir un aperçu de la page terminée et des étapes détaillées pour la reproduire, consultez la section Créer une page de listes.
Composants :
- Tableau : permet d’ajouter un tableau en définissant la source, les filtres et les colonnes du tableau. Des actions de lien de page peuvent être ajoutées. Les requêtes personnalisées doivent être définies pour limiter l’exposition des données.
- Saisie de texte : définissez la source du texte en spécifiant la table de données, la colonne et la valeur à charger sur la page saisie par l’utilisateur. Le composant peut être marqué comme facultatif. La largeur du champ peut être modifiée. Les règles de validation peuvent être configurées en fonction d’une longueur minimale ou maximale ou d’un modèle de texte pour identifier les entrées utilisateur.
Page Détails
Créez une page comprenant des listes pour afficher les détails d’un élément disponible dans votre workflow. Commencez par utiliser les composants suivants. Pour obtenir un aperçu de la page terminée et des étapes détaillées pour la reproduire, consultez la section Créer une page de détails.
Composants :
- Texte : permet de définir la source et le format du texte à charger depuis le cache sur la page.
- Bouton Retour : permet aux utilisateurs de revenir à la page précédente.
- Texte statique : permet de définir le texte statique qui apparaît sur la page.
- Grille flexible : vous donne plus de contrôle sur le positionnement des composants sur vos pages. Cette option est utile lorsque vous concevez des pages destinées aux appareils dotés d’écrans plus grands. Définissez l’intitulé et le nombre total de cellules que vous souhaitez dans votre grille.
- Tableau : permet d’ajouter un tableau en définissant la source, les filtres et les colonnes du tableau. Des actions de lien de page peuvent être ajoutées. Les requêtes personnalisées basées sur les e-mails des utilisateurs peuvent être définies pour limiter l’exposition des données.
Page Créer
Créez une page de création pour ajouter des éléments à votre workflow. Commencez par utiliser les composants suivants. Pour obtenir un aperçu de la page terminée et des étapes détaillées pour la reproduire, consultez la section Créer une page de création.
Composants :
- Texte statique : permet de définir le texte statique qui apparaît sur la page.
- Grille flexible : vous donne plus de contrôle sur le positionnement des composants sur vos pages. Cette option est utile lorsque vous concevez des pages destinées aux appareils dotés d’écrans plus grands. Se compose d’éléments de grille. Définissez l’intitulé et le nombre total de cellules que vous souhaitez dans votre grille.
- Saisie de texte : définissez la source du texte en spécifiant la table de données, la colonne et la valeur à charger sur la page saisie par l’utilisateur. Le composant peut être marqué comme facultatif. La largeur du champ peut être modifiée. Les règles de validation peuvent être configurées en fonction d’une longueur minimale ou maximale ou d’un modèle de texte pour identifier les entrées utilisateur.
- Sélectionner : permet aux utilisateurs de choisir une option parmi une liste de valeurs définie. Ce champ est renseigné avec les données du système source. Vous pouvez également entrer manuellement la liste de valeurs. Des actions peuvent être ajoutées.
- Rechercher : permet aux utilisateurs de rechercher une grande quantité de valeurs et de sélectionner une valeur en recherchant un autre élément.
- Bouton : permet d’ajouter un composant sur la page sur lequel l’utilisateur peut cliquer en définissant les actions et la logique.
Intégration
Le modèle de page Intégration permet de restituer un iframe pour intégrer des pages Web personnalisées. La taille de l’iFrame est automatiquement ajustée en fonction de l’espace disponible sur la page. La fonction Intégration de page ne comporte aucun composant et n’est pas liée à une table de base de données, de même que la page Contenu statique. Cela signifie également que l’URL de la fonction Intégration de page ne peut pas utiliser de variables de modèle car aucune table de base de données n’est connectée. Pour plus d’informations, consultez la section Composant Intégration.
Autres ressources
Pour obtenir une présentation de Citrix Workspace Intelligence et du service de micro-apps, consultez cette vidéo Vidéo : Microapp Overview.
Pour en savoir plus sur la création d’intégrations personnalisées et de micro-apps, consultez cette vidéo Microapp Custom Integrations.
Pour en savoir plus sur l’obtention d’une instance de test, accédez à la page Citrix Workspace Developer Portal.
Consultez ce guide rapide pour configurer une micro-app RSS : Get notifications when there is a Citrix security bulletin.
Accédez au forum de discussions sur les micro-apps.