Afficher les données de Dataverse dans une Page PowerPages
Étiquetté : Dataverse, power page
-
Afficher les données de Dataverse dans une Page PowerPages
Posté par jean-paul-anoh sur 2 octobre 2023 à 10h25J’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 1 année, 1 mois 1 Membre · 13 Réponses -
13 Réponses
-
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
-
Merci à vous, R3dKap
SubCommentID=s5cYkABYHmyI1f6, CommentID=Flnf21DFAFVRXkm, PostID=of1jPS04UkX18t7
-
-
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
-
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
-
J’ai ajouté des permissions et rôle sur la table.
SubCommentID=xRisq8SS4QxxD1V, CommentID=DCoetkeIepWisoD, PostID=of1jPS04UkX18t7
-
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
-
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
-
Grand merci Tanguy Touzard
ça marche parfaitement
SubCommentID=DBYG8qRXd8ck8ud, CommentID=DCoetkeIepWisoD, PostID=of1jPS04UkX18t7
-
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
-
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
-
-
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
-
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
-
Ok super.. Merci
SubCommentID=njqUefwJXUd9g1R, CommentID=Xe77A7CVjequx0v, PostID=of1jPS04UkX18t7
-
Connectez-vous pour répondre.