Pb调用Webservice
pb调用Webservice步骤

return
catch (PBXRuntimeError e15)
messagebox('调用方法','调用 函数出现 运行错误 错误!')
st_waiting.visible = false
return
catch (RUNtimeerror e16)
下面是我调用他们的下载疾病目录 过程
int mess
mess = messagebox('提示','确定要重新下载数据吗?',question!,yesno!,2)
if mess = 2 then return
st_waiting.visible = true
//////////////////////////
err = '创建实例失败,请检查代理对象是否正确,错误代码'
messagebox('',err)
st_waiting.visible = false
return
end if
//第二步 调用 Ws的方法 , 因为方法不一样,所有函数参数也不一样
string WebService_Return_Values
end if
// 第四部 把返回的值 通过 PBDOM , 转化成 XML 文件
PBDOM_BUILDER pbdom_bldr
PBDOM_Document pbdom_doc
PBDOM_Object pbdom_obj_array[]
PBDOM_Element pbdom_elem
destroy i_conn
PB11.5 WebService中使用的PBSoapClient115.PBD和PBWSClient115

PB11.5 WebService中使用的PBSoapClient115.PBD和PBWSClient115.时间:2011-05-12 18:17 来源:未知点击: 292次PB11.5 WebService中使用的PBSoapClient115.PBD和PBWSClient115.PBD的含义、差别和使用方法PB11.5 WebService中使用的PBSoapClient115.PBD和PBWSClient115.PBD的含义、差别和使用方法自PB10.5开始,PB中生成WebServie的向导中就多了一个选项:Use .NET Engine,对应这个选项,也多了两个文件PBWSClient105.PBD和PBWSClient105.PBX,这是怎么回事?为什么针对WebService,PB会搞两个方法?有不少客户和网友问到这相关的问题,我这里讲我的理解和研究和大家分享如下:(为了方便,就以PB11.5为例)1:PBSoapClient115是针对EasySoap标准的(Java),PBWSClient115是针对.NET标准的虽然WebService本应是一个通用的标准,但你会发现EasySoap标准和.NET标准的WebService 是有一些差别的,我观察到差别有这些:A>PB对EasySoap标准的WebService支持可能不完整,生成的WebService往往不会让人很满意,比如,结构体会无端的加上一个前缀,和你之前定义的不同。
B>PB对.NET的WebService生成Proxy时,WebService的路径不是一个WSDL文件,而是一个asmx文件,当然你也可以在asmx后加一个?wsdl来转换。
C>如果是在.NET WebForm或.NET WinForm中,你使用PBWSClient115.PBD是没法发布的,你需要用PBWSClient115.PBL(下文会讲如何生成这个文件)2:如何在.NET WebForm或.NET WinForm中使用PBWSClient115.PBL在PB11.5中,如果要在.NET WebForm或.NET WinForm调用WebService,你必须使用Use .NET Engine方式生成WebService(我猜测是因为PBWSClient115.PBX使用了.NET FrameWork2.0的缘故),而且Target的Library List中需要用PBWSClient115.PBL,下面是步骤:A>创建一个PBL文件,取名PBWSClient115.PBL,并加入到您的Target中B>在这个PBWSClient115.PBL上点右键,选择Import PB Extension...选择PBWSClient115.PBX 导入3、您可以用PBSoapClient115.PBD来调用.NET标准的WebService在PB11.5中,如果你不是要在.NET Target中调用.NET标准的WebService,你只要在生成WebService的Proxy时不选择Use .NET Engine,并且在asmx文件后面加一个?wsdl,就可以生成一个EasySoap标准的Proxy,这时你可以把PBSoapClient115.PBD包含到你的Library List中来调用这个WebService。
pb webservice调用例子

以下是一个使用PowerBuilder(PB)调用WebService的示例,字数超过1500字。
首先,确保你已经在PowerBuilder中创建了一个WebService方法,并将其发布为IIS 方式。
然后,按照以下步骤进行操作:创建PB的解决方案文件:在PowerBuilder中创建一个新的解决方案文件,并确保引用了一个pbwsclient11.pbd文件。
这个文件在安装路径中可以找到。
创建对象:从"工具箱"中拖动一个"WebServiceProxyWizard"图标到PowerBuilder的设计界面。
这将创建一个新的对象,用于调用WebService。
连接SOAP对象:在代码编辑器中,使用以下代码连接SOAP对象:ls_s1 = "abc"ls_s2 = "def"// 连接SOAP对象if ole_ws.ConnectToNewObject("MSSOAP.SoapClient30") < 0 thenif ole_ws.ConnectToNewObject("MSSOAP.SoapClient") < 0 thenthrow CreateRuntimeError(ls_error)end ifend if这段代码将尝试连接到两个不同的SOAP客户端对象。
如果连接失败,将抛出一个运行时错误。
初始化WebService地址:使用以下代码初始化WebService的地址:vbnetole_ws.mssoapinit(ls_address)其中,ls_address是WebService的WSDL文件路径。
调用方法:使用以下代码调用WebService方法:vbnetls_return = ole_ws.addstr(ls_s1, ls_s2)其中,addstr是WebService方法名,ls_s1和ls_s2是方法的参数。
PB调用各类WebService或c#程序

