gpt4 book ai didi

sql - 查询结果的 SOAP 调用(SSRS、Sharepoint)

转载 作者:数据小太阳 更新时间:2023-10-29 02:32:55 26 4
gpt4 key购买 nike

我使用连接到共享点列表的共享数据源在 VS 中创建了一个报告。在报告中,我创建了一个数据集,其中包含对数据源的 SOAP 调用,因此我从表中的共享点列表中获取结果。

这是肥皂电话

<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>

这很好用,我有一个可以在报告中显示的结果,但我希望能够选择一个参数来过滤结果。我已经创建了一个参数,当我预览报告时,我看到了一个下拉框,我可以使用它从标题字段中进行选择,当我这样做时它仍然显示第一条记录,显然它还没有工作(DUH!)因为我需要在某处 创建查询,但是!我不知道在哪里,我试着包括

   <Where>
<Eq>
<FieldRef Name="ows_Title" />
<Value Type="Text">testValue</Value>
</Eq>
</Where>

在 soap 请求中,但它没有用...我搜索了 intarwebz 但找不到任何类似的问题...现在有点卡住了...对此有什么想法吗?

编辑

这是我根据链接的博文 Alex Angas 使用的查询。

<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>

我尝试以各种可能的方式在现有的查询语句中放置新的查询语句,但它根本不起作用,虽然我没有收到错误,所以代码是有效的,但我仍然得到一个未过滤的列表作为返回...把我的头发拉出来!

最佳答案

帖子:

http://social.msdn.microsoft.com/forums/en-US/sqlreportingservices/thread/1562bc7c-8348-441d-8b59-245d70c3d967/

建议使用此语法放置 节点(此示例是检索 ID 为 1 的项目):

<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>{CE7A4C2E-D03A-4AF3-BCA3-BA2A0ADCADC7}</DefaultValue>
</Parameter>
<Parameter Name="query" Type="xml">
<DefaultValue>
<Query>
<Where>
<Eq>
<FieldRef Name="ID"/>
<Value Type="Integer">1</Value>
</Eq>
</Where>
</Query>
</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">*</ElementPath>
</Query>

但是这会给我以下错误:

无法对指定的 URL 执行网络请求

详细信息如下:

元素<查询>;参数查询丢失或无效

通过使用 Microsoft 网络监视器查看 SOAP 消息,看起来 节点似乎正在转义到 节点。等等,这就是它失败的原因。

但是,我能够使用 Martin Kurek 的回复中描述的方法让它工作:

http://www.sharepointblogs.com/dwise/archive/2007/11/28/connecting-sql-reporting-services-to-a-sharepoint-list-redux.aspx

所以,我用这个作为我的查询:

<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>{CE7A4C2E-D03A-4AF3-BCA3-BA2A0ADCADC7}</DefaultValue>
</Parameter>
<Parameter Name="query" Type="xml">
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">*</ElementPath>
</Query>

然后在数据集上定义了一个名为query的参数,其值如下:

<Query><Where><Eq><FieldRef Name="ID"/><Value Type="Integer">1</Value></Eq></Where></Query>

通过将查询数据集参数设置为以下表达式,我还能够使查询依赖于报告参数:

="<Query><Where><Eq><FieldRef Name=""ID""/><Value Type=""Integer"">" & 
Parameters!TaskID.Value &
"</Value></Eq></Where></Query>"

关于sql - 查询结果的 SOAP 调用(SSRS、Sharepoint),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1074529/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com