【原创】PB调用SAP的Web Service结构体数组参数方法详解(使用C#调用Web Service生成dll)

本文详细介绍了如何使用C#调用具有结构体数组参数的SAP Web Service,并生成DLL供PowerBuilder(PB)调用。通过在C#中处理结构体数组并转换为字符串数组,解决了PB对结构体数组支持不足的问题。文章包括创建C#类库、引用Web Service、生成DLL、初始化DLL环境以及在PB中调用DLL的步骤。
摘要由CSDN通过智能技术生成

  最近接口项目需要用PB调用SAP的Web Service,研究了PB的Webservice Proxy很久。

  第1个问题是SAP的Web Service有身份验证,主程序是PB9开发的,pbsoapclient90.pbd里没有对应函数,说是需要PB10以上,PB11.5经验证可以解决。或者安装微软SOAP工具控件,PB9通过它调用Web Service也是可以的。

  但核心问题来了:SAP的Web Service函数中参数实际传输的是Table,也就是结构体数组参数。测试证明,即使PB12.5都对结构体参数的Web Service支持不完善,就不要说结构体数组了!

  肿么办?研究发现,我们可以使用C#调用结构体数组参数的Web Service,然后拆解为单结构体,转换为字符串数组参数,封装为DLL函数,供PB调用。这种方式理论上,应该适用于PB的任何版本。

  ——by nocry115/泥草鞋


  这里,我们以VS2010 C#与PB9进行说明;将对方Web Service的WSDL文件拷贝到本地,这个Web Service定义了1个函数,其参数为结构体数组,返回一个含2字符串的结构体。

1、使用C#调用Web Service生成dll

  1)首先,新建Visual C#的“类库”项目,我们可以命名为:sapws1(注意:C#区别大小写)。


  双击改项目的属性Properties,在“应用程序”页面点击【程序集信息】。


  在“为COM互操作注册”处打钩。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值