PB调用WebService

合集下载

Pb调用Webservice

Pb调用Webservice

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所示图-1l 步骤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所示,是最终样子。

图-10l 步骤5创建一个CustomObject对象,声明一个方法,直接调用即可,如图-11所示(注意:下面的lsc_conn.createinstance(lsv_obj,“service1soap”) 在pb9时报错,改为: lsc_conn.cr eateinstance(lsv_obj,“service1soap”,'http://wpvs2 008/countwebservice/countwebservice.asmx')后可以。

pb调用webservice

pb调用webservice

webser‎v ice服务‎器端会提供w‎s dl接口文‎档,pb里面用w‎e b servic‎e proxy wizard‎从wsdl 生‎成对象,再调用即可(注意把c:\progra‎m files\sybase‎\shared‎\powerb‎u ilder‎下面的pbs‎o apcli‎e nt90.pbd加入t‎a rget),代码样例:SoapCo‎n necti‎o n lsc_co‎n nsoapse‎r vice lproxy‎_objString‎ ls_pro‎x y_nam‎e = "soapse‎r vice "//生成的代理对‎象名称String‎ ls_url‎ = "http://localh‎o st:8080/axis/servic‎e s/SoapSe‎r vice "//web servic‎e url//lsc_co‎n n = Create‎ SoapCo‎n necti‎o nlsc_co‎n n.SetOpt‎i ons( "SoapLo‎g=~ "soaplo‎g.txt~ " ")int li_ret‎,ili_ret‎ = lsc_co‎n n.Create‎i nstan‎c e( lproxy‎_obj, ls_pro‎x y_nam‎e, ls_url‎)If li_ret‎<> 0 ThenMessag‎e Box( "错误", "调用失败,错误号码: " + String‎(li_ret‎))Return‎End Iftns1__‎r eques‎t conte‎n t lst_re‎q uestlst_re‎q uest.arg1 = 5lst_re‎q uest.arg2 = "test "tns1__‎r eturn‎r esult‎ lst_re‎s ultlst_re‎s ult = lproxy‎_obj.GetRes‎u lt(lst_re‎q uest)Messag‎e Box(String‎(lst_re‎s ult.result‎), "code: " + lst_re‎s ult.reason‎.code + "~nmessa‎g e: " + &lst_re‎s ult.reason‎.messag‎e + "~ndesc: " + lst_re‎s ult.reason‎.desc )注意pb调用‎w ebser‎v ice只能‎返回简单的i‎n t string‎类型,复杂的结构会‎出错怎么样在pb‎9里面调用W‎e bServ‎i cepb9也出来‎了,速度够快的,大概看了一下‎,与pb8比较‎,增加的功能不‎多,主要是Web‎Servic‎e,Xml和Ej‎b.我就感受了一‎下p b9的W‎e bServ‎i c e功能,与大家共享。

PB调用WebService

PB调用WebService

PB调用WebService不管是用VS开发的基于.NET的WebService,还是用Java开发的WebService,还是用PB本身开发的.NET Web Service,PB调用WebService的原理是一样的,都是通过WSDL 访问WebServices.具体步骤有三:1.编写WebService2.创建PB Web Service Proxy3.创建PB Web Service Client1. 编写WebService此处不赘述,可以查阅相关编写WebService的资料。

2. 创建PB Web Service Proxy1) 先建立工程,然后建立Web Service Proxy。

Web Service Proxy Wizard和Web Service Proxy都可,区别是前者是向导式的,后者都是手工填写的。

2) 选择是否使用.Net引擎(Use .Net Engine)。

如果不勾选,则默认使用的是EasySoap Engine,如果没有特殊需要建议不使用.Net Engine,虽然.Net Engine支持的属性、数据类型较多(诸如.NET的DataSet等),但是比较庞大,必须需要.Net Framework SDK的支持,效率会受到一定的影响。

3) 填写WSDL的位置即可。

4) WSDL文件中包含的Web服务及端口。

5) 可以给Proxy Name加一个前缀,不加就Proxy Name就是WsDemoServiceHttpPort。

6)7)8)9)10) 部署web service proxy工程。

11) 部署完之后,可以看到webservice了。

3. 创建pb Web Service Client创建一个窗体,窗体上放置一个按钮,点击按钮,调用Web Service。

在按钮的click事件中编写PowerScript:string resultlong llsoapconnectionlsc_connn_webservicesoaplsrv_objlsc_conn = create soapconnectionlsc_conn.createinstance(lsrv_obj, 'n_webservicesoap')result = lsrv_obj.of_decode( '0054','')ll = lsrv_obj.of_test( )messagebox(string(ll),result) 调用Web Service成功!:)。

