Powerapps et liste sharepoint + bouton
Étiquetté : SharePoint
-
Powerapps et liste sharepoint + bouton
Posté par francois sur 27 septembre 2023 à 5h10Bonjour,
J’essaie de créer une app qui permet de lister les passage au guichet d’une bureau /les téléphones.
Je suis parti d’une liste sharepoint:
Le titre est automatique, desk-tel est une liste de choix, user également, date heure auto et prestation liste de choix.
L’idée est d’avoir un écran principal
L’utilisateur cliquer sur un des boutons dans la première section, Desk 1, 2, 3 ou Téléphone, puis sur un des boutons dans la deuxième section (ses initiales), puis enfin sur un des boutons dans la troisième section (prestation).
Je voudrais arriver à:
-
Créer la séquence, clique 1, 2, 3 (obligatoire de cliquer sur la première section pour cliquer sur la 2ème, et ensuite sur la troisième)
-
Que chaque séquence (1, 2, 3) crééé une ligne dans ma liste sharepoint comme dans l’exemple plus haut.
Pour l’instant j’ai uniquement les colonnes de la liste sharepoint qui sont liées, deux lignes d’exemple et des boutons qui n’ont aucune fonction.
Merci de votre aide.
PostID=KgHi4mBKuf8BEIo
francois a répondu Il y a 12 mois 1 Membre · 17 Réponses -
-
17 Réponses
-
Bonjour Francois ,
Tu peux partir sur cette approche : Utiliser trois variables pour stocker les réponses pour chacun des groupes.
Sur le OnSelect des boutons du groupe 1 (exemple) :
UpdateContext({ctxDesk-Tel : {Value: "Desk1"}}) // Value car colonne de type choice
Pour le groupe 2
UpdateContext({ctxUser : "JZ"})
Pour le groupe 3
UpdateContext({ctxPresta : "OFPOP"})
Ensuite il te faudra un bouton “Valider” pour patcher ta source de données :
Patch('Ta liste Sharepoint'; Defaults('Ta liste Sharepoint') ; { desk-tel : ctxDesk-Tel ; User: ctxUser ; Prestation : ctxPresta} );;n// Réinitialisation des variables une fois le patch terminénUpdateContext({ctxDesk-Tel : Blank() ; ctxUser : Blank() ; ctxPresta : Blank() })
et enfin pour chaque groupe de boutons, tu pourras mettre son DisplayMode qui change en fonction de la présence de la réponse précédente :
Pour le groupe 2
If(IsBlank(ctxDesk-Tel) ; DisplayMode.Disabled ; DisplayMode.Edit)
Pour le groupe 3
If(IsBlank(ctxUser) ; DisplayMode.Disabled ; DisplayMode.Edit)
Pour le bouton “valider”
If(IsBlank(ctxPresta) ; DisplayMode.Disabled ; DisplayMode.Edit)
CommentID=8aU6jOqvVD95zlM, PostID=KgHi4mBKuf8BEIo
-
Merci trop top.
Je suis bloqué au bouton valider.
J’ai modifié le nom de la colonne desk-tel en desktel et changer le type de colonne User en texte et non en choix.
CommentID=P59QZwCrH9Du4H3, PostID=KgHi4mBKuf8BEIo
-
les boutons sont bien paramétrés?
CommentID=TFgHzXgMyB4IfyO, PostID=KgHi4mBKuf8BEIo
-
Si tu as changé le type de colonne en texte alors il faut modifier la formule, car là tu fournis un record, essaies sans le {Value: } :
UpdateContext({ctxDesktel : "Desk1"})
SubCommentID=pUou90d0VjG2ZER, CommentID=TFgHzXgMyB4IfyO, PostID=KgHi4mBKuf8BEIo
-
-
Merci, la colonne desktel est toujours en choix donc value. Je suis toujours bloqué sur la formule du bouton de validation
Patch('OFPOP Desk'; Defaults('OFPOP Desk') ; { desktel : ctxDesktel ; User: ctxUser ; Prestation: ctxPresta} );;nUpdateContext({ctxDesktel: : Blank() ; ctxUser : Blank() ; ctxPresta : Blank() })
CommentID=dAlT2exinpyIqz8, PostID=KgHi4mBKuf8BEIo
-
Alors pour celle-ci, il y a un “:” en trop :
Pour l’erreur de type attendu sur le champ prestation, au temps pour moi j’avais lu un peu vite et il me semblait que c’était un champ type texte. Du coup c’est au niveau de tes boutons réponses qu’il faudra changer :
UpdateContext({ctxPresta : "OFPOP"})
en
UpdateContext({ctxPresta : { Value : "OFPOP" } } )
Je te conseille de garder ce lien vers l’excellent blog Sharepains en favoris, cet article référence les différentes manières de patcher des colonnes complexes de Sharepoint.
(attention, l’auteur a volontairement laissé la syntaxe d’origine, qui inclut nottament le type odata :
'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference
qui devait être précisé obligatoirement, depuis un peu plus de deux ans la syntaxe a été simplifiée)CommentID=PM03ILIx0Rcm5kN, PostID=KgHi4mBKuf8BEIo
-
Merci beaucoup pour les conseils.
Cela fonctionne, sauf la fonction Patch:
Patch('OFPOP_Desk_list'; Defaults('OFPOP_Desk_list') ; { Desktel: ctxDesktel ; User: ctxUser ; Presta: ctxPresta} );;n// Réinitialisation des variables une fois le patch terminénUpdateContext({ctxDesktel: Blank() ; ctxUser : Blank() ; ctxPresta : Blank() })
CommentID=XAaSW6Iw0WeOKlM, PostID=KgHi4mBKuf8BEIo
-
Tout est dans le message d’erreur, en effet la colonne Titre / Title est une colonne imposée par Sharepoint qui est toujours obligatoire.
Tu peux en profiter y renseigner une référence en fonction de l’utilisateur et de la date par exemple :
UpdateContext({Titre : User().DisplayName & " - " Text(Today(),"yymmdd")) ; ctxDesktel: Blank() ; ctxUser : Blank() ; ctxPresta : Blank() })
SubCommentID=Vo2fSH3LBk757iA, CommentID=XAaSW6Iw0WeOKlM, PostID=KgHi4mBKuf8BEIo
-
-
Est-ce que vous connaissez une formation efficace en français sur PowerApps? Linkedin e-learnin?
CommentID=eNCSSJ1JWiXvV9e, PostID=KgHi4mBKuf8BEIo
-
Toujours pas good, désolé…
Patch(OFPOP_Desk_list; Defaults(OFPOP_Desk_list) ; { Desktel: ctxDesktel ; User: ctxUser ; Presta: ctxPresta} );;n// Réinitialisation des variables une fois le patch terminénUpdateContext({Titre : User().DisplayName & " - " Text(Today(),"yymmdd")) ; ctxDesktel: Blank() ; ctxUser : Blank() ; ctxPresta : Blank() })
CommentID=xo4EQUnO3sCvWBp, PostID=KgHi4mBKuf8BEIo
-
Petite erreur de syntaxe : Patch(OFPOP_Desk_list; Defaults(OFPOP_Desk_list) ; { Desktel: ctxDesktel ; User: ctxUser ; Presta: ctxPresta} );;n// Réinitialisation des variables une fois le patch terminénUpdateContext({Titre : User().FullName & " - " &Text(Today(),"yymmdd")) ; ctxDesktel: Blank() ; ctxUser : Blank() ; ctxPresta : Blank() })
Si tu as un doute sur une propriété de sortie, tu peux t’aider de la saisie assistée des formules, si tu tapes
User().
dans ta barre de formule, il te mettra la liste des propriétés disponible sur cette fonctionCommentID=QvvKEyCqotp8hci, PostID=KgHi4mBKuf8BEIo
-
Oui, j’ai testé avec FullName mais toujours 6 erreurs.
Patch(OFPOP_Desk_list; Defaults(OFPOP_Desk_list) ; { Desktel: ctxDesktel ; User: ctxUser ; Presta: ctxPresta} );;n// Réinitialisation des variables une fois le patch terminénUpdateContext({Titre : User().FullName & " - " Text(Today(),"yymmdd")) ; ctxDesktel: Blank() ; ctxUser : Blank() ; ctxPresta : Blank() })
Un opérateur était attendu..
Caractère inattendus (5x)
Désolé de t’embête, on y arrive….
CommentID=ofoH0YNU7RpCpvR, PostID=KgHi4mBKuf8BEIo
-
C’est bon, problème de syntaxe ou format de date je pense:
Patch(OFPOP_Desk_list; Defaults(OFPOP_Desk_list) ; { Desktel: ctxDesktel ; User: ctxUser ; Presta: ctxPresta} );;n// Réinitialisation des variables une fois le patch terminénUpdateContext({Titre : User().FullName & Text(Today()) ; ctxDesktel: Blank() ; ctxUser : Blank() ; ctxPresta : Blank() })
CommentID=5HQr0UmkeXG4JFQ, PostID=KgHi4mBKuf8BEIo
-
Les deux choses qui me reste à régler sont les suivantes. Si tu peux encore m’aider? Navré…
L’application est publiée. Une fois que j’ai sélectionné catégorie 1, 2, 3 et validé je rencontre UN DERNIER problème:
-
Les données ne sont pas insérées dans la liste Sharepoint
Merci beaucoup pour ton aide.
CommentID=n1eFvw3PnlqZEy6, PostID=KgHi4mBKuf8BEIo
-
-
Je peux ajouter des enregistrements manuellement mais rien ne se passe depuis l’app
CommentID=OiKBlSfIbhP7frp, PostID=KgHi4mBKuf8BEIo
-
C’est réglé merci encore pour tout
CommentID=UnWGdzqRaL9mMSO, PostID=KgHi4mBKuf8BEIo
-
Bonjour David, encore un petit détail à régler.
La colonne Time affiche 2 heures d’avance dans Power BI pourtant les paramètres régionaux du site sharepoint sont OK.
Power BI
Liste Sharepoint:
Une idée? Adapter la fonction Patch?
Elle est comme cela actuellement:
Patch(OFPOP_Desk_list; Defaults(OFPOP_Desk_list) ; { Desktel: ctxDesktel ; User: ctxUser ; Presta: ctxPresta} );;nn// Réinitialisation des variables une fois le patch terminénnUpdateContext({Title:User().FullName & Text(Today()) ; ctxDesktel: Blank() ; ctxUser : Blank() ; ctxPresta : Blank() })
CommentID=kuSBuYTDj5Oi3vG, PostID=KgHi4mBKuf8BEIo
Connectez-vous pour répondre.