

Jeremy
MemberForum Replies Created
Merci R3dKap pour ta réponse.
J’ai vu plusieurs vidéos de ce youtuber, c’est quand j’essaye de boucler (par exemple il y a 3 photos en PJ) que je n’y arrive plus.
Je vais tester la solution de Sylvain et le faire dans l’appli, je ne suis visiblement pas assez bon en Automate.
Merci à vous.
Merci pour ta réponse, Sylvain.
J’y ai bien pensé, mais je trouve que ce n’est pas très propre de le faire directement dans l’application.
Et puis, je n’arrive pas à accepter l’idée qu’on ne puisse pas faire quelque chose d’aussi basique dans Power Automate 😒
Jeremy
Member26 février 2025 at 15h55 en réponse à: Quelle IA et comment l’utiliser afin d’optimiser/vérifier les mesures DAX ?Personnellement j’ai tenté l’abonnement ChatGPT (le 4o), je trouve ses réponses bien plus pertinentes.
En version gratuite, tu as le droit à quelques prompts par jour, alors j’utilisais COPILOT pour peaufiner la demande, pour ensuite l’injecter dans ChatGPT si j’avais besoin de vérifier.
COPILOT déraille assez vite, se laisse influencer, et corrompt son code au fur et à mesure des itérations.
Exemple : je lui demande d’utiliser la syntaxe française sur PowerApps ( ; et ;; et non , et ; (quelle galère aussi les syntaxes US et Européenne)), il peut me sortir la fonction « Filtrer » ou « EffacerCollecte » sans problème 😅, des parenthèses apparaissent/disparaissent dans le code, etc.
Quand COPILOT dit n’importe quoi je ne peux pas m’empêcher de l’insulter « Tu es un outil Microsoft et tu es nul sur un autre outil Microsoft !!!! » (même si ma science du prompt est en partie en cause)
Bonus : ChatGPT retient ce que tu lui dis, tu peux un peu « l’éduquer »
Merci pour vos réponses.
Effectivement, le formulaire moderne me pose des problèmes sur les champs “Nombre”, le reset ne se fait pas avec le “NewForm”, et ce même champs a toujours 1 chargement de retard en mode affichage (il charge l’avant dernier enregistrement dans ma gallerie).
Autre exemple, sur les boutons modernes, imaginons 1 vert et 1 rouge, si je selectionne les 2 pour en changer une propriété, ils retrouvent leur couleur par défaut.
C’est pas grand chose dans l’absolu, mais ça ne donne pas confiance pour lancer d’autres éléments en production.
Je vais donc continuer à les essayer, en restant vigilant.
Il faut vraiment laisser Excel de côté. Il te permettra un reporting si tu veux, mais il ne doit pas être ta base de données.
Tu vas devoir créer un site Sharepoint pour héberger des “listes”, qui sont des bases de données. Tu peux les créer à partir d’un tableau dans Excel.
Ce sont ces bases qui serviront à ton application : 1 base avec les livres, 1 base avec les utilisateurs, etc.
Youtube regorge de tutos plus ou moins avancés, mais souvent anglophones.
Tu sembles être un grand débutant, accroche toi, la logique de départ est pas forcement évidente, mais ensuite c’est plus simple.
Jeremy
Member12 septembre 2024 at 22h12 en réponse à: Bonnes pratiques création données HEADER / DETAILC’est justement la solution que j’indique dans le premier poste 😉
Aussi, je voulais trouver une alternative pour ne pas utiliser le LastSubmit car j’ai déjà eu des situations ou le lastSubmit ne me renvoit rien (quand certaines fonctionnalités en expérimental sont activées).
Et puis je voulais aussi savoir comment font les gens plus malins que moi 😉
C’est d’ailleurs la solution de Sylvain qui m’a 🤯
Set(
varIdTableFormulaire;
Patch(
tableFormulaire;
Defaults(tableFormulaire);
{}).IDBonjour Nico,
Power Apps est tout à fait capable de faire une application comme celle-ci. Mais il ne faut par contre pas raisonner en “Excel”, mais en base de données.
Aussi, pour définir ton application, il faut définir plus précisement tes contraintes :
Qui utilise l’application ?Une seule personne ou chaque emrpunteur?Comment sont gérés les “emprunteurs”?Sur un ordinateur en libre service?
Comment on créer un nouveau livre? On recherche le livre par nom? Par ISBN? Combien de livres à gérer?
etc,etc.
Au plaisir d’aider, mais il faut plus de détails.
Jeremy
Member12 septembre 2024 at 21h21 en réponse à: Bonnes pratiques création données HEADER / DETAILBonsoir à tous, et merci pour toutes vos réponses.
Rappel de mon shéma de départ :
Avant j’aurais créé l’enregistrement du HEADER via un formulaire (car + simple et j’aime le “OnSuccess”), puis récupérer l’ID via un lastsubmit, pour ensuite lancer depuis l’appli la création des enregistrements des DETAIL via des ForAll/Patch/Default a partir d’un filtre sur la table TEMPLATE_5S.
Mais au final, sur les conseils de Quentin, j’ai trouvé plus simple via un flow :
1- En input, l’ID de la zone (ici moi j’ai aussi une notion de secteur [1 secteur possède plusieurs zones], je duplique l’information, plus simple pour les reports, je sais c’est pas super normalisé 😅)
2- Je créé un element dans ma liste sharepoint HEADER, j’y injecte mes inputs ID Secteur et Zone
3- Je filtre ma liste TEMPLATE_5S pour en extraire les lignes relatives à mon ID_Zone
4- Pour chaque élément, je créé une ligne dans la table DETAIL, avec mon fameux ID_HDR provenant le la première opération
5- Enfin, je demande au flow de me renvoyer en output l’ID_HDR pour que je puisse l’utiliser comme filtre dans mon application
Dans l’application, pour lancer le flux (Crea_DTL) et récupérer l’ID_HDR dans une variable :
<div>
<div>Set(F_IDHDR;Crea_DTL.Run(ID_Zone;ID_Secteur).id_hdr_flux).</div>
<div> </div>
<div> </div>
<div>Ensuite, concernant la mise à jour des données de l’audit, je préfère créer tout de suite les enregistrements dans la base, et les afficher via une gallerie (et non afficher une collection), et les patcher à chaque modification (OK/NOK, commentaire, photo, etc). J’aime bien l’idée que si un utilisateur, quitte l’application en cours d’audit (mauvaise manip ou il est appelé ailleurs), son travail n’est pas perdu. </div>
<div> </div>
<div>Merci à ceux qui sont restés jusque là :-p</div>
</div>Bonsoir Hervé,
si c’est un import en masse depuis ton excel vers ta liste sharepoint, tu peux aussi faire la manip suivante, supprimer ta liste de ton Sharepoint, et en recréer une avec un nom et une structure strictement identiques. Si tu fais ça, tu devras supprimer cette liste comme source de données dans ton application, puis aller rechercher la nouvelle. Si tu as bien les même nom de champs et les même propriété de champs (date, nombre, texte, etc), c’est transparent pour l’application.
- Tu importes la liste depuis ton sharepoint vers un fichier Excel (attention, ça ne créé pas un tableau statique, mais une requête, il faut copier-coller les valeurs ailleurs avant de travailler dessus), pour avoir la structure de ta liste (nom des colonnes).
- Tu fais ton travail sur les données, qui doivent être dans un tableau, et tu enregistres le fichier Excel sur un sharepoint. Prends soin de supprimer les colonnes héritées de la liste sharepoint comme l’ID, date de création, etc. C’est le sharepoint qui fera el travail de les remplir à l’export (ici en rouge).
- Tu exportes le tableau vers ta liste sharepoint, que tu nommes exactement comme l’ancienne.
J’espère que ça poura t’aider.
Jeremy
Member17 juillet 2024 at 10h06 en réponse à: Bonnes pratiques création données HEADER / DETAILMerci Quentin pour ta réponse, je vais creuser ce sujet.
Tchô
Bonsoir Laurent,
j’ai fait le test avec le “modern” et l’ancien, et comme la plupart des “modern”, ça ne fonctionne pas bien.
Le moderne créé chez moi un choix vide au lieu d’être vide. Voir image ci-dessous après un “NewForm” :
<div>
<div>DefaultSelectedItems = If( Form1.Mode=FormMode.New ;[Blank()];[ThisItem.Titre])</div>
<div>Ca fait exactement la même chose avec DefaultSelectedItems = [ThisItem.Titre], lors d’un NewForm</div>
</div>Au moins, le controle est true sur : RadioGroupCanvas1_1.Selected.Value=Blank(), tu peux essayer de t’en servir comme condition pour soumettre ton formulaire.
Sinon, l’ancien marche nickel, il se reset en même temps que le ResetForm.
Toute façon c’était mieux avant 😉
Dans ce cas, découpe ta formule, et affiche chaque valeur de chaque element de ta formule dans des étiquettes de texte. Exemple : DataTableSuiviArrivéesMutationsInternes.Selected.’Action AMOA’.Value dans une étiquette, etc.
Tu pourras voir en testant tous les cas de figure si certaines valeurs ont des valeurs diférrentes de ce que à quoi tu t’attends.
Bonjour Shalaya,
comme tu le dis : “Ce que je veux, le bouton “Modifier la demande” soit désactivé ou caché si jamais la demande est statut refusée.”, alors je te conseille de renverser ta formule sur le bouton, et de mettre tes conditions sur le “disabled” plutot que sur le “Edit”.
==> si statut 1 = refusée ou statut 2 = refusée ou statut x = refusée alors displaymode.disabled
La colonne “Titre” ici est utilisé pour l’exemple, car j’ai eu la flemme d’en créer une autre 😅
Effectivement la colonne est créée par défaut, tu peux la supprimer ou simplement l’ignorer. Perso je ne l’utilise pas car j’ai déjà eu des erreurs du type : En français c’est “Titre” mais dans un environnement Anglais c’est “Title” ==> Erreur de formule
A ta place, je n’utiliserais pas de lookup column mais une colonne classique, et je ferais tout dans l’application directement. Déjà c’est plus simple, et ça permet aussi de rajouter du comportement dans l’appli.
Exemple : mon Look-up ne retourne rienè Affichage d’un message d’erreur à l’utilisateur et impossible de valider la création.
Bonjour Elias,
comment je ferais :
- Je mettrais la création des emplacement sur le “On Sucess” de ton formulaire de création de boite
- Je recupere le dernier ID_Mere créé : Set(_ID_Boite_Mere;FormulaireCreationBoite.LastSubmit.ID)
-
<div>
<div>ForAll(Sequence(9;1;1);</div>
<div>Patch(Liste_Emplacement_Boite;</div>
<div>Defaults(Liste_Emplacement_Boite);</div>
<div>{Emplacement: Value; //Ici de 1 à 9</div>
<div>ID_Mere: _ID_Boite_Mere}))</div>
<div> </div>
<div></div>
</div>