基于SAP NETWEAVER创建并调用WEB SERVICE

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于SAPNETWEAVER创建并调用WEBSERVICE1创建一个WEBSERVICE本文档中的操作过程是在XI上完成的。用一个可远程调用的FunctionModule创建WEBSERVICE有两种办法:1.1方法一1.进入ObjectNavigator(事务码SE80),选择任意一个包,在包名上点击右键,选择弹出菜单中的Create-EnterpriseService/WebService-WebService。启动服务定义向导对话框。2.点击Continue进入下一步。3.在ServiceDefinition中填入WebService的名称,ShortText中填入简要说明,EndpointType中可以选择BAPI、FunctionGroup、FunctionModule和MessageInterface四种类型,本例中是以FunctionModule为例来创建WebService的,所以EndpointType中选择FunctionModule。完成后点击Continue继续。4.在FunctionModule中填入所要发布的FunctionModule的名字。注意不能远程调用的FunctionModule是不能创建成WebService的。完成后点击Continue继续。5.选择WebService的安全设置,有两种设置可供选择:BasicAuthSOAPProfile:基于SOAP1.1的无状态HTTP信息和简单验证。SecureSOAPProfile:基于SOAP1.1的无状态HTTP信息,强验证和传输保护。本例中选择第一种方式。将ReleaseServicesforRuntime勾上可以在创建WebService的同时将其发布至SOAPRuntime。如果现在不发布也可以在创建好WebService并保存以后在事务WSCONFIG中发布。6.点击Complete完成向导。7.填入一个包名,创建好的WebService将存放于此包下,点击按钮保存。8.填入合法的Workbenchrequest点击按钮继续。系统开始进行WebService的编译和激活。9.WebService的编译和激活完毕后会再次弹出对话框,填入合法的Customizingrequest点击按钮继续。至此WebService创建完成(如果第五步中没有勾选ReleaseServicesforRuntime的话还需要到WSCONFIG中对WebService进行发布)。从第七步中选定的包中,我们可以看到我们创建的WebService。1.2方法二1.进入FunctionBuilder(事务码SE37),在FunctionModule中填入待发布的FunctionModule的名称后,点击Display按钮。2.FunctionModule显示出来以后,在菜单中选择MoreUtilities-MoreUtilities-CreateWebService-FromtheFunctionModule或FromtheFunctionGroup。本例中是以FunctionModule为例来创建WebService的,所以选择FromtheFunctionModule。选择或将弹出服务定义向导对话框。3.其他步骤同方法一中的2-9步,其中第四步中将默认填入当前显示的FunctionModule。2测试创建的WebService创建好的WebService应该进行功能测试以保证后续开发的顺利进行。SAP提供了测试WebService的方法,要测试创建好的WebService,需要在WebServiceHomepage上进行。1.首先启动事务WSADMIN,并在菜单栏中找到Goto-AdministrationSettings选项设置好J2EE服务器的地址。2.服务器地址为,点击按钮保存。3.选中刚创建的WebService,点击工具栏的按钮。如果没有看到WebService,那表示它还没有发布,需要到WSCONFIG中对WebService进行发布。4.在弹出的对话框中选择生成WSDL的类型,本例中选择DocumentStyle。点击按钮打开WebServiceHomepage。5.输入可登陆待测试的WebService所在的服务器上的用户名和密码之后,可以看到刚创建的WebService的主要信息。其中,WSDL一栏显示了这个WebService的WSDL文件的URL地址,点击地址链接可以看到WSDL文件的内容。WSDL文件的URL地址可以用于创建WebService的客户端代理对象。注意XI上以cmbcux2.sap.cmbc.cn作为IP地址195.204.151.12的主机名,可在系统文件hosts中配置。或将地址中的cmbcux2.sap.cmbc.cn替换为195.204.151.12访问。查看WSDL文件同样需要输入WebService所在的服务器上的用户名和密码。点击Test进入测试页面。6.测试页面中首先会列出WebService对外发布的方法列表,点击各个方法可以对各方法进行测试。本例中的WebService只对外发布了一个方法,用于创建BP的BAPI_BUPA_CREATE_FROM_DATA。如果该WebService的功能正常将创建一个新的BP并返回BP号,点击该方法进入测试。7.在测试页面左侧会列出输入参数的所有属性,不是必输的属性,其后面会有一个SKIP的选项,如果不对该属性填值的话,需要把SKIP选中,否则处理会出错。表格后面有图标,点击该图标可以为表格增加一个元素。同样的每个表格元素后面都有图标,用于删除元素。Timeout用于设置超时时间,默认为60秒。对必要的属性填值后点击Send,等待服务器的处理结果。8.填写参数示例:9.执行完毕后得到响应结果。如上图所示,执行服务后创建了一个新的BP:0000000012,表示WebService的功能正常。但是由于没有执行Commit,该BP在系统中查询不到。3创建WebService的客户端代理对象要调用已发布的WebService,首先应该创建一个客户端代理对象。1.进入ObjectNavigator(事务码SE80),在任意包的右键菜单下找到Create-EnterpriseService/WebService-ProxyObject选项。2.在弹出的对话框中选择WSDL文件的获取方式,本例中使用URL/HTTPDestination方式。点击按钮继续。3.输入WSDL文件的URL地址,该地址在测试WebService时可以得到,也可在事务WSADMIN中找到相应的WebService,点击工具栏上的按钮得到。输入地址后点击按钮继续。4.输入可登陆WebService所在的服务器上的用户名和密码。5.输入一个包名,客户端代理对象创建后将存放于此包下。输入一个前缀,SAP建议输入Z##,##可以用系统编号代替。输入的前缀将用于命名代理对象的名称和输入输出参数及其属性的类型名称。点击按钮继续。生成代理对象的过程中可能会弹出警告对话框,这通常是因为系统以默认方式自动命名的属性名称超过了合法长度而被截断所做出的提示。6.此时客户端代理对象已定义完成,在这里可以修改代理对象名称等信息。点击按钮保存,这时会弹出对话框要求输入Workbenchrequest,然后点击按钮激活代理对象。7.至此客户端代理对象就创建完成了,现在可以在代理对象所处的包的EnterpriseServices-ClientProxies下看到创建好的代理对象。如果WSDL做出了修改,则需要重新生成客户端代理对象。4为客户端代理对象创建逻辑端口要使用代理对象来调用WebService,需要先为代理对象生成逻辑端口。1.打开事务码LPCONFIG,在ProxyClass中填入代理对象的名字,在LogicalPort中填入端口的名称。点击工具栏按钮为代理对象创建一个新端口。2.如果该代理对象还没有任何默认端口,系统会弹出对话框询问是否将该端口设为默认,3.填入端口的描述,其他的部分可以不改。CallParameters中已经默认选择了URL方式来寻找WebService并填入了值。点击按钮检查端口信息是否有错误,如果当前代理对象没有默认端口会报出警告。点击按钮保存端口信息。4.此时会弹出对话框提示输入Customizingrequest,此时如果输入的Customizingrequest不被系统接受的话,可以点击按钮创建一个新的request。否则直接跳至第七步。5.只要输入简要描述后点击按钮保存就创建了一个新的request。6.新创建的request会自动填入到文本框中,该request今后也可以用于保存其他的端口。直接点击按钮即完成了端口的保存。7.端口保存完毕后切记要点击工具栏的按钮激活端口。至此端口已经生成并激活,可以用于创建代理对象实例。5编写WebService调用程序1.进入ObjectNavigator(事务码SE80),选择一个包,选择右键菜单中的Create-Program创建一个程序。2.填入程序的名称,将WithTOPINCL.的勾取消后,点击按钮继续。3.点击按钮保存Program的信息。4.填入一个包名,选择新创建的Program将存放于此包下。点击按钮保存。5.填入正确的Workbenchrequest,点击按钮完成Program的创建。6.本例中的WebService调用程序的示例代码如下:REPORTZ_WS_TEST_CLIENT_003.DATA:proxyTYPEREFTOZ03CO_Z_WS_TEST_003,org_inTYPEZ03BAPI_BUPA_CREATE_FROM_DATA,org_outTYPEZ03BAPI_BUPA_CREATE_FROM_DATAR.org_in-PARTNERCATEGORY='1'.org_in-CENTRALDATA-PARTNERTYPE='0001'.org_in-CENTRALDATA-PARTNERLANGUAGE='1'.TRY.CREATEOBJECTproxyEXPORTINGlogical_port_name='LP01'.CATCHcx_ai_system_fault.ENDTRY.TRY.CALLMETHODproxy-BAPI_BUPA_CREATE_FROM_DATAEXPORTINGinput=org_inIMPORTINGoutput=org_out.CATCHCX_AI_SYSTEM_FAULT.WRITE:/'CX_AI_SYSTEM_FAULT'.CATCHCX_AI_APPLICATION_FAULT.WRITE:/'CX_AI_APPLICATION_FAULT'.CATCHCX_ROOT.WRITE:/'CX_ROOT'.ENDTRY.WRITE:/org_out-BUSINESSPARTNER.7.点击按钮检查程序中是否有错,点击按钮保存程序,点击按钮激活程序。完成激活之后,就可以点击按钮进行程序的测试了。8.此时会要求输入用户名和密码,输入可登陆待测试的WebService所在的服务器上的用户名和密码之后,点OK按钮。9.如果程序无误,WebService将会根据调用程序中传入的数据创建一个新BP,调用程序会将BP号打印在屏幕上。

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功