Afficher les données de Dataverse dans une Page PowerPages

Étiquetté : ,

  • Afficher les données de Dataverse dans une Page PowerPages

    Posté par jean-paul-anoh sur 2 octobre 2023 à 10h25

    J’ai une table appelée “Case”. Dans cette, j’ai une colonne appelée “Status Reason”. Nous avons 4 types de “Status Reason” : Resolved, In Progres, Incomplet and Submitted

    Donc pour un utilisateur donné (connecté), je souhaite pouvoir compter le numéro de chaque statut de cet utilisateur. Voir l’image :

    A cet j’ai créé un Content Snippets avec le code suivant :

    <div>n    <h6>Resolved</h6>n    <p>CountOfInProcessCases = n        COUNTROWS(n            FILTER(n                'Cases',n                'Cases'[Status Reason] = "In process" && 'Case'[User] = USERNAME()n            )n        )n    </p>n    <span>[CountOfInProcessCases]</span>n</div>

    Mais qui ne fonctionne pas.

    J’ai donc besoin de votre aide !

    Merci !

    PostID=of1jPS04UkX18t7

    jean-paul-anoh a répondu Il y a 4 mois, 3 semaines 1 Membre · 13 Réponses
  • 13 Réponses
  • R3dKap

    Membre
    4 octobre 2023 à 7h18

    Gilles Pommier une idée pour aider notre ami Jean Paul Anoh ? Je sais que t’as déjà pas mal manipé sur Power Pages… 😉

    CommentID=Flnf21DFAFVRXkm, PostID=of1jPS04UkX18t7

    • jean-paul-anoh

      Membre
      4 octobre 2023 à 9h41

      Merci à vous, R3dKap

      SubCommentID=s5cYkABYHmyI1f6, CommentID=Flnf21DFAFVRXkm, PostID=of1jPS04UkX18t7

  • jean-paul-anoh

    Membre
    4 octobre 2023 à 13h29

    Bonjour !

    J’ai décidé d’utiliser fetchxml pour formater le résultat qui est sur l’image.

    Voici ce que j’ai fait:

    <div class="incidentResolved">n  <h6>Resolved</h6>n  {% fetchxml incideResolved %}n  <fetch version="1.0" output-format="xml-platform" mapping="logical">n    <entity name="incident">n      <attribute name="statuscode" />n      <filter type="and">n        <condition attribute="statuscode" aggregate='count' operator="eq" value="1" />n      </filter>n    </entity>n  </fetch>n  {% endfetchxml %}n  n  <span>{{ incideResolved }}</span>n  n</div>

    Mais je n’obtiens aucun résultat.

    Alors je vous prie de bien vouloir m’aider. Car je suis dans mes débuts avec Power Pages.

    Merci d’avance !

    CommentID=DCoetkeIepWisoD, PostID=of1jPS04UkX18t7

    • Tanguy Touzard

      Membre
      4 octobre 2023 à 14h19

      Je ne sais pas trop pour le Power FX mais pour le fetchxml, il est nécessaire de déclarer auparavant des permissions sur la table requêtée pour le role web utilisé. Est ce bien le cas?

      SubCommentID=DwrYIJgFJblnbWv, CommentID=DCoetkeIepWisoD, PostID=of1jPS04UkX18t7

    • jean-paul-anoh

      Membre
      4 octobre 2023 à 14h26

      J’ai ajouté des permissions et rôle sur la table.

      SubCommentID=xRisq8SS4QxxD1V, CommentID=DCoetkeIepWisoD, PostID=of1jPS04UkX18t7

    • jean-paul-anoh

      Membre
      4 octobre 2023 à 14h30

      Ma dernière modification qui ne marche toujours pas :

      <div class="incidentResolved">n  <h6>Resolved</h6>n  {% fetchxml incideResolved %}n  <fetch version="1.0" output-format="xml-platform" mapping="logical" aggregate='true'>n    <entity name="incident">n      <attribute name="statuscode" alias="incidentcount" aggregate="count" />n      <filter type="and">n        <condition attribute="statuscode" operator="eq" value="1" />n      </filter>n    </entity>n  </fetch>n  {% endfetchxml %}nn  <resultset morerecords="0">n    <result>n      <count>{{ incideResolved.results.incidentcount }}</count>n    </result>n  </resultset>n</div>

      SubCommentID=6FALEtrxPhBvhSC, CommentID=DCoetkeIepWisoD, PostID=of1jPS04UkX18t7

    • Tanguy Touzard

      Membre
      4 octobre 2023 à 14h55

      Le fetchxml est bon, j’arrive à l’exécuter sur mon poste.

      {% fetchxml my_queryall %}

      <fetch version=”1.0″ mapping=”logical”>

      <entity name=”feedback”>

      <attribute name=”feedbackid”/>

      <attribute name=”rating”/>

      <attribute name=”comments”/>

      <attribute name=”createdon”/>

      <attribute name=”createdbycontact” />

      <link-entity name=”mctools_pluginversion” from=”mctools_pluginversionid” to=”regardingobjectid”>

      <filter>

      <condition attribute=”mctools_pluginid” operator=”eq” value=”{{plugin.id}}”/>

      <condition attribute=”mctools_pluginversionid” operator=”neq” value=”{{latestVersion.id}}”/>

      </filter>

      </link-entity>

      t</entity>

      </fetch>

      {% endfetchxml %}

      Et comment j’exploite le résultat:

      {% assign sortedAllFeedbacks = my_queryall.results.entities | order_by : ‘createdon’, ‘desc’ %}

      {% if sortedAllFeedbacks.size == 0 %}

      <div>No feedback.</div>

      {% endif %}

      {% for feedback in sortedAllFeedbacks %}

      {% assign isAnonymous = entities.contact[feedback.createdbycontact.id].mctools_arepluginratinganonymous %}

      <div>{% for num in (1..feedback.rating) %} <span style=”color:#FFE600″ class=”glyphicon glyphicon-star”></span>{% endfor %} ({% if isAnonymous %}anonymous {% else %}{{feedback.createdbycontact.name}}{% endif %}, <time class=”timeago” datetime=”{{feedback.createdon | date_to_iso8601}}”></time>)</div>

      <div>{{feedback.comments}}</div>

      {% if forloop.last == false %}

      <hr/>

      {% endif %}

      {% endfor %}

      C’est le coté ResultSet/Result dans ton retour que je ne comprends pas. Essaye de faire comme moi en lisant le résultat.

      Ca devrait faire qq chose comme ci dessous pour obtenir le chiffre

      {{incideResolved.results.entities.first.incidentcount}}

      SubCommentID=Ncs4UlYf6qax8tE, CommentID=DCoetkeIepWisoD, PostID=of1jPS04UkX18t7

    • jean-paul-anoh

      Membre
      4 octobre 2023 à 16h05

      Grand merci Tanguy Touzard

      ça marche parfaitement

      SubCommentID=DBYG8qRXd8ck8ud, CommentID=DCoetkeIepWisoD, PostID=of1jPS04UkX18t7

    • jean-paul-anoh

      Membre
      4 octobre 2023 à 16h47

      Maintenant que ça marche parfaitement, je voudrais savoir comment le faire selon l’utilisateur qui est connecté. Cest-à-dire les informations extraites doivent être celles appartenant à l’utilisateur connecté sur le site web.

      <div class="incidentProblemSolved statuscode">n    <h6>Resolved</h6>n    {% fetchxml incidentProblemSolved %}n    <fetch version="1.0" output-format="xml-platform" mapping="logical" aggregate='true'>n      <entity name="incident">n        <attribute name="statuscode" alias="incidentcount" aggregate="count" />n        <filter type="and">n          <condition attribute="statuscode" operator="eq" value="5" />n        </filter>n      </entity>n    </fetch>n    {% endfetchxml %}nn    <resultset morerecords="0">n      <result>n        <count>{{incidentProblemSolved.results.entities.first.incidentcount}}</count>n      </result>n    </resultset>n  </div>

      SubCommentID=e74WI6C7eAGV793, CommentID=DCoetkeIepWisoD, PostID=of1jPS04UkX18t7

    • jean-paul-anoh

      Membre
      4 octobre 2023 à 18h02

      Voici le script que j’ai fait. Mais qui ne fonctionne pas pour le moment

      NB: la condition n{% if user %}n   {% assign username = user.fullname | escape %}n    <p>Welcome, {{ username | default: resx.Default_Profile_name }} !</p>nnfontionne. Mais le fetchxml ne marche pas.

      Contexte : La table “incident” est associéé à la table “systemuser”. Donc l’utilisateur qui crée un incident est le même qui se retrouve dans la table “systemuser”.

      Alors le principe est qu’on doit affiche le nombre de “statuscode” dont la valeur=5 de l’utilisateur connecté.

      <div class="userIncidentInfo">n  <h6>User Incident Information</h6>n   {% if user %}n   {% assign username = user.fullname | escape %}n    <p>Welcome, {{ username | default: resx.Default_Profile_name }} !</p>n    n    <!-- Script pour compter les incidents résolus pour l'utilisateur connecté -->n    {% fetchxml userIncidentInfo %}n    <fetch version="1.0" output-format="xml-platform" mapping="logical" aggregate='true'>n      <entity name="incident">n        <attribute name="statuscode" alias="incidentcount" aggregate="count" />n        <link-entity name='systemuser' from='systemuserid' to='ownerid'>n          <attribute name='incidentid' alias='incidentuser' />n        </link-entity>n        <filter type="and">n          <condition attribute="statuscode" operator="eq" value="5" />n        </filter>n      </entity>n    </fetch>n    {% endfetchxml %}n  n    <resultset morerecords="0">n      <result>n        <count>{{userIncidentInfo.results.entities.first.incidentcount}}</count>n      </result>n    </resultset>n  {% else %}n    <p>Please log in to access user-specific incident information.</p>n  {% endif %}n</div>

      SubCommentID=TlqYTGnuZoNSBzT, CommentID=DCoetkeIepWisoD, PostID=of1jPS04UkX18t7

  • jean-paul-anoh

    Membre
    5 octobre 2023 à 8h38

    Voici une modification que j’ai apporté au script précédent :

    <div class="userIncidentInfo">n  <h6>User Incident Information</h6>n  {% if user %}n    {% assign username = user.fullname | escape %}n    <p>Welcome, {{ username | default: resx.Default_Profile_name }} !</p>n    n    <!-- Script pour compter les incidents résolus pour l'utilisateur connecté -->n    {% fetchxml userIncidentInfo %}n    <fetch version="1.0" output-format="xml-platform" mapping="logical" aggregate='true'>n      <entity name="incident">n        <attribute name="statuscode" alias="incidentcount" aggregate="count" />n        <link-entity name="systemuser" from="systemuserid" to="ownerid" alias="systemuser">n          <filter type="and">n            <condition attribute="systemuserid" operator="eq" value="{{ user.systemuserid }}" />n          </filter>n        </link-entity>n        <filter type="and">n          <condition attribute="statuscode" operator="eq" value="5" />n        </filter>n      </entity>n    </fetch>n    {% endfetchxml %}n  n    <resultset morerecords="0">n      <result>n        <count>{{ userIncidentInfo.results.entities.first.incidentcount }}</count>n      </result>n    </resultset>n  {% else %}n    <p>Please log in to access user-specific incident information.</p>n  {% endif %}n</div>n

    Merci de le tester avec moi si c’est bon.

    CommentID=Xe77A7CVjequx0v, PostID=of1jPS04UkX18t7

    • Tanguy Touzard

      Membre
      5 octobre 2023 à 8h52

      Le fetchxml peut être simplifié:

      <fetch version="1.0" output-format="xml-platform" mapping="logical" aggregate='true'> <entity name="incident"> <attribute name="statuscode" alias="incidentcount" aggregate="count" /><filter type="and"> <condition attribute="statuscode" operator="eq" value="5" /><condition attribute="ownerid" operator="eq" value="{{ user.systemuserid }}" /> </filter> </entity> </fetch>

      SubCommentID=YkSZmc3LE3kgzC6, CommentID=Xe77A7CVjequx0v, PostID=of1jPS04UkX18t7

    • jean-paul-anoh

      Membre
      5 octobre 2023 à 12h06

      Ok super.. Merci

      SubCommentID=njqUefwJXUd9g1R, CommentID=Xe77A7CVjequx0v, PostID=of1jPS04UkX18t7

Connectez-vous pour répondre.