Réponses céées sur le Forum

Page 59 sur 90
  • R3dKap

    Membre
    15 juillet 2022 à 17h12 en réponse à: Transfert de connaissances

    Salut Geoffroy WAGNER, ne te ronges pas trop quand même… 😅

    La question de la documentation des applications Power Apps revient souvent… Et moi-même je me suis déjà challengé sur le sujet…

    J’ai récemment trouvé un outil que quelqu’un a développé pour générer automatiquement la documentation d’une application Power Apps. Mais, comme on peut s’en douter, tout système automatique qu’il est il ne fait que générer des pages et des pages de documents Word qui ne font que mettre à plat sur le papier ce qui existe dans l’application : liste des écrans et leurs contrôles, les bouts de codes associés, etc. Mais ce genre d’outil automatique n’est pas capable d’expliquer les subtilités et la logique d’une application comme le peut faire un être humain.

    Je considère donc que c’est le rôle du développeur de décrire de lui-même comment son application est architecturée et surtout d’en décrire ses subtilités. Reste à voir sous quelle forme et de quelle manière…

    Je vais décrire ici 2 techniques que j’ai personnellement utilisées pour documenter mes applications Power Apps…

    Le composant de documentation directement intégré à l’application

    L’idée consiste à stocker la documentation dans une liste SharePoint (ou une table du Dataverse selon l’application). Côté application, un composant ajouté à chaque écran permet de créer/éditer la documentation associée à l’écran en question.

    Gros avantage : le développeur peut documenter son application directement depuis le Studio au fur et à mesure qu’il la construit. Mais faut être assidu.

    Inconvénient : impossible d’incruster des images au milieu du texte car le composant d’édition HTML de Power Apps ne le permet pas.

    Je viens de faire un p’tit article ici pour expliquer comment utiliser ce composant :

    Le document PowerPoint

    Il s’agit ici simplement de documenter l’application dans un document PowerPoint en décrivant ses caractéristiques et ses différents écrans.

    Gros avantage : on peut formaliser la documentation comme on le veut (avec des flèches, des graphiques, etc.) + on peut y adjoindre d’autres éléments comme l’architecture de l’application.

    Inconvénient : le document est “séparé” de l’application à contrario du composant décrit précédemment qui est directement intégré à l’application.

    Par exemple, pour une application qui permet de gérer des demandes je l’ai documentée ainsi :

    • Une slide pour décrire l’architecture de l’application : indication de la source de données, présence de flux Power Automate,

    • Une slide pour décrire le contenu du App.OnStart : les variables globales, les préchargement de données en collections locales, …

    • Une slide pour expliquer à quoi sert chacun des écrans de l’application

    • Plusieurs slides pour chaque écran. Par exemple pour l’écran d’accueil qui affiche la liste des demandes, permet de filtrer les demandes, permet de trier les demandes :

      • Une slide pour expliquer comment je construis la liste des demandes (en gros, le Items de la galerie)

      • Une slide pour expliquer le fonctionnement du tri des colonnes

      • Une slide pour expliquer comment les boutons de la barre d’actions sont visibles ou pas en fonction de certains critères liés à la demande sélectionnée

      • etc.

    • etc.

    Comme tu le vois, l’idée c’est vraiment d’aborder ce document Power Point comme si tu faisais un cours à une personne pour lui expliquer l’application. Il y a très souvent plusieurs slides pour chacun des écrans de l’application afin de bien détailler les différentes fonctionnalités ou caractéristiques qui leur sont propres.

    Voilou…

    CommentID=64evX2ZnFVy4ys7, PostID=dmMRgV3ikUdjXI6

  • R3dKap

    Membre
    14 juillet 2022 à 9h48 en réponse à: Contrôles en dehors de l'écran

    DavidZed j’ai eu le retour : ça devrait être corrigé d’ici demain à priori… 😀

    CommentID=8BPIV8ZdapAXQfG, PostID=J8U6xodt8XvDk8A

  • R3dKap

    Membre
    13 juillet 2022 à 17h48 en réponse à: Nbre d'enregistrements d'un fichier

    Je confirme qu’une tempo de 30s ou 1mn est parfois nécessaire dans ce cas de figure… Zis is ze law… 😁

    CommentID=0LXXwHi9TSxhVY4, PostID=ZD56vdFw0HMTSUh

  • R3dKap

    Membre
    13 juillet 2022 à 17h46 en réponse à: Résolu-Envoie de liste sharepoint filtrer par mail

    Hugotr35 quel serait le but de la demande d’approbation dans le mail ? Que l’utilisateur valide la liste de matériel qui lui est envoyée ?

    Et que veux-tu dire par enregistrer le mail dans une liste SharePoint ?

    CommentID=2RwbIzTqGYaspQw, PostID=BNjM58AmgWAPza2

  • R3dKap

    Membre
    13 juillet 2022 à 17h40 en réponse à: Etre alerte selon le tag d une actualité

    Pas mieux de mon côté… 😉

    CommentID=CfY4VFujA1PtH4T, PostID=oNTuDsZzdxRzkXh

  • R3dKap

    Membre
    13 juillet 2022 à 17h07 en réponse à: Contrôles en dehors de l'écran

    DavidZed je te confirme ce comportement tout récent… 😒

    Je vais remonter l’info à l’équipe Power Apps chez MS voir ce qu’ils me répondent…

    CommentID=M6hLtb4IQNrkPWo, PostID=J8U6xodt8XvDk8A

  • R3dKap

    Membre
    13 juillet 2022 à 16h19 en réponse à: Naviguer dans les variables de type Array

    Avec plaisir… 😉

    CommentID=XaGalc1qihmc3rx, PostID=h9tWwTqhOvUkZFM

  • R3dKap

    Membre
    13 juillet 2022 à 6h51 en réponse à: Naviguer dans les variables de type Array

    Salut Delphine, désolé pour le délai…

    Bon super… Alors voici concrètement comment je monterais le modèle de données…

    liPostes (puisque tu parles de “postes” je l’appellerai ainsi 🙂)

    • Title (colonne native que tu peux renommer par ex. en “Nom du poste

    liCriteres

    • Title (colonne native que tu peux renommer par ex. en “Nom du critère“)

    liCriteresPostes

    • Title (colonne native qui ne te servira pas ici -> tu peux la rendre facultative comme ça t’es pas obligé de la remplir)

    • colPoste : colonne de recherche qui pointe sur la liste liPostes et sa colonne Title

    • colCritere : colonne de recherche qui point sur la liste liCriteres et sa colonne Title

    liControles (liste tous les contrôles qui ont lieu : une ligne = un contrôle à une date donnée, sur un poste donné, pour un produit et un numéro de prod ; on y retrouve aussi la somme des défauts et le taux de défauts -> ces éléments sont calculés au fur et à mesure des relevés (voir ci-dessous))

    • Title (colonne native à renommer en “N° contrôle” par ex.) : l’idée c’est d’y concaténer les colonnes qui sont identifiantes pour un contrôle (par ex. : <colPoste>_<colDateControle>_<colProduit>_<colNumProd>)

    • colPoste : colonne de recherche vers la liste liPostes (comme dans la table liCriteresPostes)

    • colDateControle : colonne de date/heure indiquant la date et l’heure du contrôle

    • colProduit : colonne de texte pour le code du produit

    • colNumProd : colonne de texte pour le numéro de production

    • colTotalDefauts : colonne numérique pour le total des défauts

    • colTauxDefaults : colonne numérique pour le taux des défauts

    liReleves (je l’appelle plutôt “Relevés” car c’est ce qui se passe sur le terrain : l’opérateur fait des relevés/mesures au niveau des points de contrôles pour des critères spécifiques ; mais à toi de la nommer autrement si tu veux)

    • colControle : colonne de recherche qui pointe vers la liste liControles et sa colonne Title

    • colCritere : colonne de recherche vers la liste liCriteres et sa colonne Title

    • colValeur : colonne qui porte la valeur du contrôle pour le critère sur le poste -> là c’est à toi de voir quel type de colonne tu veux (oui/non ou alors de type choix ou alors de type texte pour y mettre des valeurs de différent formats)

    Voilou… J’ai supposé que tu créais les colonnes directement dans les listes. Maintenant si tu passes par des colonnes de sites et des types de contenus (voir mon article ici, mais je crois que tu l’as peut-être déjà vu : https://r3dkap.fr/post/comment-creer-vos-listes-sharepoint-pour-vos-applications-power-apps-60cde3aee7328da090060c28) à ce moment-là appelle les colonnes plutôt scNomColonne (sc voulant dire Site Column). Passer par des colonnes de sites te permet de réutiliser une colonne dans plusieurs listes…

    Si t’as besoin d’un coup de main ou si t’as encore des questions, n’hésite pas… Et je t’encourage à représenter ton modèle de données dans un petit Power Point comme ceci :

    Ca te permettra d’y revenir régulièrement quand tu te poseras des questions genre : “Tiens, comment j’ai organisé mes données finalement ?“… 😉

    CommentID=mdDq8kDjVo49p4Q, PostID=h9tWwTqhOvUkZFM

  • R3dKap

    Membre
    8 juillet 2022 à 16h33 en réponse à: Naviguer dans les variables de type Array

    Nickel Delphine… Très clair, merci ! 👍

    Le modèle de données

    Alors tu vois, clairement dans ton cas j’identifie tout de suite qu’en fait il te faudrait une liste des critères. Car c’est une information que tu retrouves dans 2 autres listes. A partir du moment où une information (qui identifie quelque chose de tangible) se retrouve dans plus d’une liste, c’est qu’il faut lui prévoir une liste dédiée.
    Idem pour les points de contrôles… 😉

    En fait, rien qu’en lisant les 2 phrases de ton besoin métier au début de ton dernier post, je me suis tout de suite dit : donc il faut une liste des points de contrôles, une liste des critères, une liste qui spécifient quels critères sont vérifiés sur chaque point de contrôle et une dernière liste qui permette de stocker les relevés fait chaque jour.
    Le fait de partir sur une structuration des données de cette manière (avec des liens entre les listes) clarifie les choses et te simplifie tout par la suite…

    Mais c’est pas grave… Tu as déjà bien avancé donc on va rester là-dessus… Essaie de t’appliquer cette règle pour la prochaine fois. 😉

    Rapport journalier

    Avant de chercher à optimiser, faut chercher à faire simple. La solution simple consisterait à récupérer dans liResultatsControles toutes les lignes du jour où SommeDefauts > 0. Ensuite, on bouclerait sur ces lignes pour générer le code HTML de chaque ligne du 2è tableau en allant chercher à chaque fois dans la liste liPointsControles le libellé des critères concernés.

    Ce qui n’est pas très optimisé c’est qu’on va faire des tas de requêtes à liPointsControles pour aller rechercher à chaque fois le bon libellé du critère. L’idéal consisterait à charger une seule les lignes de liPointsControles dont on a besoin pour ensuite travailler uniquement avec des variables… Mais ça peut vite prendre la tête… Donc faisons simple pour l’instant.

    Vu ton niveau je pense que faire une boucle sur liResultatsControles puis rechercher le bon libellé de chaque critère dans liPointsControles tu devrais y arriver non ?

    Qu’en penses-tu ? Appelle à l’aide sinon… 😊

    CommentID=MMqPFsE25PjDUmV, PostID=h9tWwTqhOvUkZFM

  • R3dKap

    Membre
    8 juillet 2022 à 13h35 en réponse à: Galerie – PDF

    Jonathan FRANÇOIS je te suggère ceci :

    ...n<h1>1. Liste récapitulative des observations</h1>n<br>" & If(IsEmpty(Gallery4.AllItems); "Sans observations"; "<ol>" & Concat(Gallery4.AllItems; $"<li>{Obs}</li>") & "</ol>"n) & "<br>n...

    CommentID=y9uzThvtpm0S4io, PostID=NYYo632IvcTJ4vP

  • R3dKap

    Membre
    8 juillet 2022 à 13h25 en réponse à: Naviguer dans les variables de type Array

    C’est parce-que c’est les vacances… 😋

    Merci pour tout le détail… Avant de me plonger à fond dedans je vais tenter un tour de passe-passe passk’on sait jamais qu’on puisse éviter tout ça… >>> A quoi va te servir cette Table2 au final ? Tu veux générer un PDF ? Envoyer un tableau par mail ? Construire un fichier ?

    Autre approche intéressante : oublions totalement la technique et explique-moi ce que tu veux faire (parle-moi uniquement besoin, métier et données). Décris-moi ton modèle de données (tes listes SharePoint avec leurs colonnes). Ensuite dis-moi ce que t’as déjà fait : une app ici pour faire ça, un flux là appelé par l’app pour faire ceci, etc.

    En fait ce qui m’intrigue dans ton histoire, c’est pourquoi générer autant de tables dans ton flux ? Pourquoi ne pas travailler directement avec des boucles imbriquées sur les différents listes SharePoint ?

    Bon ça fait bcp de questions… Je te laisse bosser… 😅

    CommentID=2dWKM6y8pDA4cf2, PostID=h9tWwTqhOvUkZFM

  • R3dKap

    Membre
    8 juillet 2022 à 12h11 en réponse à: Naviguer dans les variables de type Array

    Delphine c’est pas du JS, c’est du “Power Automate” maison : le Workflow Definition Language… 😅

    Alors ta tentative est la bonne mais de ce que je comprends du message d’erreur variables('Table')[0] te retournes une chaîne et pas une structure à plusieurs colonnes.

    Est-ce que tu peux nous montrer comment tu construis ta table ?

    CommentID=2CxkSNM2W6ITLmI, PostID=h9tWwTqhOvUkZFM

  • R3dKap

    Membre
    7 juillet 2022 à 21h08 en réponse à: Ouverture de PDF

    ChezWam tu ne peux pas, à partir de Power Apps, faire un lien vers un fichier qui est stocké sur un serveur de fichiers externe au cloud Microsoft. La solution la plus simple serait de mettre tes PDF dans une bibliothèque SharePoint comme le montre DavidZed

    CommentID=aZGVQbZrkzx4lDL, PostID=hUmIG8SYVPZ7GjW

  • R3dKap

    Membre
    7 juillet 2022 à 21h04 en réponse à: Galerie – PDF

    Jonathan FRANÇOIS essaie ceci :

    Concat(Gallery4.AllItems; $"<li>{Obs}</li>")

    Et pense à enlever le <li> et le </li> qui sont juste au-dessus et en-dessous de ton Concat()…

    CommentID=fZY4eIWCUcp3CB2, PostID=NYYo632IvcTJ4vP

  • Redonne-moi le lien du tuto d’April pour que je regarde pourquoi elle fait ça ?

    Parce-qu’en plus j’ai pas poussé plus loin hier, mais en fait si ton utilisation du formulaire est basique, tu n’as pas à faire de Patch(). Un simple appel à la fonction SubmitForm() suffit à créer ou mettre à jour tes données selon le mode du formulaire. Est-ce que tu me suis ou tu as besoin de plus d’infos ?

    Sinon décris-moi un peu plus ton app et ce que t’essaies de faire…

    Faut absolument que je démarre mon projet de mini-vidéos sur pleins de petits sujets comme expliquer en détail comment fonctionne chaque contrôle de Power Apps… 😅

    SubCommentID=cdzizRjXYIXOCq8, CommentID=UaEHSXYmQxoJisH, PostID=qav2GO1hmjc2PWF

Page 59 sur 90