French Power Platform User Group

Please login or click SIGN UP FOR FREE to create your PowerPlatformUG account to join this user group.
Expand all | Collapse all

Saisir les données comme un tableur

  • 1.  Saisir les données comme un tableur

    Posted Jun 14, 2021 11:08 AM
    bonjour,

    Je développe une application qui dispose actuellement de 4 list Sharepoint  comme source, ces list contiennent des  données de type text multiligne,choix,dates principalement. Dans son ancienne application l'utilisateur avait l'habitude de saisir comme sur un tableur Excel, c'est à dire que tout se présente sur une même ligne



    Je pensais construire 4 écrans pour pouvoir saisir les données. Ya t'il un moyen de rendre cette construction dynamique comme tu l'évoques à la fin de ta video "Construire un formulaire dynamique avec Power Apps et SharePoint' lorsque tu parles de la saisie de la grille sur l'application que tu présentes avec des topics et sutopics (position 54:40 sur la vidéo)

    ------------------------------
    Philippe CULOT
    Data Analyst
    ------------------------------


  • 2.  RE: Saisir les données comme un tableur

    Gold Contributor
    Posted Jun 14, 2021 03:58 PM
    Salut Philippe,
    J'ai appris, durant mes longues années de concepteur/réalisateur de solutions, à éviter de faire perdurer les habitudes de mes utilisateurs au détriment de la qualité (voire de la performance) d'une nouvelle solution (par rapport à une ancienne).
    Donc, tout naturellement, lorsque je lis "...l'utilisateur avait l'habitude de saisir comme sur un tableur Excel..." et que je vois que tu pars sur une solution où tu vas tenter de reproduire quelque chose de similaire, j'ai envie de dire : "Asseyons-nous 2mn et posons-nous les bonnes questions"... 😉

    Point 1 - Le simple fait que Power Apps ne propose pas d'outil permettant de faire de la saisie tabulaire implique par défaut qu'il n'est pas "fait pour ça". Alors certes, tu vas pouvoir t'en tirer et le faire quand même avec une galerie et des contrôles (faussement) "dynamiques" effectivement comme indiqué dans ma vidéo. Alors, je ne renie pas pour autant ma vidéo, mais je dirais qu'il faudrait la réserver à des cas de figure plutôt simples et petits. Parce-que, perso je l'ai mis en place chez un client et je l'ai poussé au maximum mais aujourd'hui c'est une méga usine à gaz difficile à maintenir et pas hyper performante (parce-que non optimisée dès le départ puisque, comme souvent, ça a commencé petit et puis ça a grossit énormément avec le temps).

    Point 2 - Dans ma vidéo j'aborde juste la technique de base qui démontre comment générer un formulaire "dynamique". Quand je l'ai préparé j'ai dû y passer 2 ou 3h. Mais faut bien voir que si tu veux en faire une vraie solution complète, y'aurait beauuuuuuucoup plus de boulot, avec en prime des cas de figure complexes à gérer à cause de certaines limitations/défauts du produit (par ex. la manière dont les événements OnChange des combo box sont déclenchés par Power Apps, un peu "à tout va").

    Point 3 - Devant un cas d'usage comme le tien, mon réflexe serait de reposer les choses à plat et de dégoter les bonnes questions. Comment sont structurées ces 4 listes ? Ont-elles des structures différentes ou similaires ? Sont-elles liées entre elles par des colonnes de recherche ? A combien d'utilisateurs l'appli est-elle destinée ? Y aurait-il un intérêt (maintenant ou dans le futur) à pouvoir utiliser cette application sur un appareil mobile (gros avantage : la saisie de texte en mode oral vu qu'il y a des zones de saisie multiligne) ? Quels sont les volumes auxquels on va être confrontés ? Quel intérêt y a-t-il à ce que la saisie soit tabulaire ? Quel seront les droits qui devront être mis en place pour l'accès et la gestion des données ?
    On pourrait imaginer des solutions plus simples que le full dynamique dont je parle dans ma vidéo :
    • une galerie qui affiche les enregistrements déjà existants et lorsque je clique sur NOUVEAU, une ligne apparaît avec les contrôles de saisie (comme sur ta capture) alignés sur les colonnes des données pour permettre de saisir un nouvel enregistrement
    • une fonction de duplication de lignes (pour faciliter la saisie si elle est un peu répétitive)
    Mais très concrètement, Power Apps est pas trop prévu pour faire de la saisie en mode tabulaire. Le contrôle EditForm est vraiment hyper pratique et utile pour faire de la saisie de données et faciliter au développeur la phase d'enregistrement des données et de gestion des erreurs.

    En fait, de manière générale, je vois beaucoup de "citizen developpers" se lancer dans la réalisation d'applications sans avoir au préalable posé sur le papier les bases de la cible à atteindre, non pas en termes de solution, mais en termes de besoin. Et souvent cela permet de lever des lièvres, de désamorcer certains préjugés auprès de l'utilisateur, d'identifier la meilleure approche technique.

    Voilà, c'était ma minute "conseil"... 😁

    Alors je sais pas comment tu veux qu'on avance du coup. Peut-être si tu peux répondre aux questions du point 3 pour que je voie plus précisément de quoi il s'agit. Je pourrais alors te dire si une galerie dynamique serait adaptée ou pas et quel serait son niveau de complexité de réalisation. Et me décrire aussi ce que tu as prévu en terme d'écrans, d'opération possibles sur ces écrans, de navigation.

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 3.  RE: Saisir les données comme un tableur

    Posted Jun 15, 2021 01:21 AM
    Bonjour Emmanuel

    Merci pour ton avis et tes recommandations. En effet je vois tous les avantages de la génération du formulaire . En scrutant pas mal de tutos je me suis vite rendu compte que le mode tabulaire n'était pas adapté. Les habitudes des utilisateurs sont dures à changer, je fais beaucoup de rapport Power BI et la 1ère chose que l'on me demande c'est de pouvoir exporter sur excel les données ou bien faire du ppt,

    Concernant cette application , il s'agit d'une réplication d'une existante sous Oracle Express  faite par une de nos filiales et que notre DSI a chiffré à un cout exhorbitant pour la faire migrer sur notre système.  Power Apps répond pleinement à l'objectif de cette application pour un coût modique (= le temps que je passe à développer)

    L'organisation autour de ce projet sera :
                                               des utilisateurs saisissent des évènements qui se sont passés dans leur établissement pour une période donnée
                                               2 personnes ont un regard sur l'ensemble des établissements pour faire un report consolidé à partir d"excel, pour cela elles auront accès à l'export excel des liste sharepoint, pour ensuite faire des slides ppt

    Donc en terme de structuration de données je suis parti sur des list sharepoint structurées comme des tables .Si j'étais parti sur une structuration dynamique comme dans ta vidéo je perdais les utilisateurs pour qu'ils soient autonomes à produire leur report

    Quelques infos demandées :

    La structuration des 4 listes reposent sur au plus 10 colonnes pour chaque liste avec la plupart des colonnes reposant sur des listes déroulantes. Elles ne sont pas liées entre elles mais ont des structures un peu similaires.
    Exemple :
                                                  1) la liste Faits significatifs reprend une description multiligne, une entité du groupe (valeur fixe donnée par la table des users, l'utilisateur qui réalise la saisie appartient à un établissement), une liste déroulante Activité (6 valeurs), Domaine (9 valeurs),Statut (2valeurs), jour de creation , jour de modification et user qui a créé et modifié.
                                                  2) la liste des mouvements de personnels dans les établissements : Nom Prenom, Etablissement concerné,  Fonction de la personne, date du mouvement, Mouvement (entrée ou sortie), type de contrat (liste de 4 valeurs).

    Le volume ne sera pas trés élévé, je pense que ce sera au plus une vingtaine de lignes pour chaque liste et par mois , le nombre d'utilsateurs est à peu prés une quinzaine

    Dans ma première version j'étais parti sur une galerie à gauche qui permettait de visualiser les informations nécessaires  (pour liste Faits signifcatifs : Description, date de création établissement, le tout trié sur la date de création la plus récente et sur la partie droite le formulaire qui permettait de visualiser l'ensemble des informations  et de les modifier le cas échéant et j'avais crée un bouton ajout d'enregistrement qui débouchait sur un nouveau formualire pour entrer les nouvelles données.
    Ce process me paraissait un peu lourd lorsque je l'ai présenté j'ai pas vraiment ressenti une approbation générale et je suis tombé sur la vidéo de Reza Dorrani (Power Apps Editable Table/Gallery like Excel (Tutorial) - YouTube) qui du coup permettait d'alléger le process car sur un seul écran on gère le stock et les nouvelles saisies.

    En fait je voulais avoir ton avis sur la question, concernant cette version je la présente lundi prochain, pour l'instant je pense rester sur cette version et je sais pertinemment que c'est tordre le coup à la vision générale de Power Apps. J'ai 2 autres applications à créer ou l'une d'elles devrait être architecturée comme l'application que tu présentes en fin de vidéo, et je pense que je reviendrai vers toi si tu le permets pour plus de détail et surtout pour l'aspect dynamique . L'autre application que je vais devoir créer sera un outil de saisie dune fiche technique  en vue de la commercialisation d'un produit, lorsque l'utilisateur appuiera sur le bouton enregistrer, les données devront être mises dans un document Word et envoyé par mail à son adresse ( donc la je vais jouer avec Power automate)

    J'espère avoir été exhaustif et te remercie une nouvelle fois de prendre autant de temps pour moi qui débute avec cet outil mais qui me séduit totalement





    ------------------------------
    Philippe CULOT
    Data Analyst
    ------------------------------



  • 4.  RE: Saisir les données comme un tableur

    Gold Contributor
    Posted Jun 15, 2021 10:09 AM
    Salut Philippe,

    Super, merci pour tous ces éléments c'est beaucoup plus clair. Ton use case me semble intéressant et, si cela te convient, je vais consacrer un peu de temps à ce qu'on le structure ensemble pour le rendre le plus efficace et le plus attrayant possible.

    Commençons par le commencement : écrire le besoin le plus simplement possible, sans parler de technique.

    Le besoin

    Je reprends quasi tel quel ce que tu as écrit :

    • Des utilisateurs "de base" saisissent des événements qui ont eu lieu sur leur établissement pour une période donnée.
    • Ces événements sont de 2 types : des "faits significatifs" ou des "mouvements".
    • Des utilisateurs "++" (appelons-les des gestionnaires) ont une vision globale de l'ensemble de ces éléments.
    • Les gestionnaires exportent les données des événements vers Excel afin de produire des rapports qui sont ensuite intégrés à des PPT.

    Le modèle de données

    Il y a donc 2 listes principales : celles des faits significatifs et celle des mouvements. Quelles sont les 2 autres listes ? Une pour les users ? Une pour les établissements ?

    Faits significatifs

    • Description (texte multilignes)
    • Entité (texte ? choix ? liste SP ?)
    • Activité (choix) -> liste des valeurs ?
    • Domaine (choix) -> liste des valeurs ?
    • Statut (choix) -> liste des valeurs ?

    Mouvements

    • Nom (texte)
    • Prénom (texte)
    • Etablissement (texte ? choix ? liste SP ?)
    • Fonction (texte ? choix ? liste SP ?)
    • Date du mouvement (date)
    • Mouvement (choix : Entrée | Sortie) 
    • Type de contrat (choix) -> liste des valeurs ?
    Est-ce que tu pourrais préciser les champs obligatoires ci-dessus ? Et fournir la liste des valeurs des champs de type choix. Merci.

    Les champs natifs représentant la date de création et l'auteur ainsi que la date de dernière modif. et le modificateur je ne les précise pas car elles sont standards et toujours présente dans SharePoint.

    L'application

    Pour ce qui est de la structure de l'application, évidemment ça pourra dépendre de tous les éléments que tu nous transmettras ici. Donc je propose qu'on en parle dans un 2è temps.
    En attendant, est-ce que tu pourrais mettre une capture de chacun des écran que t'avais déjà prévu ?

    Les questions

    1. GENERAL - Un utilisateur peut-il appartenir à plusieurs établissements ?
    2. FAITS - Un utilisateur peut-il faire une saisie pour un établissement qui n'est pas le sien ?
    3. GENERAL - Un utilisateur peut-il consulter les événements rattachés à un établissement qui n'est pas le sien ?
    4. FAITS - Le statut est-il déterminé automatiquement ou saisi par l'utilisateur ? A-t-il un impact quelconque sur les données ?
    5. GENERAL - Comment travaille l'utilisateur ? Il choisit "Faits significatifs" ou "Mouvements" puis il voit la liste des éléments, peut filtrer, modifier, créer, supprimer des éléments ?
    6. GENERAL - Y a-t-il un intérêt pour le gestionnaire à accéder à l'application de saisie ? Ou lui suffit-il d'accéder à la liste SharePoint, d'en exporter les données vers Excel à l'aide la fonction native et puis basta ?
    7. MOUVEMENTS - Comment va-t-on s'assurer que le nom/prénom feront référence à la bonne personne si on n'utilise pas un champ de type user ? (faute d'orthographe, saisie variable selon les personnes, ...)
    8. FAITS - Comment fait-on pour saisir un fait qui a eu lieu à une date antérieure s'il n'y a pas de champ "Date du fait" ? Car les champs natifs de date de création et de date de dernière modification sont non modifiables.
    Y aurait sûrement encore d'autres questions mais c'est déjà pas mal.

    Pour la suite

    Ce que je te propose, si ça te va, c'est de fournir déjà tous les éléments ci-dessus puis on s'organise un call pour discuter de la meilleure approche technique pour structure l'application afin de la rendre à la fois performante et attractive.

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 5.  RE: Saisir les données comme un tableur

    Posted Jun 15, 2021 12:38 PM

    Salut Emmanuel

    Pour le besoin c'est exactement cela

    Le modèle de données :

    USERS
    Mail              1 ligne texte
    Profil             Choix : Admin ou User
    Etablissement Choix : Etab1,Etab2,Etab3

    Formulaires
    Formulaire     1 ligne texte ( 5 valeurs Faits significatifs,Recos IG,Moyens Humains,Mouvement collaborateurs,Synthèse)

    Tous les champs sont obligatoires sur toutes les listes

    Faits significatifs (seuls les profils users saisissent)

    • Periode (1 ligne texte) format AAAA T1 (données au trimestre)
    • Description (texte multilignes)
    • Entité (Recherche) provient de la table des users 
    • Activité (choix) -> liste des valeurs
        • Advice
        • N/A
        • Other Work
        • Participation in works of the industry association or working groups
        • Procedure
        • Regulatory watch
    • Domaine (choix) -> liste des valeurs
        • Authorizations, licenses,professional licenses and certifications, and powers 
        • Ethics and professional conduct
          External and Internal fraud
          Financial security
          Handling of operations
          Information systems security
          New products and new activites
          Outsourced services
          Relationship with regulators
    • TopMgt (choix) liste de valeurs (Yes/No) TopMgt= Top Managment
    • Statut (choix) -> liste des valeurs 
      • Closed
        In Progress
    • Created
    • Created By
    • Modified
    • Modified by

    Mouvements Collaborateurs

    • Periode (1 ligne texte) format AAAA T1 (données au trimestre)
    • Nom (texte)
    • Prénom (texte)
    • Etablissement (Recherche) provient de la table des users 
    • Fonction
    • Date du mouvement (date)
    • Mouvement (choix : Entrée | Sortie) 
    • Type de contrat (choix) -> liste des valeurs ?
      • CDD
      • CDI (valeur par défaut)
      • Stage 
      • Alternance
    • Created
    • Created By
    • Modified
    • Modified by


    Moyens Humains

    • Periode (1 ligne texte) format AAAA T1 (données au trimestre)
    • Faits marquants: texte multiligne
    • Etablissement 
    • TopMgt
    • Created
    • Created By
    • Modified
    • Modified by

     

    Incidents

    • Periode (1 ligne texte) format AAAA T1 (données au trimestre)
    • Description : texte multiligne
    • Etablissement 
    • Action Plan : texte multiligne
    • Impact : texte multiligne
    • Occurrence Date : date
    • Statut
    • Created
    • Created By
    • Modified
    • Modified by



    Reco IG

    • Periode (1 ligne texte) format AAAA T1 (données au trimestre
    • Audits in progress,exchanges : texte multiligne
    • Etablissement
    • Initiator (choix) liste de valeurs
                              External audit
                                Internal audit
                                Supervisory authority
    • TopMgt
    • Statut
    • Created
    • Created By
    • Modified
    • Modified by

     

    Synthese (saisie faite par les admins uniquement)

    • Periode (1 ligne texte) format AAAA T1 (données au trimestre
    • Statut
    • Synthesis (texte multiligne)
    • Created
    • Created By
    • Modified
    • Modified by

     

    Les questions

    1. GENERAL - Un utilisateur peut-il appartenir à plusieurs établissements ? NON
    2. FAITS - Un utilisateur peut-il faire une saisie pour un établissement qui n'est pas le sien ? NON mais un admin pourrait car toutes nos filiales ne sont pas sur O365
    3. GENERAL - Un utilisateur peut-il consulter les événements rattachés à un établissement qui n'est pas le sien ? NON
    4. FAITS - Le statut est-il déterminé automatiquement ou saisi par l'utilisateur ? il est saisi A-t-il un impact quelconque sur les données ? NON
    5. GENERAL - Comment travaille l'utilisateur ? Il choisit "Faits significatifs" ou "Mouvements" puis il voit la liste des éléments, peut filtrer, modifier, créer, supprimer des éléments ? OUI

    On arrive sur la galerie des thèmes et choix sur le thème

     

     

    Puis si il a choisi Faits significatifs ile arrive sur cet écran


    1. GENERAL - Y a-t-il un intérêt pour le gestionnaire à accéder à l'application de saisie ? Oui car en fait il va saisir la partie synthèse . Les fichiers excel qui contiendront les données SharePoint existeront et l'utilisateur actualisera les données .
    2. MOUVEMENTS - Comment va-t-on s'assurer que le nom/prénom feront référence à la bonne personne si on n'utilise pas un champ de type user ? (faute d'orthographe, saisie variable selon les personnes, ...). Il n' y aura pas de contrôles de cohérence des nom prénom, c'est juste une information ensuite l'admin verra avec la personne qui a saisi si des précisions sont nécessaires
    3. FAITS - Comment fait-on pour saisir un fait qui a eu lieu à une date antérieure s'il n'y a pas de champ "Date du fait" ? Car les champs natifs de date de création et de date de dernière modification sont non modifiables: C'est le champ Période qui fait foi

    Concernant les écrans j'étais parti sur du tableur,

    Merci à toi et a trés bientôt



    ------------------------------
    Philippe CULOT
    Data Analyst
    ------------------------------



  • 6.  RE: Saisir les données comme un tableur

    Gold Contributor
    Posted Jun 16, 2021 05:23 AM
    Parfait ! Merci pour tous ces détails. Du coup j'ai exploité ton modèle de données et j'en ai fait un schéma. Je fais toujours un schéma du modèle de données et je le maintiens à jour parce-que c'est hyper pratique de savoir à n'importe quel moment comment mon application est structurée en termes de données.
    Et ça donne ça :

    Je te mets le PPT en pièce jointe pour que tu puisses le maintenir à jour.
    Chaque entité représente une liste SharePoint :
    • en entête, le nom d'affichage de la liste, juste en-dessous le nom de la liste dans l'url SharePoint
    • à l'intérieur, chaque champ avec ses caractéristiques :
      • le nom d'affichage (en noir) (en rouge si c'est un lookup)
      • l'étoile rouge si le champ est obligatoire
      • en-dessous le nom technique (nom interne donné au moment de la création du champ) avec entre crochets le type de champ (voir ci-dessous)
      • s'il s'agit d'un champ de type "choix", la liste des valeurs possible (celle soulignée est la valeur par défaut)
    La légende des types de champs est la suivante :
    • T = texte simple
    • TM = texte multiligne
    • D = date
    • Y = Yes/No (Oui/Non = booléen)
    • C = choix
    • CM = choix multiple
    • L = lookup (recherche)
    • LM = lookup multiple
    • N = numérique
    • etc...
    Quelques remarques sur ce schéma :
    • les champs ont un nom interne nommé scXXX -> sc = Site Column (on crée donc une colonne de site, on ne crée pas la colonne directement dans la liste ; on crée des colonnes de site, on crée un type de contenu, on mets les colonnes de sites dans un type de contenu et c'est le type de contenu que l'on rattache à la liste -> il faut donc créer un type de contenu pour chaque liste -> c'est la bonne pratique -> si tu veux plus d'aide là-dessus, n'hésite pas)
    • l'avantage des colonnes de sites c'est qu'elle sont réutilisables dans différents types de contenus ; par exemple, j'ai réutilisé la colonne scDescription pour différents champs dans différentes listes (Faits marquants dans Incidents, Synthesis dans Synthèse, Description dans Faits significatifs ou Reco IG)
    • il y a quelques colonnes de statuts dont on a pas les valeurs (pour Synthèse et Reco IG) -> ce sont les mêmes que pour Faits significatifs ?
    • j'ai supposé que Entité dans Faits significatifs représentait en fait l'établissement de la liste Users ; si c'est le cas, essaie d'avoir des noms cohérents dans toutes tes listes (puisque c'est Etablissement dans Reco IG et Mouvements, autant que ce soit Etablissement aussi dans Faits significatifs)

    Le besoin

    Question 2 - Tu précises qu'un admin peut avoir besoin de saisir un élément parce-que une filiale est hors O365. Ca veut dire que les admins peuvent aussi accéder à l'application et lorsque c'est le cas ils voient toutes les données et peuvent faire tout ce qu'ils veulent ?

    Question 9 - Un utilisateur peut revenir à n'importe quel moment sur un élément qu'il a créé précédemment et agir dessus (modifier, supprimer, ...) quel que soit le statut de cet élément ?

    L'application

    Pour rendre l'appli un peu plus sexy (ça joue vachement sur l'adoption), pour le premier écran je verrais bien 4 gros pavés avec un icône et un petit texte pour chaque type d'élément qui peut être géré. Et une petite pastille rouge pourrait indiquer le nombre d'éléments créés par l'utilisateur connecté :

    Pour ce qui est des écrans de détails, là il faudrait qu'on se cale un call pour en discuter et voir comment les structurer. Propose-moi un créneau en MP...



    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 7.  RE: Saisir les données comme un tableur

    Gold Contributor
    Posted Jun 16, 2021 05:26 AM
      |   view attached
    Le fichier PPT du modèle de données...

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------

    Attachment(s)



  • 8.  RE: Saisir les données comme un tableur

    Gold Contributor
    Posted Jun 18, 2021 05:21 AM
      |   view attached
    Voici le modèle de données mis à jour pour tenir compte du fait que l'on crée une liste pour référencer tous les établissements...

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------

    Attachment(s)