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

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...

Regrouper et organiser des mesures Power BI

Dans Power BI, beaucoup de mesures autonomes peuvent être créées. Elles ne sont rattachées à aucune table en particulier. De ce fait, il peut être très compliqué de les retrouver.
Alors, comment les organiser pour les utiliser plus facilement ?

▶ Vidéo Power BI – Mise en forme conditionnelle sur les courbes

Tuto : comment changer la mise en forme d’une courbe Power BI, par exemple la couleur, selon une condition.

▶ Intégrer Power Apps Portal, Dataverse et Power BI !

Conférence de Jérémy Laplaine et Gilles Pommier sur l’intégration Power Apps Portal, Dataverse et Power BI au Power Platform French Summit

▶ 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.

▶ 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 !

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...

▶ 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

Afficher un document dans le PdfViewer Power Apps

Afficher un document dans le PdfViewer de Power AppsLimitations 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...