Afficher un document dans le PdfViewer de Power Apps

Limitations techniques du composant :

  • L’architecture de sécurité de Power Apps nécessite que le contrôle PDF Viewer soit compatible uniquement avec les liens HTTPS, pas HTTP.
  • La propriété Document doit être liée directement au fichier PDF. Les redirections de serveur ou les vues HTML du document ne sont pas prises en charge.
  • Le serveur qui héberge le document ne doit pas exiger d’authentification.
  • Il est possible que vous ne puissiez pas afficher un document PDF dans votre application si le document réside sur un serveur qui a des paramètres restrictifs de partage de ressources d’origine croisée (CORS). Pour résoudre ce problème, le serveur qui héberge les documents PDF doit autoriser les demandes d’origine croisée provenant de powerapps.com.
  • Les utilisateurs de l’application peuvent contourner ces limitations en ouvrant des documents PDF dans un navigateur externe, comme demandé si le contrôle ne peut pas ouvrir un document. Cette option est également disponible dans le menu de contrôle pour tous les documents externes.

Contexte : 

Il y a quelques jours, un client m’a demandé d’afficher un fichier PDF en cliquant sur un bouton Power Apps. (Ce fichier est déjà stocké dans une bibliothèque SharePoint).

 

Bien que Power Apps dispose déjà d’un contrôle permettant à l’utilisateur de voir le PDF dans Power Apps, l’utilisation de ce contrôle n’est pas simple à cause de l’architecture de sécurité qui nécessite que le contrôle PDF Viewer soit des liens HTTPS, et pas http.

Voici donc un tutoriel pas à pas pour utiliser la visionneuse PDF dans un formulaire Power Apps !

 

Paramétrage du site SharePoint :

Dans votre site SharePoint :

  • Se positionner sur une bibliothèque de document
  • Ajouter une colonne de type « Plusieurs ligne de texte »
  • Nommer cette colonne « DataURI »

 

Création du Power Automate :

Créer un Power Automate pour lire la pièce jointe de l’élément PDF

Créer un Power Automate avec un déclencheur en « Quand un fichier est créé (propriété uniquement) ».

Nommer votre flux.

Insérer une action appelée « Obtenir le contenu du fichier » et insérer le lien de votre site SharePoint et l’Id de votre fichier « Identificateur ».

Ajouter une action « Message ou Compose en anglais » et mettre comme entrée le « Corps du contenu de fichier de l’action précédente ».

 

Ensuite, ajouter une dernière action : « Mettre à jour les propriétés du fichier », en remettant le lien du site SharePoint, ainsi que le nom de la bibliothèque de document.

Le point très important ici est que la sortie fournie par l’action précédente « Obtenir le contenu de la pièce jointe » ne peut pas être utilisée directement pour la visionneuse PDF, nous la convertissons donc en base64(), en utilisant la formule ci-dessous qui va être ajouter dans la colonne « DataURI » précédèrent crée dans notre bibliothèque : donc le contenu de cette colonne sera :

dataUri(base64ToBinary(body('Obtenir_le_contenu_du_fichier')['$content']))

 =>Pour Info : Base64 est un groupe de schéma pour encoder des données binaires sous forme d’un texte au format ASCII grâce à la représentation de ces données en base 64. Le terme base64 vient à l’origine de l’encodage utilisé pour transférer certains contenus MIME.

Les schémas d’encodage en base64 sont principalement utilisés lorsqu’il s’agit d’enregistrer ou d’envoyer des données binaires via un media qui a été conçu pour gérer du texte. Cette transformation permet de conserver l’intégrité et la véracité des données envoyées lors du transport

 

Paramétrage côté Power Apps

 

Dans le volet Donnée, ajouter votre bibliothèque comme source de données

Sur un écran de votre application, insérer le composant Pdf Viewer

Dans la propriété « Document » de ce composant, ajouter cette formule :

LookUp(Nom_Bibliothèque ;Nom="Mon_Fichier").DataURI

 

DataUri est la colonne qui contient le lien de votre fichier convertit avec Base64()

Et voilà j’espère que ce tutoriel vous aidera pour mieux utiliser ce fameux composant PowerApps !

 

Enjoy it !

 

Liens utiles

 

Base64() : https://developer.mozilla.org/fr/docs/Glossary/Base64

Documentation officielle Microsoft : https://docs.microsoft.com/fr-fr/powerapps/maker/canvas-apps/controls/control-pdf-viewer

Autrice

Aïcha Kassimi

Aïcha Kassimi

Consultante Power Apps

Plus d’articles Microsoft Power Platform

Intégrer un rapport Power BI dans Power Apps Portal

Comment intégrer un rapport Power BI embedded dans Power Apps Portal ? Intégrer un rapport Power BI sur un site Internet comme Power Apps Portal paraît souvent complexe et nécessitant de très nombreuses compétences techniques. Avec Power Apps Portal, c’est beaucoup...

Power Apps for Teams : Importer et exporter des solutions

Power Apps for Teams : Importer et exporter des solutions Lorsque je crée une application Power Apps For Teams, j’aimerais d’abord le faire dans une équipe (environnement) dédié au développement pour ensuite la déplacer en Recette puis en Production. Avec Power Apps,...

Exporter des données Dataverse dans un CSV depuis Power Apps

Exporter des données Dataverse dans CSV depuis Power AppsExporter des données Dataverse dans un fichier CSV depuis Power Apps ne me paraissait, à première vue, pas très compliqué. Mais quand j'ai commencé à regarder, j'ai fait face à de très nombreux problèmes. Du...

Power BI : remplacer les accents et caractères spéciaux dans Power Query

Power BI : remplacer les accents et caractères spéciaux dans Power QueryPower Query est sensible à la casse, aux accents et caractères spéciaux. Lorsque je souhaite croiser des données, il m'est souvent très utile de remplacer ces caractères dans une colonnes texte....

▶ Power Saturday 2020 – Réaliser un site web Microsoft Power Platform

Retour d’expérience de Jérémy Laplaine et Gilles Pommier

Creation d’un portail web Power Apps Portal avec des connexions tiers (Google, Facebook…) en utilisant pleinement les fonctionnalités de Microsoft Power Platform

▶ Créez votre portail sur mesure pour vos utilisateurs – Conférence au GPPB2021 Paris

Conférence de Jérémy Laplaine & Gilles Pommier au GPPB 2021 Paris – Toutes les astuces Microsoft Power Apps Portal !

▶ Power Apps Portal + CDS + Power BI : le combo gagnant !

Conférence de Jérémy Laplaine et Gilles Pommier – Retour d’expérience Power Apps Portal au Global Microsoft 365 Developer Bootcamp

▶ Vidéo Power BI – Mapping of things

Mettez en place du mapping of things Synoptic Panel sur Power BI avec Jérémy Laplaine, expert Power Platform.

▶ Tuto – Mettre en forme les cartes d’une galerie Power Apps en 2 min

Tuto : changer le style des cartes d’une galerie Power Apps en 2 minutes.