WebService实例new.docx
- 文档编号:24051179
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:26
- 大小:1.86MB
WebService实例new.docx
《WebService实例new.docx》由会员分享,可在线阅读,更多相关《WebService实例new.docx(26页珍藏版)》请在冰豆网上搜索。
WebService实例new
WebService实例
SAPWebService
Cindyli
2011-11-17
yuqishow@
目录
简介3
准备工作3
SAPWebService配置3
配置服务器3
SAP系统的WebService调用5
WebService所在系统配置5
FM创建5
WebService发布9
WSDL信息以及URL查询12
EndPoint地址查找14
WebService调用系统配置16
代理创建16
逻辑端口创建22
代理类测试23
Report开发26
简介
关于WebService的概念和原理,简单来讲,WebService是一种基于SOAP传输协议,用WSDL描述,用XML封装数据的接口技术。
由于其具有跨平台、跨防火墙、开发成本低、开发周期短等优势,所以而被广泛的应用。
但是该技术也有其本身的缺陷,比如:
传输负载大,没有统一的实现模型等。
对于WebService在SAP中的应用,更多的被用在系统同步要求高,数据传输负载小的接口开发。
在首次应用Webservice技术的时候,我们需要对系统进行一些相关的配置工作,不然将无法运行WebService。
关于具体的设计过程,这里我将会以SAP最简单的计算器接口开发作为本章节的技术讲解背景。
准备工作
本章节将逐步实现SAP系统与SAP系统之间、和外部系统之间的交互。
此时,我们就需要做以下准备工作:
1.SAPECC系统两个;
2.外部系统一个(JavaEJB3Jboss5);
本章节将会按照SAP到SAP、SAP到JAVA、JAVA到JAVA,JAVA到SAP的WebService顺序进行实战练习。
SAPWebService配置
在不同的客户端,需要对该客户端进行配置方能够运行WebService。
具体的参考以下小节介绍。
配置服务器
为了使系统能解析XML文件,我们需要进行相关的配置工作,该配置只需一次,以后就可以不必进行配置。
访问T-Code:
SICF,如下图所示:
执行运行按钮,或者使用快捷键F8,进入如下界面:
依据上图内容,分配找到以下路径内容,并按要求对这些路径文件进行激活操作。
1.Default_host->sap->public->bc;
2.Default_host->sap->public->bsp、Default_host->sap->public->icman、Default_host->sap->public->myssocntl;
3.Default_host->sap->bc->contentserver、Default_host->sap->bc->error->webgui、Default_host->sap->bc->srt->wsdl->wsil、Default_host->sap->bc->webdynpro;
4.default_host->sap->bw->xml->soap
分配按照上述的路径,激活相应的目录以及目录以下的所有对象。
SAP系统的WebService调用
WebService所在系统配置
FM创建
登陆SAPBI(或者ECC)系统,执行t-code:
Se37,进入函数创建界面,如下图所示:
在创建函数之前呢,首先创建一个属于自己的函数组,或者可以使用系统中已经建好的函数组。
自定义函数组
登陆至FunctionBuilder:
InitialScreens界面之后,在GoTo菜单中执行创建函数组功能菜单,如下图所示:
执行CreateGroup功能按钮后,将弹出如下图所示对话框:
录入相关信息后,点击保存。
函数创建
然后返回到FunctionBuilder:
InitialScreens界面,在FunctionModule文本框录入FM的技术名称:
Z_CALCULATE,点击创建按钮,如下图所示:
点击保存按钮,进入FM编辑页面,如下图所示:
Processing Type面板中,选择Remote-EnableModule单选按钮。
然后进入Import面板,如下图所示:
分别录入参数类型为String的:
NUMBER1、NUMBER2、Z0PERATOR,PassValue复选框务必勾选,不然将无法成功发布成WebService服务。
然后进入Export面板,如下图所示:
录入参数类型为String:
RESLUT,并选中PassValue列的复选框。
然后进入SourceCode进行编码编辑,如下图所示:
Code如下所示:
FUNCTION Z_CALCULATE.
*"-------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(NUMBER1) TYPE STRING OPTIONAL
*" VALUE(NUMBER2) TYPE STRING OPTIONAL
*" VALUE(Z0PERATOR) TYPE STRING
*" EXPORTING
*" VALUE(RESLUT) TYPE STRING
*"-------------------------------------------------------------------
try.
case Z0PERATOR.
when '+'.
RESLUT = NUMBER1 + NUMBER2.
when'-'.
RESLUT = NUMBER1 - NUMBER2.
when'*'.
RESLUT = NUMBER1 * NUMBER2.
when '/'.
RESLUT = NUMBER1 / NUMBER2.
when others.
RESLUT = 'Not supported'.
endcase.
catch cx_root.
RESLUT = 'Not supported'.
endtry.
ENDFUNCTION.
点击检查按钮,然后保存,激活该FM。
WebService发布
FM激活之后,在菜单Utilities中选择MoreUtilitiesCreativeWebServiceFromtheFunctionModule。
如下图所示:
执行菜单功能按钮后,将会弹出如下图所示的对话框:
定义服务以及完成对该服务的描述,然后点击继续按钮,如下图所示:
确定FunctionModule文本框中的FM为指定接口函数技术名称后,点击继续按钮,如下图所示:
Profiles选择PRF_DT_IF_SEC_NO,然后点击继续按钮,如下图所示:
由于本章节是实战练习,故选择了本地存储,即勾选LocalObject复选框,如果不勾选该复选框,那么,你必须在相应的文本框录入当前所要应用的Package技术名称,以及所创建TransportRequest(即:
传输请求号)。
然后点击继续按钮,如下图所示:
点击完成按钮,此时ZSAP_CALCULATE服务已经创建完毕了。
WSDL信息以及URL查询
在当前系统访问事物码:
SOAMANAGER,进入SOAManager界面,如下图所示:
在Business-Administration面板,执行Web-Service-Administration连接,如下图所示:
在弹出的界面中图中例子进行以创建好服务查询,点击Start按钮,如下图所示:
选中刚创建好的服务,然后运行ApplySelection按钮,如下图所示:
然后点配置-〉创建
在显示出的面板中,执行:
OpenWSDLdocumentforselectedbinding连接,如下图所示:
其中我们要寻找的URL连接地址为地址栏中显示的地址内容,即:
:
8002/sap/bc/srt/wsdl/bndg_E1102D8E4FE947F18F9A005056C00008/wsdl11/allinone/ws_policy/document?
sap-client=001。
源文件即页面中显示的内容。
EndPoint地址查找
在当前系统中执行事物码:
SICF,进入维护服务界面,如下图所示:
然后在服务名称文本框中录入:
ZSAP_CALCULATE,点击执行按钮,或者使用快捷键F8。
如下图所示:
选中Zsap_calculate,如上图所示,右键执行测试服务功能,如下图所示:
在弹出框中录入你当前系统中的用户名和密码,点击确定按钮。
然后,系统将会弹出测试结果内容,如下图所示:
我们要查找的EndPoint地址内容则为上图地址栏中显示的内容,例如:
:
8002/sap/bc/srt/rfc/sap/zsap_calculate/001/zsap_calculate/zsap_calculate?
sap-client=001。
WebService调用系统配置
代理创建
WebService发布与释放之后,我们就需要到调用该WebService的系统进行一些相关配置,然后实现调用之前创建的接口函数。
现在,我们登陆另外一个SAP系统,执行事务码:
SE80,如下图所示:
在$TMPABAP17对象上右键选择CreateEnterpriseService,并执行该功能菜单,如下图所示:
执行功能菜单之后,系统将弹出如下界面。
选择ServiceConsumer,执行继续按钮,如下界面所示:
选择URL/HTTPDestination,执行继续按钮,如下界面所示:
在URL文本框中录入之前查询的URL,可以参考WSDL信息以及URL查询小结。
此处我们需要注意,我们从WSDL信息显示界面获取的URL需要经过一些调整方可被使用。
例如:
本章节实例练习中已经获取的URL为:
:
8002/sap/bc/srt/wsdl/bndg_E1102D8E4FE947F18F9A005056C00008/wsdl11/allinone/ws_policy/document?
sap-client=001,我们需要将原来的URL调整为如下的URL后,方可被当前系统所识别,如:
http:
//10.172.11.1:
8002/sap/bc/srt/wsdl/bndg_E1102D8E4FE947F18F9A005056C00008/wsdl11/allinone/standard/document?
sap-client=001,如10.172.11.1来替换,其中10.172.11.1为服务所在服务器的IP。
此外,我们还需要将原始URL中ws_policy更改为Standard,Standard才是真正被外界系统调用的。
录入之后,点击继续按钮。
如下图所示:
Prefix为代理的技术名称,勾选了LocalObject复选框后,则将对象保存至本地,不然的话,需要录入相应的Package以及请求号。
点击继续按钮,如下图所示:
点击完成按钮,如下图所示:
录入WebService所在系统的用户名、密码,权限一定要足够的大。
然后点击确定按钮。
如下图所示:
保存,并激活该代理。
逻辑端口创建
在该系统,执行事物码:
LPCONFIG,进入显示/创建逻辑端口,如下图所示:
点击创建按钮,进入编辑页面,如下图所示:
按照上图,进行相关配置,然后在一般设置面板,打开调用参数面板,如下图所示:
URL为:
EndPoint地址,检查,保存,激活该逻辑端口。
这里的URL如同代理创建一样,需要用IP替换域名。
将图中显示的URL:
:
8002/sap/bc/srt/rfc/sap/zsap_calculate/001/zsap_calculate/zsap_calculate?
sap-client=001,替换成为:
http:
//10.172.11.1:
8002/sap/bc/srt/rfc/sap/zsap_calculate/001/zsap_calculate/zsap_calculate?
sap-client=001。
代理类测试
执行事物码SE80,找到之前创建好的代理类,如下图所示:
双击该代理类,进入其显示界面,如下图所示:
点击执行按钮,或者快捷键F8。
如下图所示:
逻辑端口文本框就是之前创建的逻辑端口技术名称。
点击执行按钮,如下图所示:
从左往右数,点击第四个功能按钮(或者执行快捷键Ctrl+F2),进入XML编辑页面,如下图所示:
更改XML内容,如下图所示:
点击执行按钮,如下图所示:
输入WebService所在系统的用户名,密码,点击确定按钮,如下图所示:
截止到现在,我们已经成功调用了SAPBI系统创建的FM,代理类测试通过。
接下来,我们可以尝试在当前系统创建Report来调用SAPBI系统的FM。
Report开发
REPORT ZDEMO03_YC.
DATA:
CONVERT TYPE REF TO ZYC_CO_ZSAP_CALCULATE1,
INPUT_PAR TYPE ZYC_Z_CALCULATE1,
OUTPUT_PAT TYPE ZYC_Z_CALCULATE1RESPONSE.
CREATE OBJECT CONVERT.
INPUT_PAR-NUMBER1 = '1'.
INPUT_PAR-NUMBER2 = '3'.
INPUT_PAR-Z0PERATOR = '+'.
TRY.
CALL METHOD CONVERT->Z_CALCULATE1
EXPORTING
INPUT = INPUT_PAR
IMPORTING
OUTPUT = OUTPUT_PAT.
CATCH CX_AI_SYSTEM_FAULT .
WRITE 'Error:
Communication Error'.
CATCH CX_AI_APPLICATION_FAULT .
WRITE 'Error:
Application Error'.
ENDTRY.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- WebService 实例 new