JSON tester la présence d’une valeur

  • JSON tester la présence d’une valeur

    Posté par Mick sur 14 juin 2024 at 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 11 months ago 2 Membres · 7 Réponses
  • 7 Réponses
  • R3dKap

    Member
    14 juin 2024 at 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

    Member
    14 juin 2024 at 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>

    • This reply was modified 11 months, 1 week ago by  Mick.
    • This reply was modified 11 months, 1 week ago by  Mick.
    • This reply was modified 11 months, 1 week ago by  Mick.
  • Mick

    Member
    14 juin 2024 at 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

    Member
    14 juin 2024 at 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é. ^^

    • This reply was modified 11 months, 1 week ago by  Mick.
    • This reply was modified 11 months, 1 week ago by  Mick.
  • R3dKap

    Member
    14 juin 2024 at 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

    Member
    17 juin 2024 at 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

    Member
    17 juin 2024 at 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.