C# SSIS Web服务任务XmlNode输入是否可能?
在过去的两周里,我浏览了互联网,尝试了很多不同的方法,我开始认为这可能不可能通过SSIS中的web服务任务实现。我使用提供的WSDL在SSIS中创建了一个web服务任务-请参见下面的屏幕截图 如您所见,此web服务方法的要求是传入一个XML节点,该节点包含如下筛选器项:C# SSIS Web服务任务XmlNode输入是否可能?,c#,xml,web-services,ssis,C#,Xml,Web Services,Ssis,在过去的两周里,我浏览了互联网,尝试了很多不同的方法,我开始认为这可能不可能通过SSIS中的web服务任务实现。我使用提供的WSDL在SSIS中创建了一个web服务任务-请参见下面的屏幕截图 如您所见,此web服务方法的要求是传入一个XML节点,该节点包含如下筛选器项: <FilterItems><FilterItem FilterItemId="12345">4/20/2015 12:00:00 AM</FilterItem></FilterItem
<FilterItems><FilterItem FilterItemId="12345">4/20/2015 12:00:00 AM</FilterItem></FilterItems>
我还尝试创建一个SQL任务,执行时会获取xml并将其添加到变量中。在运行时,再次为引号添加转义字符,导致方法无法执行。我发现很难相信这不是一个常见的问题,而且将XML传递到web服务任务中也没有一个简单的解决方法。这是SSIS中的一个故障还是只是一些尚未实现的问题?非常感谢您的帮助 看起来唯一的答案是将web服务更改为只接受简单类型作为参数。我已经浏览了web,似乎没有办法动态地创建复杂类型,以供web服务任务中的输入值使用
另请参见:是的,我相信你是对的。最后,我使用SOAP信封编写了一个脚本任务is SSIS,并成功地调用了web服务。
<soap:Body>
<GetReportResults xmlns="https://service.service.com">
<username>string</username>
<password>string</password>
<reportId>int</reportId>
<templateValues>xml</templateValues>
</GetReportResults>
<FilterItems><FilterItem FilterItemId="12345">4/20/2015 12:00:00 AM</FilterItem></FilterItems>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="https://service.servicename.com">
<soapenv:Header/>
<soapenv:Body>
<ser:GetReportResults>
<!--Optional:-->
<ser:username>username</ser:username>
<!--Optional:-->
<ser:password>12343</ser:password>
<ser:reportId>000</ser:reportId>
<!--Optional:-->
<ser:templateValues>
<FilterItems><FilterItem FilterItemId="12345">4/20/2015 12:00:00 AM</FilterItem></FilterItems>
</ser:templateValues>
</ser:GetReportResults>
</soapenv:Body>
</soapenv:Envelope>
Value <FilterItems><FilterItem FilterItemId=\"12345\">4/20/2015 12:00:00 AM</FilterItem></FilterItems>
<FilterItems><FilterItem FilterItemId="12345">4/20/2015 12:00:00 AM</FilterItem></FilterItems>