pb调用Webservice步骤

pb调用Webservice步骤
st_waiting.visible = false
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开发webservice

pb11开发webservice

pb11开发webservice⽤pb11开发webservice真是很简单,现在我把搭建的过程简单描述⼀下。

1、服务端打开pb11,选择菜单file->new->target->.net web service,然后⼀路next,最后⽣产的项⽬⽂件中⾄少包含三项,⼀个webservice应⽤,⼀个p_webservice部署,⼀个n_webservice⽤户对象,然后在这个n_webservice对象中写⾃⼰的公开函数,即可。

例如,函数string wf_getdw(ref string synac)SQLCA.DBMS = "" SQLCA.LogPass = "123456" SQLCA.LogId = "sa" SQLCA.AutoCommit = FalseSQLCA.DBParm = "Namespace='System.Data.SqlClient',Database='mydb',DataSource='.'"connect;datastore lds string ls_rtnlds = create datastore lds.dataobject = "dd" lds.settransobject(sqlca) lds.retrieve()synac = lds.describe("datawindow.syntax") ls_rtn = lds.describe("datawindow.data")disconnect; destroy ldsreturn ls_rtn然后部署web service,打开p_webservice,可以看到有⼏个属性页,其中有⼀个“objcet”页,可以看到你要发布的函数列表。

pb 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调用各类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调用过程中出现错误,都没有办法知道哪里错了,这句话就是关键。

pb11+webservice开发分布式三层应用

pb11+webservice开发分布式三层应用

pb+webservice开发分布式三层应用(演示或测试例程代码:WebserviceExample.rar)一、 WEBSERVICE服务端的开发1、新建立一个workspace工作区先择FILE菜单下的NEW,选择标签页‘Workspace’新建一个工作区。

点击后出现下图在文件名处输入工作区的名称,假设我们的工作区名为webserver,单击保存按钮。

这样工作区就建立成功了。

2、建立一个.net web service 应用点击FILE菜单下的NEW选中.net web service 点击ok按钮点击next按钮点击next按钮这里我们不修改pbl库名,当然你可以按你的意思修改库名,点击next 按钮。

一直点Next按钮直到出现这里需要注意一点,如果你当前的IIS端口,不是默认的80 ,假设是7000的话,那么在localhost后面要加上“:7000” ,。

再点击一次next直到finish按钮。

3、连接数据库(建立测试环境所用文件CreateENV.sql)我们先来建立一个数据库的连接以为后期的webservice服务提供一个连接。

打开系统生成的n_webservice对像在其constructor里面写上SQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "ConnectString='DSN=localdbora8;UID=scott;PWD=tiger',PBCatalogOwner='scott'"我是拷贝的这里你可以修改成你的数据库连接参数。

数据库连接建立完成后,我们再建立一个uf_retrieve的方法用来提取数据库数据long ll_row,ll_returnrowstring ls_oldsql,ls_newsql,ls_err_a,ls_errorint i,LI_WHEREdatastore ds1ds1 = create datastoreconnect using sqlca;if SQLCA.SQLCode <> 0 thenp_ref_returnerr="连接数据库出错,请检查数据库连接参数。

PB9.0调用Webservice步骤以及相关问题

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地址的命名空间不一致,删除代理文件,重新建立代理类。

PB WebService应用

PB WebService应用
• 如果在安装IIS之前,已经安装了.NET FrameWork SDK,则需要执行以下命令,在IIS中注册.NET FrameWork的运行环境。
C:\WINDOWS\\Framework\v2.0.50727 \aspnet_regiis -i
在IIS中增加网站
• 在IIS增加一个网站(不是虚拟目录)。如果计算机 已存在多个网站,可以通过主机头或端口号区分出来。 如果建立的网站端口号不是80,则必须保证防火墙开 放了端口。 • 网站的版本必须为2.0或以上版本。
• IIS里面相应版本的 服务扩,必须启用(允 许)
• 新建的网站,允许是一个空站。即把网站建在一个空 白的目录上。
网站创建向导
网站创建向导
由于网站建在本地,所以IP地址可以不输(127.0.0.1)。一台电脑可以建立多个网站, 通过端口号或主机头区分出来。主机头一般为网站的域名,如.由 于在本地建立,没有绑定域名,所以用不同的端口加以区分。
设置WebService编译时,是生成一个安装包程序,还是直接发布到网站。 Localhost:9001表示发布到本机9001端口的网站上。即刚才在IIS中增加的网站。
在PB中增加WebService项目
新建项目向导完成后,PB IDE自动按向导过程中设置的组件名称,建立了一个不可视 对象。可以在该组件中实现WebService的功能,再编译发布。
在PB中增加WebService项目
可以加入其它的PBL,例如以前已经写好的一些公共类库。
在PB中增加WebService项目
输入需要增加的不可视用户对象的名称。在该用户对象中,实现WebService的功 能。最终可以把该组件编译发布为WebService的各种服务接口。
在PB中增加WebService项目

