SOAPMANAGER 和 wsadmin WSDL 的不同返回
我正在尝试使用 SAP Web 服务执行简单的应用程序。我通过 SOAPMANAGER 获得了 WSDL 链接,将其作为 Web 参考添加到项目中,并使用 C# 创建了复杂类型,其中包括 RFC 导入/导出参数和表。如果我想调用 Web 服务方法,我将所有值发送到复杂类型的变量中,并且返回值也具有相同的类型。
但返回的表是初始的。
但是,通过从另一个系统中的 wsconfig/wsadmin 接收到 WSDL 链接(RFC 相同),C# 不会为每个 RFC 参数创建任何复杂类型,而是创建简单类型,并且值会正确返回。
为什么 SOAPMANAGER 和 wsconfig 创建不同的 WSDL?如何解决这个问题呢?
有什么提示或技巧吗?
I'm trying to do simple application consuming SAP web service. I ave WSDL link via SOAPMANAGER which I added to project as web reference, and C# created complex type which includes RFC import/export parameters and tables. If I want to call web services method I send all my values in a variable of complex type and returned values also has the same type.
But returned tables are initial.
However, with WSDL link received from wsconfig/wsadmin in another system (RFC is the same), C# didn't create any complex type but simple types for each RFC parameter and the values are returned correctly.
Why SOAPMANAGER and wsconfig create different WSDLs? How to solve this problem?
Any tips or tricks?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正如已经提到的,wsconfig 和 wsadmin 已被视为已弃用,因此您应该始终使用 soamanager 事务。当您在 soamanager 中打开 Web 服务的 WSDL 时,您将在新的浏览器窗口中看到它。在它的地址位置栏(例如:URL)中,您会在末尾的某个位置看到“../ws_policy/..”——尝试将其替换为“../standard/..”并使用这个新的重新加载 WSDL地址,然后将这个新的/其他 WSDL 用于您的客户端程序。
这有帮助吗?
As already mentioned, wsconfig and wsadmin is considered deprecated, so you should always use the soamanager transaction. When you open the WSDL for a web service in soamanager, you will see it in a new browser window. In it's address location bar (say: the URL) you see somewhere at the end a "../ws_policy/.." -- try to replace this to "../standard/.." and reload the WSDL with this new address, then use this new/other WSDL for your client program.
Does this help?
两个系统是否处于同一版本级别?对于较新的版本,WSDL 生成机制可能会发生变化。因此,
wsconfig / wsadmin
已被视为已弃用,您应该使用soamanager
(如果可用)。Are both systems on the same release level? With newer releases, there could be changes in the WSDL generation mechanism. So
wsconfig / wsadmin
is considered deprecated and you should usesoamanager
if available.