Colonne d'une collection non récupérable

Étiquetté : , ,

  • Colonne d'une collection non récupérable

    Posté par Youcef DOUMANDJI sur 1 avril 2023 à 15h02

    Bonjour,

    Quand j’affiche le contenu de ma collection ColEmargementsStagiaires (Voir image jointe) je constate que toutes les colonnes sont présentes et en particulier la colonne ftie_Stagiaire qui contient le nom du stagiaire et qui vient d’une table Dataverse (dans cette table c’est un champ LookUp vers la table Contact).

    J’ai récupére sur le web le code suivant :

    // Get Column NamesnnSet(n    varCollectionColumnNames;n    Distinct(n        Ungroup(n            MatchAll(n                JSON(n                    ColEmargementsStagiaires;n                    JSONFormat.IgnoreBinaryDatan                );n                "([^""]+?)""\s*:"n            ).SubMatches;n            "SubMatches"n        );n        Valuen    )n)

    Ce code m’aide à alimenter la variable dont je me sers en tant qu’Items d’une gallerie pour visualiser son contenu.

    Dans cette gallerie je ne retrouve pas la colonne ftie_Stagiaire

    .

    Une idée ?

    Merci d’avance.

    Youcef

    PostID=Gt6nESFPYqVwsqC

    Youcef DOUMANDJI a répondu Il y a 11 mois, 3 semaines 1 Membre · 8 Réponses
  • 8 Réponses
  • DavidZed

    Membre
    3 avril 2023 à 7h27

    Hello Youcef DOUMANDJI ,

    Au cas où, essaies avec & JSONFormat.IgnoreUnsupportedTypes dans ton JSON() :

    // Get Column NamesnSet(n    varCollectionColumnNames;n    Distinct(n        Ungroup(n            MatchAll(n                JSON(n                    ColEmargementsStagiaires;n                    JSONFormat.IgnoreBinaryData & JSONFormat.IgnoreUnsupportedTypesn                );n                "([^""]+?)""\s*:"n            ).SubMatches;n            "SubMatches"n        );n        Valuen    )n)

    CommentID=qqy3sPiq7Lw5R0I, PostID=Gt6nESFPYqVwsqC

    • Youcef DOUMANDJI

      Membre
      3 avril 2023 à 14h56

      Bonjour David,

      Merci pour ton aide.

      J’ai essayé ta suggestion mais toujours pareil.

      Youcef

      SubCommentID=8491HJF2eGTaa5g, CommentID=qqy3sPiq7Lw5R0I, PostID=Gt6nESFPYqVwsqC

  • ypicot

    Membre
    3 avril 2023 à 9h57

    Bonjour

    La regex me semble cohérente.

    Que retourne le JSON ? Pourrais-tu coller le bout de chaîne qui contient ftie_Stagiaire ?

    Qque chose du genre :

    Set(n    varJson;n    JSON(n        ColEmargementsStagiaires;n        JSONFormat.IgnoreBinaryData & JSONFormat.IgnoreUnsupportedTypesn    )n)

    Puis tu mets le varJson en Default dans une zone de texte. (ça va sortir un truc de 3km de long, c’est juste la partie qui entoure ftie_Stagiaire qui est intéressante. Tu peux utiliser un éditeur de texte pour la localiser)

    CommentID=Y8UU6WVxr8KwJnc, PostID=Gt6nESFPYqVwsqC

    • Youcef DOUMANDJI

      Membre
      3 avril 2023 à 14h44

      Bonjour ypicot,

      Merci pour ton retour. Voici ce qu ej’obtiens (je n’ai mis le résultat que pour le premier et le dernier enregistrement) :

      [{"createdon":"2022-10-31T14:55:09.000Z","ftie_absence_jsutifiee":false,"ftie_absent":false,"ftie_date":"2022-08-19","ftie_demie_journee":false,"ftie_emargement":false,"ftie_emargementparleformateur":false,"ftie_identifiantstagiaire":null,"ftie_idlistesp":null,"ftie_jour_semaine":null,"ftie_mois":null,"ftie_motif_absence":null,"ftie_nom":null,"ftie_nombre_heures":null,"ftie_numero_de_semaine":null,"ftie_session_stagiaireid":"43b63601-2c59-ed11-9562-000d3a95886e","ftie_signature":{},"ftie_signatureid":"544bb907-2c59-ed11-9562-000d3a95886e","importsequencenumber":null,"modifiedon":"2022-10-31T14:55:17.000Z","overriddencreatedon":null,"statecode":0,"statuscode":1,"timezoneruleversionnumber":0,"utcconversiontimezonecode":105,"versionnumber":9901576},
      .
      .
      {"createdon":"2022-08-19T16:08:26.000Z","ftie_absence_jsutifiee":false,"ftie_absent":false,"ftie_date":"2022-08-19","ftie_demie_journee":true,"ftie_emargement":true,"ftie_emargementparleformateur":false,"ftie_identifiantstagiaire":"010290","ftie_idlistesp":196,"ftie_jour_semaine":"Vendredi","ftie_mois":"Août","ftie_motif_absence":null,"ftie_nom":"010290 - 2022-08-19 -  True","ftie_nombre_heures":5,"ftie_numero_de_semaine":33,"ftie_session_stagiaireid":"a7941325-d91f-ed11-b83d-000d3a95886e","ftie_signature":{},"ftie_signatureid":"a56fda76-1122-ed11-9db1-000d3a95886e","importsequencenumber":null,"modifiedon":"2022-10-30T10:19:26.000Z","overriddencreatedon":null,"statecode":0,"statuscode":1,"timezoneruleversionnumber":0,"utcconversiontimezonecode":105,"versionnumber":9898101}]

      SubCommentID=sYIWNuOR4PP6cvK, CommentID=Y8UU6WVxr8KwJnc, PostID=Gt6nESFPYqVwsqC

  • ypicot

    Membre
    3 avril 2023 à 16h34

    Et bien PA ne trouve pas ce champ… parce qu’il est filtré par ton JSON.

    D’après la capture d’écran de ton msg initial, ftie_stagiaire est une table liée, et visiblement dataverse ne la transmet pas au “bon” format. Mon expérience avec le dataverse étant pour l’instant très limitée (merci les clients qui me laissent le choix entre SharePoint et SharePoint), je ne peux hélas pas être plus précis.

    Une idée de contournement : récupérer les données de ftie_stagiaire dans une collection spécifique que tu traites à part, puis que tu fusionnes avec ton autre liste.

    Une autre idée de contournement : écrire une requête SQL qui “aplatisse” tes données (cad qui mette les infos du stagiaire au même niveau que celles de sa signature, ce qui doit être possible puisque ta relation est dans le bon sens) de manière à supprimer cette notion de table liée.

    CommentID=PuKnYZ2OvFa0xb4, PostID=Gt6nESFPYqVwsqC

  • DavidZed

    Membre
    3 avril 2023 à 16h46

    Je confirme, après tests, la colonne lookup n’est pas supportéepar le JSON() et filtrée par le IgnoreUnsupportedTypes.

    Workarounds:

    • Il est possible d’executer un flux power automate pour récupérer les noms de colonnes

    • Autre option, créer un dataflow et récupérer les noms des colonnes avec un table.ColumnNames et stocker le résultat dans une table Dataverse

    CommentID=aLzod1UqIAQOs3u, PostID=Gt6nESFPYqVwsqC

  • Youcef DOUMANDJI

    Membre
    4 avril 2023 à 11h25

    Merci infiniment à Ypicot et DavidZed

    Je vais essayer de contourner le problème et vous tiens au courant.

    Mille mercis encore une fois.

    Youcef

    CommentID=qGSoisM9ujFwfkY, PostID=Gt6nESFPYqVwsqC

  • Youcef DOUMANDJI

    Membre
    5 avril 2023 à 14h42

    J’ai résolu mon problème en ajoutant dans DataVerse et dans deux tables concernées deux champs texte calculés (l’un pour récupérer le nom du stagiaire et l’autre pour récupérer le nom de la demie journée), j’ai ensuite utilisé ces deux champs pour filtrer mes galleries et alimenter mes collections afin qu’ellew soient “compatibles” avec les boucles FORALL et Collect.

    Merci encore à vous deux pour vos retours instructifs.

    Youcef

    CommentID=8MUO8pdClACh9gZ, PostID=Gt6nESFPYqVwsqC

Connectez-vous pour répondre.