20170326 ABAP调用外部webservice实例
调用外部webservice 使用Tcode;
SICF
SPROXSET 设置创建proxy 的权限
SE80
SOAMANAGER
一、目的:调用外部SRM系统的 webservice:
http://10.4.64.19:8090/srm/service/IMatnrResourceService?wsdl
8090是端口号
10.4.64.19是服务器地址
二、实施
**前提:外部提供可用的web service,通常为链接
步骤:
. SE80,创建web service proxy
)SE80,选择package,右击->create->Enterprise service
) Object Type, 选择Service Consumer,继续
)Select source,选择URL/HTTP Destination(有时只有URL),继续
)URL中输入网址,继续
)分配package和前缀(随意),完成
)保存,激活
生产PROXY: ZTST_SRM_001CO_IMATNR_RESOURCE
注意:保存,激活!
+1,
激活后可以F8 运行
重点提前说:soamanage web服务配置时注意!!!
这四项不要填错:
URL Access Path: | ||
URL Protocol Information: | ||
Computer Name of Access URL: | ||
Port Number of Access URL: |
2. LPCONFIG,创建逻辑端口(这个tcode 已弃用了->soamanager)
1)输入proxy class(第1步中生成的proxy name)和logical port(随意,通常同
proxy class),选中Default port
2)输入描述,选中message id 和 state management
3)调用参数:URL输入去掉?WSDL的地址
4)操作:右侧SOAP操作,输入xml文件中soapAction等号后的内容,包括引号
代理类:ZTST_SRM_001CO_IMATNR_RESOURCE
保存!激活!
N二、SOAMANAGER 做web服务配置;
一、 Soamanager 配置服务消费者
输入事务代码跳转至网页:
http://upd.changhong.com:8000/sap/bc/webdynpro/sap/appl_soap_management?sap-language=ZH
Web服务配置
搜索依据:消费者代理;搜索模式:ZCO_REQUEST_HANDLE_MLPURCHASE;执行
选中消费者代理,点Apply Selection
创建逻辑端口,注意配置类型:手动配置
Transport Settings
URL Access Path:
/default/WP_SOA/APP_SRM_SERVICES/Proxy_Services/TA_SAP/handleMLPurchaseOrderService_PS?wsdl
Computer Name of Access URL: 10.3.15.224(测试) 10.3.15.214(生产)
User Name for Proxy Acess: sap
Password of Proxy User: password1
保存
SAP调用PROXY
ERP调用Proxy
创建函数ZMLSCP1_FR0013 用于发送采购订单,传入参数订单抬头和订单行项。
代码注意的几个点:
1. request_data 请求xml格式字符串的拼接(字符串拼接宏及转义字符的处理)
2. 代理proxy的调用(异常的处理)
3. return_data 返回xml格式字符串消息的解析(strans转换的使用)
3.abap调用web service
例子:
DATA:lo_clientproxy TYPE REF TO z_proxy. "proxy class
DATA:lo_input TYPE z_input, "输入参数
lo_output TYPE z_output. "输出参数 lo_request = request. CREATE OBJECT lo_clientproxy.
TRY.
CALL METHOD lo_clientproxy->z_method "web service函数
EXPORTING
to_input = lo_input
IMPORTING
to_output = lo_output. * ***Write Out the Basic Information
CATCH cx_ai_system_fault INTO g_sys_exception."捕获错误
IF g_sys_exception IS NOT INITIAL.
WRITE: 'Error:Communication Error'.
ENDIF.
CATCH cx_ai_application_fault INTO g_app_exception.
IF g_app_exception IS NOT INITIAL.
WRITE 'Error:Application Error'.
ENDIF.
ENDTRY.
测试问题一:
第一步时,遇到问题HTTP 404问题,但是链接直接可以浏览器打开
解决方案:
1. 将网址链接(JAVA发布的web service通常以?wsdl结尾),另存到本地,保存为
xml文件
2. 修改xml文件,删除下面内容,删除后保存
<wsdl:binding ……> …… </wsdl:binding>
<wsdl:port …….> …….</wsdl:port>
3. SE80创建web service proxy时,就Select source,选择Local file,其他都一
样
刚看一个链接里有介绍:http://hi.baidu.com/tktik/item/fcaf0e53e26cbe3a32e0a951
测试问题二:
连接总是不同,一直有cx_ai_system_fault异常
解决方案:
将逻辑端口中的域名改为ip地址
**值得注意的是,实现该功能,不需要创建RFC连接
20170326 ABAP调用外部webservice实例的更多相关文章
- 20170326 ABAP调用外部webservice 问题
1.SE80 创建企业服务: 代理生成:出现错误 库处理程序中出现例外 错误的值:未知类型参考ns1:ArrayOfMLMatnrResource 尝试: 一.测试本地文件:---无效 1. 将网址链 ...
- ABAP调用外部WebService
TCode:se80 选择 Package,输入我们自己的开发包,后回车 右击 开发包名称,选择菜单 出现创建向导窗体 选择"Service Consumer",点击 继续 选择& ...
- PI-webservice05-SAP调用外部webservice
在用webservice进行数据传输的过程中,SAP系统与.net开发的信息系统之间的数据调用.如何用SAP调用外部的.net系统发布的webservice程序来获取外部的数据,详情请见下文: 1,创 ...
- 在IIS上发布一个WebService,再发布一个网站调用这个WebService(实例)
首先描述一下先决条件:IIS可用,VS2005可用. 好,现在开始: 首先写一个WebService并把它发布到IIS上: 在IIS上的默认网站下新建一个“虚拟目录”,取名为“webservice1” ...
- 20170401 ABAP调用CIS webservice
问题: SAP abap SRM java 调webservice 不通, CIS java 这边的webservice 可以通, WHY? key:请求头,系统框架的问题, LF:因为请求头的 ...
- VS2010调用外部webservice
vs2010怎么调用web服务webservice方法,以vs2010为例.Vs的各个版本的此项功能操作基本一致. 工具/原料 vs2010 在“服务引用设置”对话框中,单击“添加 Web 引用”. ...
- Android之ksoap2-android详解与调用天气预报Webservice完整实例
Google为Android平台开发Web Service客户端提供了ksoap2-android项目,在这个网址下载开发包http://code.google.com/p/ksoap2-androi ...
- PHP调用Webservice实例
原文 PHP调用Webservice实例 NuSoap是PHP环境下的WebService编程工具,用于创建或调用WebService.它是一个开源软件,是完全采用PHP语言编写的.通过HTTP收发S ...
- JAVA 项目 调用外部的WebSerivce接口,入门实例 (一)
前言: 第一次接触WebService,工作需要,调用外部的WebService接口,所以暂时我这里不考虑发布,做个记录,待以后回来可以看看,只是最初级的,所以有何不好.不对的地方,欢迎看到的同僚给予 ...
随机推荐
- Start Developing iOS Apps Today
view types - view常见类型
- Android Touch事件传递机制详解 下
尊重原创:http://blog.csdn.net/yuanzeyao/article/details/38025165 资源下载:http://download.csdn.net/detail/yu ...
- WinForm 读取Excel 数据显示到窗体中
最近教学中,需要用到WinForm 读取Excel数据,于是就做了一个简单的,废话不多说,直接codding... //读取Excel的帮助类 class SqExcellHelper { publi ...
- HDU1969
记得用PI=acos(-1)反三角函数求,用一次排序,然后二分和贪心 #include<iostream> #include<algorithm> #include<io ...
- 更换 mac时 开发证书
更换 mac时 开发证书,先导出, 后导入,如果出现错误,把projects自动签名改为手动
- 解决Ubuntu下gedit中文乱码的情况
windows下简体中文多用GBK编码 (或GB2312, GB18030), 而linux下多用UTF-8编码. 因此,一般来说在微软平台编辑的中文txt不能在ubuntu下直接打开查看,除非在保存 ...
- 【前端阅读】——《活用PHP、MySQL建构Web世界》摘记之设计技巧
二.设计技巧 Programming的习惯因人而异,这里只提供一些经验,可以参考. 1.利用Include模块化你的程序代码 Include函数基本上说:就像是把另一个文件(HTML或者PHP程序)读 ...
- Rom Modified [Galaxy 3 Tested]
1,Virtualbox虚拟机设置-数据空间注意这里不要勾选那个自动挂载,不然后面mount总会提示mount.vbox.. invalid argument. 2,进入ubuntu中,在终端下输入 ...
- WikiCFP--A Wiki for Calls For Papers
WikiCFP--A Wiki for Calls For Papers ---->www.wikicfp.com/cfp/
- php解码“&#”编码的中文用函数html_entity_decode()
遇到类似 ' 这种编码的字,我们可以用html_entity_decode()函数来解码. html_entity_decode() 函数把 HTML 实体转换为字符. 语法 html_entity_ ...