设为首页 收藏本站
查看: 2482|回复: 0

[经验分享] SAP调用第三方WebService

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-19 11:39:04 | 显示全部楼层 |阅读模式
  项目中,可能会碰到客户提出需求,需要SAP、ABAP去访问已有WebService。本文以一个中国股票行情数据 WEB 服务为例,实现SAP调用第三方WebService
  一、常用WebService一览
  常用的WebService有很多,这里就不一一列举了,查看链接:常用WebService一览
  二、SAP配置客户端代理(Client Proxies)
  1.在SE80中新建一个Package,然后在包名上右击Create->Enterprise Service/Web Service->Proxy Object
DSC0000.jpg
  2.根据向导一步一步创建。
  常用的是URL/HTTP Destination
DSC0001.png
  在URL中填写对应WebService的WSDL,这里是http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx?WSDL
DSC0002.png
  选择port type,只能选Soap,别的都会报错
DSC0003.png
  填写Package和前缀,前缀的命名有一定的要求,按F1查看,确定后创建完成。
DSC0004.png
  激活。中间如果有各种警告都不要理会,一直确定,最后激活即可。
  3.LPCONFIG中设置Logical Port
  Proxy Class写在SE80中创建的代理类的名字
  Logical Port自己取一个名字
  Default Port记得打勾
  然后创建,输入描述后保存激活。创建后可以查看一些参数配置,基本上默认就行
DSC0005.jpg
  4.返回SE80查看一些属性。在刚才建的Proxy Class的类上双击,查看Generation。
  第一行是你的Proxy Class类名
  后边都是WebSerice接口相应的输入输出参数类型,一般名字会和接口的名字相关。
DSC0006.png
  在第一行上双击进去可以看到所包含的的接口,这里有5个接口和1个构造函数。
DSC0007.jpg
  三、程序部分

  REPORT  ZSTOCK.
DATA: PROXY TYPE REF TO ZPR_CO_CHINA_STOCK_WEB_SERVICE, "PROXY CLASS
      SO1 TYPE ZPR_GET_STOCK_INFO_BY_CODE_SO1,"GET_STOCK_INFO_BY_CODE接口的输入参数
      SOA TYPE ZPR_GET_STOCK_INFO_BY_CODE_SOA,"GET_STOCK_INFO_BY_CODE接口的输出参数
      WA_STRING LIKE LINE OF SOA-GET_STOCK_INFO_BY_CODE_RESULT-STRING,
      IT_LABLE TYPE STANDARD TABLE OF STRING,
      WA_LABLE TYPE STRING,
      ERROR TYPE REF TO CX_AI_SYSTEM_FAULT.
SELECTION-SCREEN BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-001."选择屏幕
PARAMETERS: P_CODE LIKE SO1-THE_STOCK_CODE OBLIGATORY DEFAULT 'SZ300170'.
SELECTION-SCREEN END OF BLOCK BLK.
INITIALIZATION."初始化一些标签说明
APPEND '股票代号:' TO IT_LABLE.
APPEND '股票名称:' TO IT_LABLE.
APPEND '行情时间:' TO IT_LABLE.
APPEND '最新价(元):' TO IT_LABLE.
APPEND '昨收盘(元):' TO IT_LABLE.
APPEND '今开盘(元):' TO IT_LABLE.
APPEND '涨跌额(元)' TO IT_LABLE.
APPEND '最低(元):' TO IT_LABLE.
APPEND '最高(元):' TO IT_LABLE.
APPEND '涨跌幅(%):' TO IT_LABLE.
APPEND '成交量(手):' TO IT_LABLE.
APPEND '成交额(万元):' TO IT_LABLE.
APPEND '竞买价(元):' TO IT_LABLE.
APPEND '竞买价(元):' TO IT_LABLE.
APPEND '委比(%):' TO IT_LABLE.
APPEND '买一(元)/手:' TO IT_LABLE.
APPEND '买二(元)/手:' TO IT_LABLE.
APPEND '买三(元)/手:' TO IT_LABLE.
APPEND '买四(元)/手:' TO IT_LABLE.
APPEND '买五(元)/手:' TO IT_LABLE.
APPEND '卖一(元)/手:' TO IT_LABLE.
APPEND '卖二(元)/手:' TO IT_LABLE.
APPEND '卖三(元)/手:' TO IT_LABLE.
APPEND '卖四(元)/手:' TO IT_LABLE.
APPEND '卖五(元)/手:' TO IT_LABLE.
START-OF-SELECTION.
SO1-THE_STOCK_CODE = P_CODE.
TRY .
CREATE OBJECT PROXY"初始化PROXY
EXPORTING
        LOGICAL_PORT_NAME = 'STOCK_WEBSERVICE'.
CALL METHOD PROXY->GET_STOCK_INFO_BY_CODE"调用GET_STOCK_INFO_BY_CODE
EXPORTING
INPUT  = SO1
IMPORTING
OUTPUT = SOA
.
CATCH CX_AI_SYSTEM_FAULT INTO ERROR.
WRITE /1 ERROR->ERRORTEXT.
ENDTRY.
LOOP AT SOA-GET_STOCK_INFO_BY_CODE_RESULT-STRING INTO WA_STRING."输出
READ TABLE IT_LABLE INTO WA_LABLE INDEX SY-TABIX.
WRITE: WA_LABLE,WA_STRING,/.
ENDLOOP.
  四、运行效果:
DSC0008.png
  这样就完成了一个SAP内置炒股软件,SAP真是无所不能啊:)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-115773-1-1.html 上篇帖子: SAP 库存查询算法 下篇帖子: SAP安装步骤[ECC6]WIN2000AS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表