Elias
MembreRéponses céées sur le Forum
-
Encore un grand merci pour votre aide.
En essayant de développer un app un peu compliquée j’ai l’imression ,de progresser un peu chaque jour, grace a vous:)
je pense donc que je vais supprimer la colonne ID-mere et ne pas utiliser la fonction look up.
Encore un grand merci!
-
Un très grand merci Jeremy pour cette autre piste très fructueuse
CHAPITRE 1 : Ca fonctionne…presque
Voici ce que j’ai fait avec les adaptations suivante:
- le nom de la variable var_ID_boite_Mere : je prefere que mes noms de variable commence par var (bonne idée?)
- le nom de la liste BoiteEmplacement
- le nom du formulaire:Form1_
Ce qui donne :
Set(var_ID_Boite_Mere;Form1_1.LastSubmit.ID)
ForAll(Sequence (9;1;1);
Patch(BoiteEmplacement;Defaults(BoiteEmplacement);
{emplacement: Value;
‘ID-mere’:var_ID_boite_Mere}))
J’ai changé titre par emplacement car ma liste BoiteEmplacement reprend les colonnes suivantes
titre (dont je ne sais pas quoi faire, cette colonne a été créé lors de la création de ma liste?)
ID-mère : qui est une colonne de recherche, qui va chercher l le nom de la boite dans la liste (Boites80).
emplacement : qui doit reprendre les n° d’emplacement de 1 à 9.
Question 1 : remplacer titre par emplacement est ce correct dans mon cas?
CHAPITRE 2 : Ca fonctionne
Question 2 : j’ai un message d’erreur “le type de cet argument ‘ID_x002d_mere’ ne correspond pas au type attendu ‘record’. type trouvé ‘Number. Je pense que cela vient du fait que dans le patch on donne à ID-mere une valeur numerique var_ID_boite_Mere. Alors que cette colonne est définie dans sharepoint comme une colonne recherche (qui va chercher son info dans la colonne titre, de la liste Boites80, cette colonne titre étant une ligne de texte avec par exemple des données du type 2024-01) Mon diagnostique est il le bon?
Pour ce problème j’ai fait l’essai suivant: j’ai changé ID-mere par titre sur la dernière ligne.
Set(var_ID_Boite_Mere;Form1_1.LastSubmit.ID)
ForAll(Sequence (9;1;1);
Patch(BoiteEmplacement;Defaults(BoiteEmplacement);
{emplacement: Value;
titre : var_ID_boite_Mere}))
Et cela fonctionne!! je suis super content 🙂 j’ai donc ID de ma boite dans la colonne titre et mes 9 emplacements de créer!
CHAPITRE 3 : peut on mieux faire?
Il reste un point qui me chagrine, comment mettre dans ID-Mere le nom de la boite qui vient d’être créer?
Pour tester voici ce que j’ai fait j ‘ai ajouté dans ma liste BoiteEmplacement une colone ID-mere-Bis de type texte. (le modification son en gras)
Set(var_ID_ID_Boite_Mere;Form1_1.LastSubmit.ID);; //Donne la valeur de ID de la dernière boite crée.
Set(var_ID_Boite_mere;Form1_1LastSubmit.titre);; //donne la valeur titre (par exemple 2025-01) à la variable
ForAll(Sequence (9;1;1);
Patch(BoiteEmplacement;Defaults(BoiteEmplacement);
{emplacement: Value;
‘titre’:var_ID_ID_boite_Mere;
‘ID-mere-bis:var_ID_mere}))
cela marche :
Question 3 : est la meilleur manière de faire? ou alors aurais je du jouer avec une fonction lookup et avoir dans la dernière ligne de mon patch : ‘ID-mere’: LookUp (boites80; ID=var_ID_ID_boite_Mere).titre?
J’ai testé cette option et je retrouve mon message d’erreur : “”le type de cet argument ‘ID_x002d_mere’ ne correspond pas au type attendu ‘record’. type trouvé ‘Text. Avez vous une piste?
Encore un tout grand merci !
-
Encore un tout grand merci cette information.
Dans mon cas je veux donc créer les 9 emplacements de la nouvelle boite lorsque celle ci est créée .
Ma fonction patch est donc mise sur mon bouton de validation de mon écran de création d’une nouvelle boite.
<div>
<div>ForAll(Sequence(1;9);</div>
<div> Patch(</div>
<div> BoiteEmplacement;</div>
<div> Record;</div>
<div> {BoiteEmplacement : {id : ID ; value : LookUp(Boites80;id= ID ;titreboiteNum)}})</div>
<div> </div>
<div> }</div>
<div> )</div>
<div>)</div>
<div> </div>
<div>- Question 1 : J’ai un problème avec le ForAll qui ne semble pas correcte. une diée</div>
<div>- question 2 : la fonction Record ne semble pas reconnue. ?</div>
<div>- question 3 : J’ai bien vu que toute mes tables avaient en effet une colonne ID que l’on peut faire apparaitre dans Sharepoint en créant une vue particulière. mais toutes ces colonnes de mes différentes liste s’appellent tous ID, comment les distinguée?</div>
<div> </div>
<div> </div>
</div> -
Je pense que mon problème vient de ma liste sharepoint dans laquelle j ai une colonne de type Rechrche. Si je change le type de colonne comment pus je faire le lien dans powerApps?
-
Sur base de la proposition de Jeremy j’ai donc 2 listes:
Boites80 avec la colonne titreBoiteNum (par exemple 2024-10) et son lieux de stockage.
BoiteEmplacements avec 3 colonnes : titre, ID-mere qui est une colonne recherche dans ma liste sharepoint qui reprend l’info l’indetification de la boite qui se trouve dans titreBoiteNum de la liste Boits80
Pour ma partie Power apps j’ai une appli classique avec un ecran d’accueil qui reprend une galerie et le détail du contenu et un écran d’édition.
Dans mon ecran d’édition j’ai un bouton ‘Valider’ qui permet de valider une nouvelle entrée. Sur ce bouton j’ai mis le Onselect sur :
<div>
<div>SubmitForm(Form1_1);;</div>
<div>Navigate(‘ecAcceuil-boite80’);;</div>
<div>Set(</div>
<div> varNouveau;</div>
<div> false</div>
<div>);;</div>
<div>ForAll(Sequence(1,9);Patch(BoiteEmplacement;Defaults(BoiteEmplacement);{‘ID-mere’: DataCardValue31.Text; emplacement:Value}))</div>
</div>La première partie soumet mon formulaire = crée la nouvelle boite dans ma liste “Boites80” : OK
La seconde partie me fait retourner à mon ecran d’acceuil des boites80 : OK
La variable VarNouveau et mise à false : ca me permet de remetre cette vraiable sur cette valeur et de différencier les modification des créations (…je pense..)
Et donc vient ensuite la partie de Pactch pour créer dans ma table “BooiteEmplacement”.
C’est là que ca merdouille..avec du bug :
message 1 : “La fonction patch contient des arguments non valides”. voyez vous d ou vient le problème? j’ai essayé avec ‘ID-mere’ ou ID-mere sans les ”, ca ne change pas le problème.
Message 2 : “Le type de cet argument ‘ID-x002d-mere’ ne correspond pas au type atendu ‘reccord’. Type trouvé ‘Text’. ici j’imagie que le problème vient du fait que j’ai utilisé le type text. comme expliqué plus haut, dans sharepoint le colonne ID-Mere est une colonne de type recherche. est ce que c’est ca qui pose problème?
D’avance, merci
-
Super!
Oui je debute et je progresses bien en grande partie grâce à ce forum.
Pour ma première app je souhaite aller le plus loin possible. Car comme tu l as vu dans les autres postes il y a des choses qui se recoupent.
Je sais que cela est complexe c est justement ça qui est motivant. J espère arriver jusqu a ce point. Sur papier j ai mes listes, dans share point, J ai déjà des applications de base qui tournent avec quelques fonctions de powerfx. If, and, or, isblank, mise en forme de bouton conditionnel, lien entre les tables
.La dernière chose que j ai intégrée c est les variable et les collections. Les prochaines étapes c est les fonction lookup et patch. Cet partie sur les boîtes me permet donc d intégrer ces fonctions.
Encore merci pour ton input!
-
Merci.
“Soucis, il te faut maintenant générer 9 lignes à chaque création de nouvelle “boite”. C’est tout à fait faisable, mais il faut maitriser les Patch”
Cette fonction reste pour l’instant un peu compliquée pour moi.
Je vais un peu faire des recherches. L’idée est que lors de la création d’une nouvelle boite, on crée déjà les 9.
Donc les listes suivantes
-Items : avec la liste des mes objects
-Boites : qui reprend la liste boites avec leur identification et leur date de création par exemple.
-BoitesItems : qui reprend le contenu de toutes les boites, avec les colonnes boiteID, position, Item description.
Par contre je ne vois pas ou et a quoi servirait le point suivant :
“A mon avis, tu vas devoir créer une autre liste “position” qui référe à ta liste “boite”.
Tu vas avoir 9 lignes dans cette table, 1 pour chaque position, avec une valeur “ID_boite” = l’id de la boite mère.”
Dans cette liste j’aurais par exemple
Position = 1; ID-boite: boite1
Position = 2: ID-boite: boite1…. et cela jusqu’a 9
Puis idem avec position=1; ID-boite : boite2.
C’est ca? a quoi cela sert il? pour la fonction patch?
-
Encore merc Jeremy.
Dans mon exemple des boites j’ai bien compris que je pouvais avoir des galleries imbriquées.
Cette organisation en 1 ou 2 galeries, imbriquées ou pas est indépendante de la structure de la base de données. En effet je peux travailler avec une liste Sharepoint avec pour chaque étapes les colonnes nécessaires ou je peux avoir une liste mère avec les données de base et une liste fille par étapes.Dans les deux cas je peux utiliser des galleries imbriquées.
De ce que je comprends l’option une liste mère et des listes filles par étapes est plus optimale> c’est bien cela?
La question qui suit est ou et comment je gère mes statuts par exemple : Pret pour étape 1, Etapes 1 en cours, Pret pour étapes 2, Etapes 2 en cours etc…). Je pensais avoir liste statut qui reprends tous les status possibles et une colonne ‘statut’ dans ma liste mère dans laquelle je fais évoluer les statuts.
Qu’en pensez vous?
-
Je trouve que 3 sortes de galeries :
- galerie horizontale
- galerie verticale
- galerie à hauteur flexible
mais si je compredn bien une nested gallery est une gallery dans une gallery, c’est bien ca?
Concrètement en quoi cela peut il m’aider par rapport à ce que je veux faire?
J’image que la gallery de niveau plus élevée peu reprendre mon numéro de boite et la sous galerie le détail d’une boite. c’est bien cela?
C’est en effet une option intéressante que je vais tester. Merci!
Pour l’enregistrement de la position 1 à 9, y a t il des solutions?
-
Merci Jeremy, c’est super! ca m’aide vraiement. top.
Pour mon point 2 pour l’affichage j’ai donc ma solution je dois jsute bien cadré les étiquettes de la galerie avec mon arrière plan. Ca c’est OK.
Pour la partie 3, Y a t il le meme genre d’outils/options pour un formulaire?
Et comment lui faire encodé dans la liste ‘Boites’ la position de l’item dans la boite?
je pensais
- pour mes 9 positions, 9 étiquettes de texte (et-text-position) avec les comme texte 1,2,3,4..jusque 9.
- pour mes 9 positions, 9 “entrée de texte” dans le quel j’encode mon n° d’inventaire de mon Item (et qui est liée à ma colonne Item de liste Boites). Mais comment intégrer l’emplacement? en copiant la données de l'”étiquette de texte” 1 à 9?Vous avez une piste pour ce genre d’encodage?
merci
-
Est cexquextu peux passer par une liste share point : transfomrer ton fichier xls en liste share point et t assurer que tu as bien tes en tête de colonne dans Sharepoint.
Puis faire ton appli sur base de ta liste sharepoint.
Note : je débute dans power apps.
-
J’ai donc maintenant 2 listes sharepoint
- Types qui reprend différenets colonnes définissant les différents types qui caractérise mes Items
- Items qui reprend l’identification, le type, et d’autres colonne.
En complément j’ai créé un app qui fonctionne me permettant assez classiquement de consulter, d’éditer, créer et supprimer des enregistrements.
Pour le point suivant j’ai besoin de votre avis.
Dans la pratique mes items sont stockées . Parfois on reprendre un ou plusieurs de ces Items et on leur faire suivre un processus en différentes étapes. Ce que je cherche c’est la meilleure manière de gérer ce processus dans power apps.(processus en 4 étapes)
Ma première question est la suivante : pour gérer mes 4 étapes de mon procéssus je pourrais ajouter dans ma liste Items des colonnes pour chaqu’une des étapes. Par exemple la Step1 : step1date, spet1Nom, step1resulat.
Une autre option serait de créer une liste a part pour chaqu’une des étapes?
Qu’elle option vous semble la plus pertinente (ou quelle autres manière de faire serait plus pertiente)?
bonne apres midi.
-
merci pour l’information.
et en ce qui concerne la fonction In qu’est ce que je dois adapter?
-
Merci Alexandre pour ton aide.
Dans sharepoint j’ai 2 liste
1/ Types qui reprend entre autre comme colonne typeInit (en fait cette colonne reprend les initiales du type, la version courte, usuelle : par exemple “MLSA”, “OMONL”, “CETS”
2/ une seconde liste sharepoint Items qui reprdend des colonnes dont itemNum (numéro d’indentification) et une colonne typeNomInit qui une colonne de type recherche qui renvoie vers la colonne typeInit de la liste Types.
Dans power apps dans mon écran d’édition j’ai une datacard qui reprend “typeNomInit_Datacard2” qui reprend une datacardkey16 et ma datacardvalue16.
La propriété Items de cette datacardvalue16 est : Item = Choices([@Items].typeNomInit)
Petite question supplémentaire parfois dans des choix ou des filtre je vois cette écriture [@Items] et parfois uniquement le nom de la liste Items sans les crochets. quelle est la différence?
-
Un grand merci pour cette réponse!
Je percois qu’il y a un truc que je ne comprends pas et j’aimerai vraiment arriver à mon objectif.
Je vais reprendre ici ma situation. Dans Sharepoint j’ai 2 listes
Boites80 avec les colonnes
- titreBoiteNum (par exemple 2024-10), cette colonne est la colonne titre de cette liste
- lieuStockage
BoiteEmplacements avec 3 colonnes :
- titre, (en fait pour linstnat cette colonne est vide dans shaerpoint car elle est apparue automatiquement à la création de ma liste)
- ID-mere qui est une colonne recherche dans ma liste sharepoint qui reprend l’info l’indetification de la boite qui se trouve dans titreBoiteNum de la liste Boits80
- Emplacement
Tu indiques que “
Pour patcher une colonne lookup, tu dois fournir un enregistrement qui contient deux valeurs : Id et Value
- Id correspond à la colonne ID de la liste parente (destination du lookup).
- Question 1a : dans mon cas la liste parante est Boite80. C’est bien cela?
- Question 1b : dans ma liste Boite80 je n’ai pas de colonne qui s’appelle Id. j’ai uniquement la colonne titreBoiteNum et lieuStockage. De quel colonne s’agit il alors?
- Value correspond à la colonne Title ou Titre de la liste parente. Question 2 C’est donc titreBoiteNum. C’est bien cela?
Question 3 dans ta proposition :
Patch( Source ; Record ; { BooiteEmplacement :{ Id: ID-mere ; Value : Lookup( 'Liste destination du lookup' ; ID=ID-mere ; Title ) } } )
Source c’est la liste que je dois Patcher : donc dans mon cas c’est la liste BoiteEmplacement. ?
Donc cela donne :
Patch( BoiteEmplacement ; Record ; { BoiteEmplacement :{ Id: ID-mere ; Value : Lookup( 'Boite80' ; ID=ID-mere ; titreBoiteNum ) } } )
C’est bien cela?