SSIS Web服务任务XmlNode输入可能吗?(SSIS Web Service Task XmlNode Input POSSIBLE?)
我在过去的两周里搜索了互联网,尝试了很多不同的方式,我开始认为这可能不是通过SSIS中的Web服务任务实现的。 我使用提供的WSDL在SSIS中创建了一个Web服务任务 - 请参见下面的截图。
正如您所看到的,对此Web服务方法的要求是传入包含过滤器项的XML节点,如下所示:
<FilterItems><FilterItem FilterItemId="12345">4/20/2015 12:00:00 AM</FilterItem></FilterItems>
这个“FilterItems”节点将嵌套在另一个名为“TemplateValues”的XML元素之间 - 请参阅soap body:
<soap:Body> <GetReportResults xmlns="https://service.service.com"> <username>string</username> <password>string</password> <reportId>int</reportId> <templateValues>xml</templateValues> </GetReportResults>
我面临的问题是,当我在SSIS中的变量列表中选择数据类型时,没有XML数据类型,所以我必须使用字符串。 有趣的是,我可以使用SOAPUI并通过传入调用相同的方法没有问题:
<FilterItems><FilterItem FilterItemId="12345">4/20/2015 12:00:00 AM</FilterItem></FilterItems>
这是我能够使用的SOAPUI调用:
<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>
正如您所看到的,我只是在元素和SOAPUI之间粘贴了xml处理请求而没有任何问题 - 那么为什么SSIS Web服务任务不能处理同样的请求呢?
我的想法是,因为SSIS强迫我使用字符串变量来存储xnlNode,正在解析某些字符。 以下是调试和运行Web服务任务时变量的结果:
Value <FilterItems><FilterItem FilterItemId=\"12345\">4/20/2015 12:00:00 AM</FilterItem></FilterItems>
调试结果显示引号已被转义,我相信这是问题的一部分。 以下是我尝试过的其他一些事情:
传入完全编码的XML(也尝试使用CDATA):
<FilterItems><FilterItem FilterItemId="12345">4/20/2015 12:00:00 AM</FilterItem></FilterItems>
我还尝试创建一个SQL任务,并在执行时抓住xml并将其添加到变量中。 再一次在运行时,为引号添加转义字符,导致方法不执行。 我发现很难相信这不是一个常见的问题,并且没有一个简单的解决方法将XML传递到Web服务任务。 这是SSIS中的错误还是仅仅是未实现的错误? 非常感谢帮助!
I've scoured the internet for the past two weeks and tried so many different ways that I'm beginning to think this might not be possible via a web service task in SSIS. I've created a web service task in SSIS by using a provided WSDL - see screenshot below.
As you can see the requirement for this web service method is to pass in an XML node which contains filter items like so:
<FilterItems><FilterItem FilterItemId="12345">4/20/2015 12:00:00 AM</FilterItem></FilterItems>
This "FilterItems" node is to be nested in between another XML element named "TemplateValues" - see soap body:
<soap:Body> <GetReportResults xmlns="https://service.service.com"> <username>string</username> <password>string</password> <reportId>int</reportId> <templateValues>xml</templateValues> </GetReportResults>
The problem I'm facing is that when I go to chose a data type in the variable list in SSIS, there is no XML data type so I have to use a string. The funny part is that I can use SOAPUI and call the same method with no issues just by passing in:
<FilterItems><FilterItem FilterItemId="12345">4/20/2015 12:00:00 AM</FilterItem></FilterItems>
Here is the SOAPUI call that I am able to use:
<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>
As you can see, I've just pasted the xml in between the element and SOAPUI processes the request with no problem - so why can't SSIS web service task process this same request?
My thoughts are that since SSIS is forcing me to use a string variable to store the xnlNode that certain characters are being parsed. Here are the results of the variable when I debug and run the web service task:
Value <FilterItems><FilterItem FilterItemId=\"12345\">4/20/2015 12:00:00 AM</FilterItem></FilterItems>
The debugging results show that the quotes have been escaped and I believe this is part of the problem. Here are some other things I've tried:
Passing in entirely encoded XML(also tried using CDATA):
<FilterItems><FilterItem FilterItemId="12345">4/20/2015 12:00:00 AM</FilterItem></FilterItems>
I also tried creating a SQL task and when executed would grab the xml and add it to a variable. Once again at runtime, escape characters were added in for the quotes causing the method not to execute. I'm finding it hard to believe that this is not a common issue and there isn't an easy workaround to passing in XML into a web service task. Is this a fault in SSIS or just something that hasn't been implemented? Help would be much appreciated!
原文:https://stackoverflow.com/questions/29803088
最满意答案
您必须在
application.css
和application.js
提及添加的文件。 添加的任何新文件都必须在应用程序文件中提及,如果您使用资产,还必须使用rake:assets precompile
资产。You will have to mention the added files into
application.css
andapplication.js
. Any new files added will have to mentioned in the application file , and also you will have to precompile the assets usingrake:assets precompile
if you are using assets .
相关问答
更多-
直接在assets下创建的任何文件夹都将被添加到加载路径中。 该文件夹中的文件可以像往常一样引用: 如果你有 vendor/assets/custom/js/file.js vendor/assets/custom/css/file.css 那么vendor/assets/custom/将被添加到加载路径中。 执行以下操作将文件包含在以下文件中: 的application.js //= require js/file application.css.scss @import "css/file"; 完成之后 ...
-
rails 4资产管道供应商资产图像未被预编译(rails 4 asset pipeline vendor assets images are not being precompiled)[2022-10-17]
似乎默认情况下只有app / assets文件夹包含图像。 所以解决方案是将此行添加到config / application.rb config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif) It seems like images are included by default only from app/assets folder. So the solution is to add this line to config/application ... -
创建vendor/assets/images目录后,我必须重新启动rails服务器。 在此之前,我看到与您相同的错误(“没有路线匹配[GET]”)。 我的猜测是,rails服务器不会检查这些目录,如果它们不是首次启动时不存在。 当您打开rails控制台来诊断问题时,您将获得一个新的rails实例,该实例知道该目录,这仅仅会增加混淆。 I had to restart my rails server after creating the vendor/assets/images directory. Befo ...
-
首先将/vendor/plugins目录添加到资产加载路径: module MyApp class Application < Rails::Application config.assets.paths << Rails.root.join("vendor", "plugins") # Settings in config/environments/* take precedence over those specified here. # Application config ...
-
生产中的Rails 4 .scss不能从供应商/样式表导入.css(Rails 4 .scss in Production not importing .css from vendor/stylesheets)[2023-10-22]
原来,这不是一个错误的铁轨管道,这是一个错误与sass和加载CSS。 您只需将.css文件更改为.scss,然后全部开始正确加载。 在sass github上,它确实声明他们正在考虑将其发布到4.0版本中,但到目前为止它不工作。 事实证明,还有一些错误,但是通过在以下行的environments / production.rb中将false更改为true来修复这些错误。 config.assets.compile = true 将资产保留为真实将会影响加载时间。 Turns out it's not ... -
Rails中的供应商/资产(Vendor/assets in Rails)[2022-10-19]
您必须在application.css和application.js提及添加的文件。 添加的任何新文件都必须在应用程序文件中提及,如果您使用资产,还必须使用rake:assets precompile资产。 You will have to mention the added files into application.css and application.js . Any new files added will have to mentioned in the application file , ... -
尝试: /* *= require_self *= require bootstrap *= require sass_main *= require_directory ./twitter */ Try: /* *= require_self *= require bootstrap *= require sass_main *= require_directory ./twitter */
-
第三方应明确手工包括在内。 这是因为这些库有许多可选部分,例如源代码,自述文件等。如果您需要其他内容(如图像或字体),则可以在公用文件夹中添加此文件或执行以下操作: 配置/ application.rb中 config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif, "fontawesome-webfont.ttf", "fontawesome-webfont.eot", "fontawesome-webfont.svg", "fontawesome-we ...
-
简短的版本 - 如果它是一个插件将它放入供应商/插件,如果它是一个宝石它去供应商/宝石。 但是,没有必要通过子模块跟踪gem依赖关系--Rails配置就足够了。 因此,通常的模式是:使用config.gem进行gem依赖关系跟踪,使用git-submodules进行插件依赖 - 并且插件总是转到vendor / plugins。 The short version - if it's a plugin put it into vendor/plugins, if it's a gem it goes to ...
-
我不确定你是否看过这个页面 ,但我有类似的问题,这帮助了我。 我会检查以确保config/application.rb有config.serve_static_assets = true 如果你这样做,我会跳到调试部分 So after some trial and error and getting feedback, below are some take away that I hope can help others in the future. The short of it is that, i ...