Appel SOAP avec requête sur le résultat (SSRS, Sharepoint)
J'ai créé un rapport de VS à l'aide d'une source de données partagée qui est connecté à une liste sharepoint. Dans le rapport, j'ai créé un jeu de données avec un SAVON appel à la source de données si je reçois le résultat de la liste sharepoint dans une table.
c'est le savon d'appel
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetListItems</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap/" Name="GetListItems">
<Parameters>
<Parameter Name="listName">
<DefaultValue>{BD8D39B7-FA0B-491D-AC6F-EC9B0978E0CE}</DefaultValue>
</Parameter>
<Parameter Name="viewName">
<DefaultValue>{E2168426-804F-4836-9BE4-DC5F8D08A54F}</DefaultValue>
</Parameter>
<Parameter Name="rowLimit">
<DefaultValue>9999</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">*</ElementPath>
</Query>
Cela fonctionne bien, j'ai un résultat qui je peux vous le montrer dans un rapport, mais je veux avoir la possibilité de sélectionner un paramètre pour filtrer le résultat. J'ai créé un paramètre et quand j'ai aperçu le Rapport je vois le dropdownbox que je peux utiliser pour faire une sélection dans le champ Titre, lorsque je fais ceci, cela montre tout de même le premier enregistrement, évidemment, ça se complique fonctionnent pas encore (DUH!) parce que j'ai besoin de créer une requête quelque part, Mais! Je n'ai aucune idée d'où, j'ai essayé d'inclure
<Where>
<Eq>
<FieldRef Name="ows_Title" />
<Value Type="Text">testValue</Value>
</Eq>
</Where>
dans la requête soap mais ça n'a pas fonctionné... j'ai cherché sur teh intarwebz mais ne pouvais pas trouver toutes) des nouvelles de problèmes... un peu coincé maintenant...des idées sur ce point?
MODIFIER
Voici la requête que j'ai utilisé selon l'article sur le blog d'Alex Angas liés.
<Query>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetListItems</SoapAction>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap/" Name="GetListItems">
<queryOptions></queryOptions>
<query><Query>
<Where>
<Eq>
<FieldRef Name="ows_Title"/>
<Value Type="Text">someValue</Value>
</Eq>
</Where>
</Query></query>
<Parameters>
<Parameter Name="listName">
<DefaultValue>{BD8D39B7-FA0B-491D-AC6F-EC9B0978E0CE}</DefaultValue>
</Parameter>
<Parameter Name="viewName">
<DefaultValue>{E2168426-804F-4836-9BE4-DC5F8D08A54F}</DefaultValue>
</Parameter>
<Parameter Name="rowLimit">
<DefaultValue>9999</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">*</ElementPath>
</Query>
J'ai essayé de mettre la nouvelle instruction de la requête dans tous les sens possible, dans l'existant, mais il ne fonctionne pas du tout, je ne reçois pas une erreur si le code est valide, mais j'ai toujours pas filtré liste de retour... tirant mes cheveux ici!
OriginalL'auteur erik404 | 2009-07-02
Vous devez vous connecter pour publier un commentaire.
Un poste à:
http://social.msdn.microsoft.com/forums/en-US/sqlreportingservices/thread/1562bc7c-8348-441d-8b59-245d70c3d967/
A suggéré d'utiliser cette syntaxe pour le placement de la <Query> nœud (cet exemple est de récupérer l'élément avec l'ID 1):
Cependant, ce serait me donner le message d'erreur suivant:
Échec de l'exécution de la demande web pour l'URL spécifiée
Avec de la suite dans les détails:
Élément <Query> de la requête de paramètre est manquant ou non valide
En regardant le message SOAP avec le Moniteur Réseau Microsoft, il semble que la <Query> nœud est arriver échappé à <Query>, etc, c'est pourquoi il échoue.
Cependant, j'ai été en mesure d'obtenir ce travail à l'aide de la méthode décrite dans l'arrêt Martin, Kurek réponse à:
http://www.sharepointblogs.com/dwise/archive/2007/11/28/connecting-sql-reporting-services-to-a-sharepoint-list-redux.aspx
J'ai utilisé ce que ma requête:
Et la définition d'un paramètre sur l'ensemble de données d'une requête nommée, avec la valeur suivante:
J'ai aussi été en mesure de faire ma requête dépend d'un paramètre de rapport, par la définition de la requête de dataset paramètre de l'expression suivante:
OriginalL'auteur Saxon Druce
Voir la question et des réponses pour GetListItems Webservice ignore mon filtre de requête. Cela vous montre comment (et comment ne pas) mis en place votre appel SOAP pour inclure une requête. Vous avez probablement besoin d'envelopper votre requête avec un autre
<Query></Query>
.OriginalL'auteur Alex Angas
Vous avez votre FieldRef comme
Je crois qu'il faut juste être Titre.
Lorsque vous obtenez des résultats de la requête SOAP toutes vos nom du champ est de commencer avec
OriginalL'auteur Lance Perry
Génial, merci. Cette solution a fonctionné pour queryOptions aussi.
Dans la Requête:
Et dans la liste des paramètres de la base de données:
Nom: queryOptions
Valeur:
<QueryOptions><Folder>Shared Documents/MyFolder</Folder></QueryOptions>
OriginalL'auteur