Utilisation de la fonction Patch avec une formule nommée

  • Utilisation de la fonction Patch avec une formule nommée

    Posté par CedZ sur 18 octobre 2024 at 18h14

    ——————————-Bonjour,

    Bonjour à tous,

    Je vais d’abord revoir un aspect dans mon app avant d’éventuellement poursuivre . Merci

    —————————————————————–

    J’ai dans une app un écran (1) avec un formulaire (1) qui contient une formule nommée ;

    J’ai un autre écran (2) disposant aussi d’un formulaire (2) qui contient plusieurs champs connectés à une liste Sharepoint que je souhaite mettre à jour.

    J’utilise en ce moment une fonction Patch car c’est le seul moyen que j’ai trouvé pour mettre à jour les champs du formulaire(2) et pour capturer le UTC.

    Cependant, ma liste contient aussi un champ basé sur le formulaire(1) et j’essaie d’ajouter ma formule nommée dans ma fonction; je n’ai pas d’erreur au niveau de la formule, tous les champs se mettent à jour dans ma liste Sharepoint sauf celui avec ma formule nommée.

    Voici mon code; j’ai fait plusieurs recherches pour voir s’il faut une fonction / syntaxe particulière pour patcher une formule nommée mais n’ai rien trouvé.

    Merci beaucoup pour vos lumières,

    <div>
    <div>Patch(</div>
    <div>’Étapes d”audits’; // Nom de la liste SharePoint</div>
    <div>Defaults(‘Étapes d”audits’); // Créer un nouvel enregistrement</div>
    <div>{</div>
    <div>//AuditID: nfAuditID;</div>
    <div>Étape: Value(DataCardÉtapenumber.Text); // Champ pour l’étape</div>
    <div>DescriptionÉtape: DataCardDescription.Text;// Champ pour la description</div>
    <div>ResponsableÉtape: DataCardResponsable.Text; // Champ pour le responsable</div>
    <div>Commentaires: DataCardCommentaires.Text; // Champ pour les commentaires</div>
    <div>UTCNow: Now() // Capture de l’heure actuelle</div>
    <div>}</div>
    <div>);;</div>
    <div>UpdateContext({indexationEtape: indexationEtape + 1});;</div>
    <div>// Réinitialiser le formulaire après la soumission</div>
    <div>ResetForm(FormSaisieNouvelAudit);;</div>
    </div>

    • This discussion was modified 1 month ago by  CedZ. Reason: En suspens. Je revois une logique dans mon app avant de poursuivre la mise en place de ce point
    CedZ a répondu 1 month ago 2 Membres · 6 Réponses
  • 6 Réponses
  • R3dKap

    Member
    18 octobre 2024 at 19h00

    Si je comprends bien tu veux juste alimenter ta colonne AuditID de ta liste SP à partir de ta formule nommée nfAuditID. Ton code me semble bon. S’il y a une erreur dans ton code c’est que les types de données entre ta colonne et ta formule nommée ne sont pas les mêmes.

    Quel est le type de ta colonne AuditID ?

    Comment alimentes-tu ta formule nommée nfAuditID ?

  • CedZ

    Member
    18 octobre 2024 at 19h33

    Salut RedKap,

    Ma colonne AuditID est une colonne de Type Recherche – car elle relie une colonne du même nom d’une autre liste (et la colonne de cette liste est au format Texte) -.

    Le code utilisée pour la formule nommée est nfClient=DataCardNomClient.Text;;

    Merci encore pour tous tes récents conseils, j’ai réussi à bien avancer grâce à ça et j’ai un truc qui commence à tenir la route 😎.

  • R3dKap

    Member
    18 octobre 2024 at 19h54

    C’est pas la formule nommée nfAuditID qui te posait problème ? Car dans ton code tu as mis en commentaire cette ligne :

    //AuditID: nfAuditID;

    Alors que tu me donnes la définition de la formule nommée nfClient🤔

  • CedZ

    Member
    18 octobre 2024 at 20h42

    Oups.. désolé ; c’est le meme concept pour

    <div>
    <div>nfAuditID=DataCardAuditID.Text;;</div>
    </div>

  • R3dKap

    Member
    19 octobre 2024 at 13h04

    Ah ok… Alors voilà l’origine du problème :

    • ta colonne SharePoint est une colonne de recherche qui est donc au format :
      {
      Id: <ID SharePoint de l'élément lié>;
      Value: <valeur de l'élément lié>
      }
    • ta formule nommée est au format texte

    C’est donc incompatible. Si tu veux que ta formule nommée soit au bon format il faut que tu l’alimentes ainsi :

    nfAuditID = DataCardAuditID.Selected

    Attention : ton DataCardAuditID doit être le contrôle du champ (text input, liste déroulante, etc.) et non le datacard en lui-même qui contient les 4 contrôles (DataCardKeyXXX, DataCardValueXXX, ErrorMessageXXX et StarVisibleXXX).
    D’ailleurs, les noms des contrôles des champs à l’intérieur d’un datacard doivent s’appeler : DataCardValueXXX -> c’est une bonne pratique.

    Dis-nous si ça marche… 😉

  • CedZ

    Member
    21 octobre 2024 at 20h51

    c’est excellent merci Redkap !

Connectez-vous pour répondre.