SSRS php库SetItemDataSources,输入结构中缺少必填字段Item

时间:2017-05-26 20:57:02

标签: c# php reporting-services

在PHP中, 使用通过composer安装的SSRS报告服务库:chriskl / phpssrs“:”^ 0.1.2

成功调用CreateCatalogItem(...)后,看到SQL Server Reporting Services中存在该报告,运行SetItemDataSources(...)时遇到错误(下面列出的消息和堆栈跟踪)。

同事能够正确运行呼叫,但是其他2个环境也会因同样的错误而失败。所以这看起来可能是一个环境问题,并要求任何帮助指出我们可能是什么,或其他。

错误状态

  

“输入结构中缺少必填字段项”

所以我们认为它可能是一个版本问题,一个版本的SSRS服务正在寻找一个Item字段,而我们正在使用的库没有提供它。

SOAP调用的内容不包含名为Item的元素。

以下是失败的代码:

$connName = 'MyConnName';

$dsd = new DataSourceDefinition(
    'SQL',          //Extension
    null,           //ConnectString
    true,           //UseOriginalConnectString
    true,           //$OriginalConnectStringExpressionBased
    'Integrated',   //$CredentialRetrieval
    false,          //$WindowsCredentials
    false,          //$ImpersonateUser
    "Specify a user name and password for data source {$connName}:",    //$Prompt
    null,           //$UserName
    null,           //Password
    true            //Enabled
);

$ds = new DataSource(
        $connName,
        null,
        null,
        $dsd
);

$sids = new SetItemDataSources($path . $name, [$ds]);

$rs->SetItemDataSources($sids);

这是调用产生的错误(异常):

  

System.Web.Services.Protocols.SoapException:输入结构中缺少必填字段Item。 ---> Microsoft.ReportingServices.Diagnostics.Utilities.MissingElementException:输入结构中缺少必填字段Item。 at Microsoft.ReportingServices.Library.ReportingService2005Impl.SetItemDataSources(String Item,DataSource [] DataSources,Guid batchId)at Microsoft.ReportingServices.Library.ReportingService2005Impl.SetItemDataSources(String Item,DataSource [] DataSources)at Microsoft.ReportingServices.WebServer.ReportingService2010。 SetItemDataSources(String ItemPath,DataSource [] DataSources)

0 个答案:

没有答案