PB+WebService 数据库处理框架演示版安装说明

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 直接将执行语句发到服务端。

2C#调用 PB做的WEBSERVICE

2C#调用 PB做的WEBSERVICE

C#.net调用PB做的WEBSERVICE1,.net中增加WEBSERVICE引用。

打开对应的SERVICE引用窗口后,输入http://xxxx/n_xxxx.asmx?WDSL即可引用。

2,程序调用方法.net调用WEBSERVICE不能像写PB函数那样调用。

.NET中将所有输入参数全部作为一个OBJECT_1,全部输出参数做一个OBJECT_2 引用名n_xxxx PB的WEBSERVICEwf_funcxxxx WEBSERVICE中要调用的函数//-------------------------------------------------------------------------------------------------------------------------------ServiceReference1.n_xxxx Soap=new ServiceReference1.n_xxxx SoapClient();ServiceReference1.wf_funcxxxx Request OBJECT_1=new ServiceReference1.wf_funcxxxx Request; ServiceReference1.wf_funcxxxx Request OBJECT_2=new ServiceReference1.wf_funcxxxx Response; OBJECT_1.Body.参数1=“xxxx”;//赋值OBJECT_1.Body.参数2=“xxxx”;//赋值OBJECT_2=ServiceReference1.wf_funcxxxx(OBJECT_1);OBJECT_2.BODY.返回参数1就是要获得的值//-------------------------------------------------------------------------------------------------------------------------------实例:WindowsFormsApplication1.ServiceReference1.n_ip_indicatorSoap s=new ServiceReference1.n_ip_indicat orSoapClient();WindowsFormsApplication1.ServiceReference1.wf_getcompany_ipRequest stru_input_argument;stru_input_argument=new ServiceReference1.wf_getcompany_ipRequest();stru_input_argument.Body=new ServiceReference1.wf_getcompany_ipRequestBody();stru_input_argument.Body.str_company="Crazy";stru_input_argument.Body.str_ip="";stru_input_argument.Body.str_err="";WindowsFormsApplication1.ServiceReference1.wf_getcompany_ipResponse stru_return;stru_return=new ServiceReference1.wf_getcompany_ipResponse();stru_return.Body=new ServiceReference1.wf_getcompany_ipResponseBody();stru_return=s.wf_getcompany_ip(stru_input_argument);//返回的IPthis.Text=stru_return.Body.str_ip.ToString();//返回的错误信息button1.Text=stru_return.Body.str_err.ToString();3错误的方法:(不要用PB调用WEBSERVICE的思路)WindowsFormsApplication1.ServiceReference1.n_webserviceSoapClient s=new ServiceReference1.n_webserviceSoapClient();string str="";str=s.get_nj_sys_code("1","01");//读取数据库记录str=s.inset_nj_sys_code("53","01","测试WEBSERVICE","空","66","1","WEB");//写入数据库记录this.textBox1.Text=str;。

PB12.5访问MyEclipse2013WebServer(未引用外部包)

PB12.5访问MyEclipse2013WebServer(未引用外部包)

服务器端MyEclipse2013 WebServer 1.File ---> New--->Web Server Project2.File ---> New--->Class3.在Test类中输入如下代码public class Test{public String getMsg(){return"这里Java Webserver返回的消息哟";}}4.新建Web服务见下图5. 部署服务器6. 启动服务器1. 在PB12.5中新建一个工作空间,一个应用,一个窗口pbsoapclient125.pbx两个文件,然后将两个文件复制到客户端程序所在目录,并将pbsoapclient125.pbd导入到工作空间.(注意PB9.0中是pbsoapclient90.pbd用pbsoapclient90.dll )3.生成代理访问对像File--->New--->Project-->Web Server Proxy Wizard然后打开工程生成代理对像4.在窗口按钮单击事件中添加如下代码String ls_WebServerIPSoapConnection io_conntestport proxy_obio_conn = create SoapConnectionls_WebServerIP = "http://localhost:8080/myWebServer/TestPort?wsdl" tryio_conn.CreateInstance(proxy_obj, "testport", ls_WebServerIP ) catch(runtimeError errprint)messagebox("1",errprint.getmessage())destroy io_conn//destroy这个对象,内存释放出来destroy proxy_obj//destroy这个对象,内存释放出来end trymessagebox( "", proxy_obj.Getmsg( ) )destroy io_conndestroy proxy_obj5.运程程序如下。