PB调用各类WebService或c#程序慢慢的有很多接口pb都已经无法调用了,还有一些进制计算,位移等pb都无法实现,这时最简单的就是用c#做好,让pb调用。
但是pb只能调用最基础的c++开发的标准dll。
通过无数次的百度,我找到了一个好的方法,也许您已经知道了。
但是我觉得还是要写出来,只要还有一个为此发愁的朋友存在。
谢谢!方法思路是:1、用c#写一个类,方法的参数一定要用标准数据类型,返回值也要是标准数据类型(string、int或者结构等等)。
在这个方法里面调用各类webservice或其他http接口等pb无法直接调用的。
2、我正巧要做一个调用java写的webservice,下面贴出代码,供参考,因为用csc.exe编译程序无法处理引用,所以using System;using System.Collections.Generic;using System.Text;using System.Security.Cryptography;namespace ysxt{public class ws{public string sendrecv(string sUser, string sPwd){string retu = "";try{xjca.YsxtMainServiceImplService myrefe = new xjca.YsxtMainServiceImplService(); //这里就是解决csc.exe无法编译引用问题的,xjca是在另外一个ysws.cs文件里,这个cs文件不是我写的,也不能写出来,这是用另外一个命令生成出来的,具体命令看本文最后备注myrefe.Url = myUrl;retu = myrefe.sendRecv(sUser, sPwd);}catch (Exception e){return e.Message;//一定要用try....catch,否则pb调用过程中出现错误,都没有办法知道哪里错了,这句话就是关键。
PB9.0调用Webservice步骤以及相关问题

PB9.0调用Webservice步骤以及相关问题1,pb安装路径下找到pbsoapclient90.pbd,加到程序中;2,pb-->file--->new---->webservice Proxy Wizard输入webservice wsdl url ,一般为url?WSDL;3,生成代理对象;4,按例子调用;soapConnection conn // Define SoapConnectionpopservice1soap proxy_obj // Declare proxyint rValstring sconn = create SoapConnectionrVal = Conn.CreateInstance(proxy_obj, "popservice1soap",)trys = proxy_obj.helloworld()// Invoke servicemessagebox("", s)catch ( SoapException e )messagebox ("ErrDAT* d or", "Cannot invoke Web service")// error handlingend trydestroy conn问题点:1、调用WS传入参数为null更改WS默认的命名空间2、将http浏览器中可以调用,PB9环境中没有生成调用对象PB9可能不支持WS页面方法中返回的数据类型,任何一个返回类型不支持都将出现此问题3、出现pb9 无法请求识别元素命名空间错误PB9生成的代理类命名空间和WS地址的命名空间不一致,删除代理文件,重新建立代理类。
pb11+webservice开发分布式三层应用

pb11+webservice开发分布式三层应用一、WEBSERVICE服务端的开发1、新建立一个workspace工作区先择FILE菜单下的NEW,新建一个工作区。
点击后出现下图在文件名处输入工作区的名称,假设我们的工作区名为webserver,单击保存按钮。
这样工作区就建立成功了。
2、建立一个.net web service 应用点击FILE菜单下的NEW选中.net web service 点击ok按钮点击next按钮点击next按钮这里我们不修改pbl库名,当然你可以按你的意思修改库名,点击next 按钮。
一直点next按钮直到出现这里需要注意一点,如果你当前的IIS端口,不是默认的80 ,那么在localhost后面要加上“:81”,假设你的端口号是81的话。
再点击一次next直到finish按钮。
3、连接数据库我们先来建立一个数据库的连接以为后期的webservice服务提供一个连接。
打开系统生成的n_webservice对像在里面写上// Profile EAS Demo DB V110SQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "ConnectString='DSN=EAS Demo DB V110;UID=dba;PWD=sql'"我是拷贝了,安装PB11默认的安装的ASA数据库,这里你可以修改成你的数据库连接参数。
数据库建立完成后,我们再建立一个ue_retrieve的方法用来提取数据库数据1、在N_webservice对像里创建立一个名为DS1的数据存储datastore2、在DS1 的dberror里面写上ls_err_a=sqlerrtext////////注意:将ls_err_a 定义为一个实例变量,如果你看不清楚出入参定义可以将本图片另存放大就可以看到了。
PB+WebService 数据库处理框架演示版安装说明

PB+WebService 数据库处理框架演示版安装说明片头语:本人用了PB多年,从PB6.5到PB11,一直绝对PB是个好东西,开发C/S的ERP应用相当不错,开发快捷,DW功能强大,但是随着Internet网络的发展,越来越要求应用能够支持互联网运行平台,为此结合项目,我开发了PB+Webservice平台,并成功的用于多个项目,在保留PB开发前端界面的优势,又弥补了PB的不足。
金色麦田QQ:993060860 最后提示:请在安装和运行过程中,防火墙提示访问时,请点击允许,否则程序可能无法运行。
第1章平台简介1.1 本例程说明实现在Internet环境下调用WebService进行数据交互的框架本框架已经封装了Oracle10i、Sybase12.5、SqlServer2005的JDBC连接,数据库查询、语句执行等各种数据库处理通过本框架,你可以迅速的在原有C/S开发平台下的各种程序体的基础上开发出基于互联网的应用程序1.2 系统原理《PB开发前端界面处理》<--->《通过本框架》<---->《事务服务器处理(Tomcat,Weblogic等)》<---->《调用JDBC连接池》<---->《执行相关数据库处理语句》<---->《通过本框架数据压缩返回》<---->《PB进行数据反映处理》本框架已经成功应用于多个互联网应用项目中。
1.3 用法和函数说明首先、定义一个全局的变量guo_webdb 变量名变量名= create guo_webdb其次、对guo_webdb中的各个连接参数赋值,即可使用,具体见例程函数说明:uof_dbtest 测试数据库是否连接成功uof_dbgetsqlline 直接将查询语句发到服务端,返回查询结果数据流uof_dbgetsqlfile 直接将查询语句发到服务端,返回查询结果压缩文件uof_dbexecsql 直接将执行语句发到服务端。
PB9访问WebService_的配置方法

PB9访问WebService 的配置方法
注意:PB9访问WebService必须升级补丁EBF14228-8836,否则在生成代理类时会出错,编译时错误Wrong library list returned for operation 1. 建一个工作空间和应用,
2.添加用于连接WebService的连接类SoapConnection所在的库文件C:\Program Files\Sybase\Shared\PowerBuilder\ pbsoapclient90.pbd
3.创建WebService Proxy Project,生成该工程时会产生一个调用WebService功能的客户端类
4.看看英文内容,然后单击Next,(这段英文很重要的)
5.配置Webservice地址
.
6.选择要使用的服务,然后单击Next;如果看不到服务通常需要关闭PB然后再重新打开,
7.选择端口,然后单击Next
8.为代理名字写一个前缀
9.选择发布工程所在的库pbl和工程名
10.准备创建代理设置的信息显示
11.新建代理的工程信息
12.发布代理工程和发布成功后的显示
13.编写代码调用WebService,
14.执行程序后的结果
终于程序测试完成了,程序配置也写完了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Pb调用Webservice
分类:PowerBuilder 2011-05-17 15:48 1436人阅读评论(0) 收藏举报webserviceprotocolsdocumentationsoapservicewizard
而现在WebService非常火,如果将两者结合起来呢,比如:用Net写好的WebService被Pb调用,而且还可以发布成接口形式,被其他公司所调用,合乐而不为呢?
先说一下开发环境:32位Win7旗舰版+PB11.5
其实在PB10.0出来时候,就已经支持调用WebService方式了。
如下面步骤即可实现调用。
l 步骤1
在Net中创建一个WebService方法,用于被Pb调用,如图-1所示
图-1
l 步骤2
将此WebService发布,最好发布成IIS方式,如图-2所示。
图-2
这里有一点说明下,发布成IIS以后,是可以直接在浏览器里打开的,但它的后缀是asmx,而PB需要的是wsdl方式,就是说如何生成Wsdl文件?如下图-3所示,另存为即可并将这个文件存储起来。
图-3
好了,准备工作基本完成
l 步骤3
创建PB的解决方案文件,如图-4所示
图-4
这里面要必须引用一个pbwsclient11.pbd文件,不然,会调用不成功。
这个文件在安装路径里就可以找到。
l 步骤4
从此步开始,我们按照创建对象创建一步一步操作即可,如下图列表所示
如图-5所示,选择Web Service Proxy Wizard图标
如图-6,这个选项勾不勾没有关系
如图-7,这个就要输入我们生成好的WSDL文件路径了(绝对路径)
如图-8所示,如果能到这里,就基本没有问题了
如图-9所示,到这里时,一定要编译下,就是保存图标的后面一个图标,余下事情就是编写代码,如图-10所示,是最终样子。
图-10
l 步骤5
创建一个CustomObject对象,声明一个方法,直接调用即可,如图-11所示
(注意:下面的lsc_conn.createinstance(lsv_obj,“service1soap”) 在pb9时报错,
改
为: lsc_conn.cr eateinstance(lsv_obj,“service1soap”,'http://wpvs2 008/countwebservice/countwebservice.asmx')后可以。
图-11
l 步骤6
就可以像调用PB本身方法一样调用了。
如图12和13
图-12
图-13
附:
访问webServices时遇到“测试窗体只能用于来自本地计算机的请求”的解决办法
在system.web节中加上以下即可解决
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
</webServices>。