SSIS WebService任务插入XML标头

时间:2017-03-23 10:12:44

标签: sql-server xml web-services ssis

我遇到一个问题,我有一个XML Web服务,其输入参数位于标头中,而不是XML的主体。这导致Web服务任务的参数部分为空。

SSIS Web服务任务似乎不处理标题中的输入参数。

当我使用soapUI时,它显示标题中的输入(参见附图)

我猜我将不得不写一个脚本任务来做这个,但如果有人之前遇到过这个问题并且可以指出我正确的方向,那就太棒了。

是否可以对WSDL进行屠宰? (我宁愿不会) 非常感谢,如果需要更多信息,请不要犹豫。

SoapUIXML

1 个答案:

答案 0 :(得分:2)

回答我自己的问题......

结果令人沮丧。对我的问题的简短回答是肯定的,你必须使用代码更新标题参数。

我不得不写一些c#来使用webservice并吐出数据。我还在https://technet.microsoft.com/en-us/library/ms155134.aspx之后使用wsdl.exe创建了一个代理类。

最初,我将此作为脚本组件源编写,但不断收到以下错误:

数据流任务时出错[XML Source [1]]:XML Source上的自定义属性“XMLData”的值不正确。 数据流任务[SSIS.Pipeline]出错:“XML Source”验证失败并返回验证状态“VS_ISBROKEN”。 数据流任务[SSIS.Pipeline]出错:“XML Source.Outputs [XML Source Output]”不包含输出列。异步输出必须包含输出列。 数据流任务[SSIS.Pipeline]出错:一个或多个组件验证失败。 数据流任务出错:任务验证期间出错。  (Microsoft.DataTransformationServices.VsIntegration)

我在visual studio中调试了这个,输出到控制台屏幕。一切正常。

在此之后,我将其重新创建为脚本任务并输出到变量。一切正常。

我要感谢以下链接和博客的帮助:

http://blog.reckonedforce.com/tag/consuming-web-services-in-ssis-script-task/

希望这有助于某人。