PPB调用PB11的WEBSERVICE

PPB调用PB11的WEBSERVICE

PPB学习44-PPB调用PB11的WEBSERVICE首先先感谢Q群的深圳-谬谬,把这个问题解决了,我在此基础上做一个例程。

PB11可以向.NET上直接发布WEBSERVICE服务,下面我们就举个例子来看下如何实现这个过程。

以下是例程的工作环境:.net2005,PB11.2,PPB2.5,ASA9,IIS数据库采用ASA9自带的SAMPLE数据库,准备工作,为SAMPLE数据库创建一个系统的DSN。

如下图所示,命名为ASADEMO9。

这个DSN设成服务方式启动,如下图IIS请检查WWW服务是否已经开启,默认网站是否已经启动,如果没有启动可以更改一下WWW端口试下,可能你的80端口被其他程序占用。

如下图所示。

这一切准备好了,下面我们就开始先用PB11发布一个WEBSERVICE,在这个实例中,我要完成的是将一个SELECT的SQL语句做为参数,将这个SELECT语句的结果返回去。

打开PB11,NEW一个TARGET,在下面的对话框中选择.net web service,创建一个发布到.NET上的WEB SERVICE应用下面是一个向导过程,第一页,NEXT,没啥要设置的。

第二页设置是新做一个还是使用一个已有库列表,这里我们选择新做一个。

第一个选项,按NEXT设置PROJECT的名字及PBL和PBT的文件路径,我命名为P_mywebservice,文件路径我就放在下面的目录,大家根据自己的需要放置。

按NEXT这一页是否要增加其他PBL,这里我们没有其他PBL加入,直接按NEXT创建一个用户对象,取名n_mywebservice,如下图所示,按NEXT这页是设置发布到.net上的目录,可以用默认值,如下图,按NEXT添加其他资源文件和目录,这里我们就不填了,按NEXT添加需要的动态库,在我们这个例子里也没有要添加的,按NEXT设置输出,一个是生成SETUP文件,用于安装,另一个是直接发布到IIS 上,我们选发布到IIS上,并且设定IIS的地址,包括端口号。

PB9访问WebService_的配置方法

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.执行程序后的结果
终于程序测试完成了,程序配置也写完了。

Pb8利用ole方式通过MicrosoftSoapToolkit30调用webservice

Pb8利用ole方式通过MicrosoftSoapToolkit30调用webservice
Pb8利用ole方式通过Microsoft Soap Toolkit30调用webservice
1、下载Microsoft Soap Toolkit30并安装
2、PB8以及以前版本连接Webservice代码如下:
try
OLEObject MSSOAPLib1
MSSOAPLib1 = CREATE OLEObject
Long ll_ctToNewObject("MSSOAP.SoapClient30")
IF ll_result <> 0 THEN
MessageBox("系统提示","连接MSSOAP.SoapClient失败!返回参数:"+String(ll_result))
as_output = MSSOAPLib1.msginterface("F000101",sInputXml,"xml")
catch(RuntimeError e)
return -1
end try
--武汉小虾
END IF
MSSOAPLib1.mssoapinit("http://IP:port/MessageApi.asmx?wsdl")
MSSOAPLib1.ConnectorProperty("Timeout",180000) //设置访问超时时间
string as_output
string sInputXml="<data><MerBillNo>test0211211</MerBillNo><MerNo>E000046301</MerNo><OrderDate>2016-05-25</OrderDate><OrderAmount>0.01</OrderAmount><OrderSource>01</OrderSource><ProductCode></ProductCode><ProductName>测试商品01</ProductName><CreateBy>夏晓勇</CreateBy><OrderType>01</OrderType><PayType>01</PayType><Ord_Source_Ip></Ord_Source_Ip><Ord_Termno></Ord_Termno><Source_Id></Source_Id><Bill_Code></Bill_Code><OrderState></OrderState><Sign_Type></Sign_Type><SignData></SignData><OrderData><row><AppointID></AppointID><Card_No></Card_No><Dept_Code>10080</Dept_Code><Dept_Name>消化内科</Dept_Name><Exc_Dept_Code>10080</Exc_Dept_Code><Exc_Dept_Name>消化内科</Exc_Dept_Name><Reg_Type_Code>01</Reg_Type_Code><Reg_Type_Name>-</Reg_Type_Name><Reg_Level_Code>01</Reg_Level_Code><Reg_Level_Name>普通</Reg_Level_Name><Doct_Code>0173</Doct_Code><Doct_Name>黄健</Doct_Name><Reg_Fee>0.01</Reg_Fee><Chk_Fee></Chk_Fee><Dig_Fee></Dig_Fee><Tot_Amount>0.01</Tot_Amount><Noon>PM</Noon><See_Date>2015-05-23</See_Date><See_Number>4</See_Number></row></OrderData></data>"

