调用外部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实例的更多相关文章

  1. 20170326 ABAP调用外部webservice 问题

    1.SE80 创建企业服务: 代理生成:出现错误 库处理程序中出现例外 错误的值:未知类型参考ns1:ArrayOfMLMatnrResource 尝试: 一.测试本地文件:---无效 1. 将网址链 ...

  2. ABAP调用外部WebService

    TCode:se80 选择 Package,输入我们自己的开发包,后回车 右击 开发包名称,选择菜单 出现创建向导窗体 选择"Service Consumer",点击 继续 选择& ...

  3. PI-webservice05-SAP调用外部webservice

    在用webservice进行数据传输的过程中,SAP系统与.net开发的信息系统之间的数据调用.如何用SAP调用外部的.net系统发布的webservice程序来获取外部的数据,详情请见下文: 1,创 ...

  4. 在IIS上发布一个WebService,再发布一个网站调用这个WebService(实例)

    首先描述一下先决条件:IIS可用,VS2005可用. 好,现在开始: 首先写一个WebService并把它发布到IIS上: 在IIS上的默认网站下新建一个“虚拟目录”,取名为“webservice1” ...

  5. 20170401 ABAP调用CIS webservice

    问题: SAP  abap SRM java  调webservice 不通, CIS java  这边的webservice 可以通, WHY? key:请求头,系统框架的问题, LF:因为请求头的 ...

  6. VS2010调用外部webservice

    vs2010怎么调用web服务webservice方法,以vs2010为例.Vs的各个版本的此项功能操作基本一致. 工具/原料 vs2010 在“服务引用设置”对话框中,单击“添加 Web 引用”. ...

  7. Android之ksoap2-android详解与调用天气预报Webservice完整实例

    Google为Android平台开发Web Service客户端提供了ksoap2-android项目,在这个网址下载开发包http://code.google.com/p/ksoap2-androi ...

  8. PHP调用Webservice实例

    原文 PHP调用Webservice实例 NuSoap是PHP环境下的WebService编程工具,用于创建或调用WebService.它是一个开源软件,是完全采用PHP语言编写的.通过HTTP收发S ...

  9. JAVA 项目 调用外部的WebSerivce接口,入门实例 (一)

    前言: 第一次接触WebService,工作需要,调用外部的WebService接口,所以暂时我这里不考虑发布,做个记录,待以后回来可以看看,只是最初级的,所以有何不好.不对的地方,欢迎看到的同僚给予 ...

随机推荐

  1. 深入理解 JavaScript Function

    1.Function Arguments JavaScript 函数的参数 类型可以是 复杂类型如  Object or Array 和简单类型 String Integer null undefin ...

  2. Flutter开发记录part2

    (1)文本超出折叠:child: Text('跑马灯dddd的范德萨范德萨放多少范德萨范德萨范德萨范德萨范德萨发',maxLines: 1,overflow: TextOverflow.ellipsi ...

  3. ylb:SQL 视图(View)基础

    ylbtech-SQL Server: SQL Server-SQL 视图(View)基础 SQL 视图(View)基础. 1,ylb:视图(View)基础返回顶部 -- ============== ...

  4. cocos2d-x 3.0 内存管理机制

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  5. 面试题 15:链表中倒数第 k 个结点

    面试题 15:链表中倒数第 k 个结点 题目:输入一个链表,输出该链表中倒数第 k 个结点.为了符合大多数人的习惯, 本题从 1 开始计数,即链表的尾结点是倒数第一个结点.例如一个有 6 个结点的 链 ...

  6. Lua学习三----------Lua数据类型

    © 版权声明:本文为博主原创文章,转载请注明出处 Lua数据类型 - Lua是动态类型语言,不需要为变量定义类型,只需要为变量赋值 - Lua有8中基本数据类型:nil.boolean.number. ...

  7. HDU 2473 Junk-Mail Filter 删点并查集

    题目来源:pid=2473">HDU 2473 Junk-Mail Filter 题意:2中操作 M x, y 将x,y 合并到一个集合 S x 将x从所在的集合去掉 自己成为一个集合 ...

  8. python3.x中xml.etree.ElementTree解析xml举例

    1.新建xml import xml.etree.ElementTree as ETa=ET.Element('elem')c=ET.SubElement(a,'child1')c.text=&quo ...

  9. Java编码辅助工具:Lombok —— 避免重复臃肿的代码,提高效率

    在项目开发过程中,经常会涉及到一些调整很少但又必不可少的环节,比如实体类的Getter/Setter方法,ToString方法等.这时可以使用Lombok来避免这种重复的操作,减少非核心代码的臃肿,提 ...

  10. 深度解析 | 秒懂AI+智慧手机实践

    阅读数:17 ​​​随着人工智能的概念越来越深入人心,智慧化生活和对应的智慧化终端体验也吸引越来越多的目光.可以想见,人工智能会深刻改变终端产业,但目前也面临各种挑战和问题.此前,在南京软件大会上,华 ...