JSON tester la présence d’une valeur

  • JSON tester la présence d’une valeur

    Posté par Mick sur 14 juin 2024 à 15h28

    Bonjour,
    Je travaille avec un fichier json que je constitue depuis une LSP. J’ai possitionné des étiquettes pour définir des jours de planification. Lundi Mardi, Vendredi.

    J’ai besoin de retrouver le jour de la semaine ou je dois agir. il peut y avoir des trous comme au dessus.

    J’ai donc un json avec mes jours de la semaine, que je voudrai passer en revu pour savoir quand agir.

    Si nous sommes Mardi,

    Test mercredi => KO
    Test jeudi => KO
    Test Vendredi => OK

    Pour faire ça je n’ai trouvé que la solution d’extraire les valeurs du champs de la LSP, puis de cncatainer une chaine lundimardivendredi et tester la présence du jour de la semaine dans cette chaine.

    <pre class=”language-markup”>[
    {
    "@odata.type": "#Microsoft.Azure.Connectors.SharePoint.LSPExpandedReference",
    "Id": 10,
    "Value": "lundi"
    },
    {
    "@odata.type": "#Microsoft.Azure.Connectors.SharePoint.LSPExpandedReference",
    "Id": 11,
    "Value": "mardi"
    },
    {
    "@odata.type": "#Microsoft.Azure.Connectors.SharePoint.LSPExpandedReference",
    "Id": 0,
    "Value": "vendredi"
    }
    ]

    Savez vous sil y a moyen de tester directement la présence d’une valeur dans une LSP ?
    Ce serait plus pratique.
    Merci d’avance.

    Mick a répondu Il y a 5 mois, 1 semaine 2 Membres · 7 Réponses
  • 7 Réponses
  • R3dKap

    Membre
    14 juin 2024 à 15h35

    Salut Mick,

    Peux-tu nous préciser comment est structurée ta LSP ? Et nous montrer à quoi ressemblent les données dedans ? Merci…

  • Mick

    Membre
    14 juin 2024 à 16h20

    <div class=”token-line”>Pour faire court, j’ai fais un tableau JSON avec mes valeurs comme ca. Je stocks toutes mes valeur pour les appeler suivant mes besoins. Ca me semble plus rapide que d’avoir des miriades de variables.
    Je vais récupére le numéro du jour actuel, puis par incrémentation du numéro je récupère le jour suivant pour tester avec les entrées de la LSP.
    </div>
    <div class=”token-line”> </div>
    <div class=”token-line”>
    <pre class=”language-markup”>[
    {
    "SEMDAY": {
    "0": "Dimanche",
    "1": "Lundi",
    "2": "Mardi",
    "3": "Mercredi",
    "4": "Jeudi",
    "5": "Vendredi",
    "6": "Samedi"
    }
    ]

    </div>
    <div class=”token-line”>Ce que je charge de la LSP correspond à ce que j’ai posté au dessus en filtrant avec un for Eatch sur le champ jourexecution.

    </div>
    <div class=”token-line”>
    <pre class=”language-markup”>[
    {
    "@odata.etag": "\"40\"",
    "ItemInternalId": "1",
    "ID": 1,
    "activite": "Telephone",
    "Execution": "2024-06-14T05:30:00Z",
    "Repetition": {
    "@odata.type": "#Microsoft.Azure.Connectors.SharePoint.LSPExpandedReference",
    "Id": 0,
    "Value": "Journaliere"
    },
    "Repetition#Id": 0,
    "PlanMois": [],
    "PlanMois@odata.type": "#Collection(Microsoft.Azure.Connectors.SharePoint.LSPExpandedReference)",
    "PlanMois#Id": [],
    "PlanMois#Id@odata.type": "#Collection(Int64)",
    "Joursexecution": [
    {
    "@odata.type": "#Microsoft.Azure.Connectors.LSPExpandedReference",
    "Id": 0,
    "Value": "lundi"
    },
    {
    "@odata.type": "#Microsoft.Azure.Connectors.SharePoint.LSPExpandedReference",
    "Id": 4,
    "Value": "mardi"
    },
    {
    "@odata.type": "#Microsoft.Azure.Connectors.SharePoint.LSPExpandedReference",
    "Id": 2,
    "Value": "vendredi"
    }
    ]


    </div>

    • Cette réponse a été modifiée Il y a 5 mois, 1 semaine par  Mick.
    • Cette réponse a été modifiée Il y a 5 mois, 1 semaine par  Mick.
    • Cette réponse a été modifiée Il y a 5 mois, 1 semaine par  Mick.
  • Mick

    Membre
    14 juin 2024 à 16h48

    En fait je récupère l’entrée jour execution.
    Puis je récupère les Values.
    Et enfin je concataine les valeurs.

    Ca me fait une chaine lundimardivendredi.
    C’est un peu compliqué. ^^

  • Mick

    Membre
    14 juin 2024 à 17h11

    En fait je récupère l’entrée jour execution.
    Puis je récupère les Values.
    Et enfin je concataine les valeurs.

    Ca me fait une chaine lundimardivendredi.
    C’est un peu compliqué. ^^

    • Cette réponse a été modifiée Il y a 5 mois, 1 semaine par  Mick.
    • Cette réponse a été modifiée Il y a 5 mois, 1 semaine par  Mick.
  • R3dKap

    Membre
    14 juin 2024 à 18h28

    Ok, merci pour les infos.

    Finalement si je résume : tu veux savoir quels jours de la semaine ont été choisis dans ta colonne Joursexecution qui est une colonne de type Choix.

    Alors il n’y a pas de technique plus simple que la tienne. La seule chose c’est que, plutôt que de concaténer les valeurs de Joursexecution, l’idée serait d’utiliser un booléen pour détecter la présence d’une journée :

    • initialiser boolJourTrouvé à False
    • boucler sur les jours de la semaine via ton JSON
      • boucler sur les valeurs de Joursexecution
        • si valeur jour de la semaine = valeur Joursexecution alors boolJourTrouvé à True

    Dans le post suivant, Tom explique comment vérifier la présence d’une valeur dans une colonne de type Choix : https://powerusers.microsoft.com/t5/Building-Flows/Sharepoint-multi-choice-column-check-if-value-exists-in-the/m-p/819334/highlight/true#M114349

  • Mick

    Membre
    17 juin 2024 à 10h13

    Merci de l’info,

    En effet, le booléen est plus propre que la recherche d’une chaine comme je fais actuellement.
    J’ai plus qu’à transposer. 👍

    J’avoue qu’il me faut être un peu plus clair sur mes demandes, je vais faire un effort. 😉
    A une prochaine.

  • Mick

    Membre
    17 juin 2024 à 14h16

    Le souci, c’est il faut que je fasse une boucle dans une boucle.
    Jour J, J+1, J+2… J+7
    Et enfin que je regarde pour chaque valeur si elle est présente dans les entrées de la LSP. 😓

Connectez-vous pour répondre.