PB9访问WebService_的配置方法

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.执行程序后的结果
终于程序测试完成了,程序配置也写完了。

pb调用webservice

pb调用webservice

webservice服务器端会提供wsdl接口文档,pb里面用web service proxy wizard从wsdl 生成对象,再调用即可(注意把c:\program files\sybase\shared\powerbuilder下面的pbsoapclient90.pbd加入target),代码样例:SoapConnection lsc_connsoapservice lproxy_objString ls_proxy_name = "soapservice "//生成的代理对象名称String ls_url = "http://localhost:8080/axis/services/SoapService "//web service url//lsc_conn = Create SoapConnectionlsc_conn.SetOptions( "SoapLog=~ "soaplog.txt~ " ")int li_ret, ili_ret = lsc_conn.Createinstance( lproxy_obj, ls_proxy_name, ls_url)If li_ret <> 0 ThenMessageBox( "错误", "调用失败,错误号码:" + String(li_ret))ReturnEnd Iftns1__requestcontent lst_requestlst_request.arg1 = 5lst_request.arg2 = "test "tns1__returnresult lst_resultlst_result = lproxy_obj.GetResult(lst_request)MessageBox(String(lst_result.result), "code: " + lst_result.reason.code + "~nmessage: " + &lst_result.reason.message + "~ndesc: " + lst_result.reason.desc )注意pb调用webservice只能返回简单的int string类型,复杂的结构会出错怎么样在pb9里面调用WebServicepb9也出来了,速度够快的,大概看了一下,与pb8比较,增加的功能不多,主要是WebService,Xml和Ejb.我就感受了一下pb9的WebService功能,与大家共享。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PB调用WebService
不管是用VS开发的基于.NET的WebService,还是用Java开发的WebService,还是用PB本身开发的.NET Web Service,PB调用WebService的原理是一样的,都是通过WSDL 访问WebServices.具体步骤有三:
1.编写WebService
2.创建PB Web Service Proxy
3.创建PB Web Service Client
1. 编写WebService
此处不赘述,可以查阅相关编写WebService的资料。

2. 创建PB Web Service Proxy
1) 先建立工程,然后建立Web Service Proxy。

Web Service Proxy Wizard和Web Service Proxy都可,区别是前者是向导式的,后者都是手工填写的。

2) 选择是否使用.Net引擎(Use .Net Engine)。

如果不勾选,则默认使用的是EasySoap Engine,如果没有特殊需要建议不使用.Net Engine,虽然.Net Engine支持的属性、数据类型较多(诸如.NET的DataSet等),但是比较庞大,必须需要.Net Framework SDK的支持,效率会受到一定的影响。

3) 填写WSDL的位置即可。

4) WSDL文件中包含的Web服务及端口。

5) 可以给Proxy Name加一个前缀,不加就Proxy Name就是WsDemoServiceHttpPort。

6)
7)
8)
9)
10) 部署web service proxy工程。

11) 部署完之后,可以看到webservice了。

3. 创建pb Web Service Client
创建一个窗体,窗体上放置一个按钮,点击按钮,调用Web Service。

在按钮的click事件中编写PowerScript:
string result
long ll
soapconnectionlsc_conn
n_webservicesoaplsrv_obj
lsc_conn = create soapconnection
lsc_conn.createinstance(lsrv_obj, 'n_webservicesoap')
result = lsrv_obj.of_decode( '0054','')
ll = lsrv_obj.of_test( )
messagebox(string(ll),result) 调用Web Service成功!:)。

相关文档
最新文档