Créer une application canevas
Power Apps est une plateforme à haute productivité pour les applications métier. Vous pouvez créer des applications personnalisées au pixel près avec la puissance d’un canevas vide dans Power Apps Studio. Pour les partager avec vos utilisateurs, affichez l’application dans le navigateur ou intégrez-la dans divers conteneurs comme les sites Teams et SharePoint.
Les expériences de base de l’utilisateur final pour les solutions du modèle Approvisionnement SAP sont créées en utilisant des applications canevas et peuvent facilement être étendues pour prendre en charge les exigences locales de votre entreprise. Pour commencer, suivez les modèles et les meilleures pratiques dans cet article.
Suivre les meilleures pratiques et les normes
Toutes les applications sont développées en utilisant les meilleures pratiques et les normes publiées. Nous vous recommandons d’adopter des meilleures pratiques et des normes identiques ou similaires lorsque vous étendez ou créez de nouvelles applications.
Standard | Commentaires | Plus d’informations |
---|---|---|
Statut de la fonctionnalité | Fonctionnalités activées ou désactivées par défaut. Comprend un sous-ensemble de fonctionnalités en version préliminaire, à l’exception des fonctionnalités expérimentales. | Comprendre les fonctionnalités expérimentales, version préliminaire et obsolètes dans les applications canevas |
Réactivité | Réactif à un seul type d’appareil, comme une tablette ou un appareil mobile. Permet à l’application de s’adapter à différentes tailles d’écran et de conteneur standard, y compris l’intégration des applications dans Microsoft Teams. Utilise des contrôles de conteneur réactifs à disposition automatique de manière extensive. | Création d’applications canvas réactives |
Normes d’affectation de noms et de codage | Les contrôles, les variables, les collections et les normes d’affectation de noms de Dataverse sont suivis pour faciliter la découverte et la maintenance. | Power Apps Normes et directives de codage des applications Canvas |
Accessibilité | Propriétés qui prennent en charge l’accessibilité. Par exemple, Étiquettes accessibles, Rôles, En direct, Épaisseur de la bordure de focus, Contraste des couleurs et Ordres de tabulation. Ces propriétés évitent les modèles de conception connus qui ne prennent pas en charge les exigences d’accessibilité. | Créer des applications canevas accessibles et Limitations d’accessibilité dans les applications canevas |
Performances | Les meilleures pratiques sont suivies pour éviter les limitations de performances connues. | Conseils et bonnes pratiques pour améliorer les performances des applications canvas |
Thèmes de couleur des applications globales
Toutes les applications suivent un thème personnalisé et peuvent être modifiées en fonction du thème de couleur préféré de votre organisation. Une variable globale est définie dans les propriétés App.OnStart dans toutes les applications. Cette variable est utilisée par la plupart des propriétés liées à la couleur dans tous les contrôles de l’application. La modification de la variable de thème de couleur globale dans un emplacement a un effet immédiat sur l’ensemble de l’application après l’exécution de l’événement App.OnStart.
Important
Bien qu’il soit possible de modifier diverses propriétés de la palette de couleurs, nous vous recommandons de ne modifier que la propriété de la couleur primaire dans la variable de thème globale.
Set(
varThemeColors,
{
background: ColorValue("#FAF9F8"),
backgroundFill: ColorValue("#FFFFFF"),
backgroundFillDisabled: ColorValue("#F3F2F1"),
text: ColorValue("#201F1E"),
altText: ColorValue("#FFFFFF"),
disabledText: ColorValue("#A19F9D"),
primary: ColorValue("#0078D4"),
secondary: ColorValue("#EFF6FC"),
tertiary: ColorValue("#005A9E"),
primaryGray: ColorValue("#8A8886"),
secondaryGray: ColorValue ("#C8C6C4"),
tertiaryGray: ColorValue("#605E5C"),
requiredRed: ColorValue("#A80000"),
lookupBlue: ColorValue("#0078D4")
}
)
Ajouter votre logo d’entreprise
Ajoutez votre logo d’entreprise aux applications en chargeant d’abord le fichier image de votre logo d’entreprise dans l’application, puis en l’ajoutant au composant ScreenHeader.
Plus d’informations : Utilisation de fichiers multimédias dans les applications canevas
Prise en charge de la localisation et des applications globales
Toutes les applications canevas prennent en charge la langue anglaise. Cependant, toutes les applications sont conçues pour être prêtes pour la localisation et peuvent être gérées pour prendre en charge d’autres langues. Les propriétés de largeur du contrôle doivent être modifiées directement en fonction des langues choisies pour le déploiement.
Modèle de localisation de chaîne
- Dans la propriété OnVisible du premier écran lors du lancement de l’application, l’application lit le paramètre de langue du navigateur de l’utilisateur et détermine la valeur de choix Code de langue ISO correspondante.
Set(
varISOUserLanguageCode,
Switch(
Left(
Language(),
2
),
"ar",
'ISO Language Code'.ar,
"de",
'ISO Language Code'.de,
"en",
'ISO Language Code'.en,
"es",
'ISO Language Code'.es,
"fr",
'ISO Language Code'.fr,
"he",
'ISO Language Code'.he,
"it",
'ISO Language Code'.it,
"ja",
'ISO Language Code'.ja,
"pt",
'ISO Language Code'.pt,
"zh",
'ISO Language Code'.zh,
'ISO Language Code'.en
)
)
Note
Les propriétés du contrôle d’étiquette et d’entrée tentent d’anticiper la largeur de la valeur de texte localisée, mais peuvent ne pas toujours réussir compte tenu de la complexité de ce calcul. Par conséquent, nous vous recommandons de toujours tester et d’apporter des modifications mineures aux applications une fois les chaînes localisées et les modifications effectuées.
Astuce
Des langues supplémentaires peuvent être ajoutées et prises en charge en ajoutant d’autres valeurs au composant de choix Code de langue ISO contenu dans la solution Base SAP.
L’application interroge l’entité Localisation de SAP de Dataverse pour les chaînes qui ont été localisées selon la langue de l’utilisateur et les met en cache localement dans une collection.
ClearCollect(
colUserLocalizedStrings,
Filter(
'SAP Localizations',
Language = varISOUserLanguageCode,
'SAP Localizations (Views)'.'Active SAP Localizations'
)
)
Toutes les propriétés liées au texte dans divers contrôles comme Text, HintText, Accessible Label, InputTextPlaceholder, NoSelectionText et ToolTips ont des formules qui recherchent d’abord une chaîne localisée équivalente. Si elle ne trouve pas de chaîne équivalente, elle utilise par défaut l’anglais, qui est défini dans la propriété Text au sein du bloc With.
With(
{Text: "Vendor name"},
If(
IsBlank(
LookUp(
colUserLocalizedStrings,
'English Value' = Text
).'Localized Value'
),
Text,
LookUp(
colUserLocalizedStrings,
'English Value' = Text
).'Localized Value'
)
)
Pour les contrôles de zone de liste déroulante qui filtrent les valeurs de la table Liste de valeurs SAP, le Code de langue ISO mappé de l’utilisateur dans le paramètre de son navigateur est toujours appliqué aux critères de filtre, en affichant par défaut l’anglais si aucune liste de valeurs n’est administrée pour sa langue.
Sort(
Filter(
'SAP List of Values',
Status = 'Status (SAP List of Values)'.Active,
Domain = 'Domain (SAP List of Values)'.Country,
Language = varISOUserLanguageCode
),
'Display Value'
)
Paramètres régionaux du navigateur
Tous les champs de nombre, de date et d’heure dans les applications canevas respectent les paramètres régionaux du navigateur de l’utilisateur par défaut. Par exemple, une date affichée sous la forme 3/23/2023 pour un utilisateur qui utilise les États-Unis comme paramètres régionaux s’affiche sous la forme 23.03.2023 pour un utilisateur qui utilise l’Allemagne comme paramètres régionaux.
Pour plus d’informations : Créer une prise en charge globale dans les applications canevas
Composants
Les composants sont un excellent moyen de simplifier le processus de développement et de maintenance des applications et aident à améliorer les performances.
Pour les domaines où une expérience utilisateur commune est nécessaire, en interne ou entre les applications, les composants sont configurés. Compte tenu des limitations des bibliothèques de composants pour prendre en charge des paramètres comme l’accès à la portée de l’application et aux flux de cloud intégrés, les composants locaux peuvent être utilisés dans toutes les applications, puis peuvent être importés dans d’autres applications.
Par exemple, le composant VendorSearch est utilisé dans toutes les applications qui prennent en charge les processus d’approvisionnement au paiement et il a été principalement créé dans l’application Gestion des fournisseurs SAP et importé pour être utilisé dans les autres applications d’approvisionnement au paiement.
Avertissement
Une conséquence négative de l’utilisation des composants locaux de l’application par rapport aux bibliothèques de composants est que si une modification est déterminée, ces modifications doivent être apportées à toutes les applications qui ont déjà importé ce composant.
Composants courants utilisés dans les applications :
Composant | Description |
---|---|
ScreenHeader | En-tête courant dans tous les écrans |
LeftNavigation | Navigation principale qui permet un accès rapide à d’autres applications pilotées par la source Élément de menu Dataverse |
CommandBar | Liste de contrôles courants pour les objets créer, modifier, enregistrer, annuler, rechercher, recherche récente ou recherche avancée |
ScreenTabs | Groupes de composants logiques organisés ensemble dans des onglets pour faciliter la navigation |
NoItemsDisplay | Les éléments sont affichés dans des grilles lorsqu’aucun enregistrement n’est présent |
ObjectNameSearch | Les composants de recherche d’objets SAP courants sont inclus dans l’application appropriée où ils sont utilisés et peuvent être importés dans d’autres applications si nécessaire. Les exemples comprennent VendorSearch, GLAccountSearch, MaterialSearch et RequisitionSearch |
Pour plus d’informations : Vue d’ensemble des composants de canevas
Champs SAP supplémentaires
Chaque implémentation SAP est différente et vous devrez ajouter vos propres champs qui prennent en charge vos processus métier. Par conséquent, un vaste espace d’écran et des considérations de conception ont été implémentées pour vous permettre d’ajouter facilement les champs nécessaires.
Conteneurs de contrôle courants
La plupart des contrôles sont contenus dans un conteneur composé à la fois d’un contrôle d’étiquette et d’entrée. Par exemple, le champ pour capturer le nom du fournisseur dans l’application Gestion des fournisseurs SAP est composé d’un contrôle Label et Text Input, comme illustré dans la capture d’écran qui suit. Pour ajouter un nouveau champ, copiez un contrôle de conteneur existant et collez-le dans le composant réactif approprié, en mettant à jour les noms, le texte et les champs mappés.
Note
Il existe des conteneurs similaires pour d’autres types de contrôles d’entrée comme Zones de liste déroulante, Sélecteurs de date et Boutons.
Conteneurs réactifs
Les applications sont conçues pour être réactives au type de tablette/d’appareil de bureau en utilisant des contrôles de conteneur verticaux et horizontaux comme ceux illustrés dans la capture d’écran qui suit. Ces conteneurs sont configurés pour avoir des points de départ pour les propriétés telles que height, width, LayoutMinHeight, LayoutMinWidth et Wrap. À mesure que vous ajoutez des champs à ces conteneurs, assurez-vous que ces propriétés sont également mises à jour pour continuer à gérer la réactivité de manière appropriée.
Pour plus d’informations : Conteneurs à disposition automatique
Se connecter à d’autres données
La puissance des applications canevas réside dans le fait qu’elles peuvent facilement se connecter à des centaines d’autres systèmes et applications en toute sécurité en utilisant leur bibliothèque de connecteurs natifs.
Par exemple, si votre processus de commande fournisseur Approvisionnement SAP nécessite des données des opportunités de prévente en amont qui existent dans un système CRM pour terminer le processus, vous pouvez utiliser les connecteurs Salesforce ou Dataverse pour les intégrer à Dynamics 365 afin que vous puissiez facilement ajouter ces données à l’application Commande fournisseur SAP en sélectionnant simplement un bouton.
De plus, si vous avez un système propriétaire interne ou un système sans connecteur natif, vous pouvez travailler avec votre équipe informatique pour créer un connecteur personnalisé qui permet à Power Apps d’interagir facilement avec ce système via une API prise en charge.
Pour plus d’informations :
Gestion des erreurs d’application
Tous les appels de flux intégrés évaluent un champ de statut de réponse renvoyé par les flux par défaut et le gèrent en envoyant un message via la fonction Notify. Pour en savoir plus, consultez Gestion des erreurs.
If(
!IsBlank(FirstError.Message),
Patch(
'SAP Integration Errors',
Defaults('SAP Integration Errors'),
{
Action: FirstError.Source,
'Additional Information': App.ActiveScreen.Name,
'Error Message': FirstError.Message,
Name: "SAP Vendor Management",
'Source Type': 'Source Type (SAP Integration Errors)'.'Power App',
'Workflow Status': 'Workflow Status (SAP Integration Errors)'.Failed
}
);
Trace(FirstError.Message);
Error(FirstError);
)
Toutes les exceptions inattendues générées par l’application sont gérées dans la propriété App.OnError où un enregistrement Erreur de modèle de solution SAP est créé avant que l’erreur ne soit renvoyée et suivie. Les administrateurs peuvent afficher les détails de l’erreur et mettre des déclencheurs en place pour recevoir des alertes sur les exceptions non gérées de l’application, comme indiqué dans le document Surveiller les erreurs.
Pour plus d’informations : Propriété OnError
Contenu associé
- Que sont les applications canvas ?
- Comprendre Power Apps Studio
- Créer une application canevas à partir d’une solution
- Création d’interface utilisateur réutilisable avec un framework de composants et des composants d’applications canvas Power Apps
- Administrer Microsoft Power Platform
- Applications Canvas pour les développeurs d’entreprise, les partenaires et les éditeurs de logiciels indépendants
Étapes suivantes
Étendez les applications pilotées par modèle et Dataverse