最详细的 SAP ABAP Web Service 创建和消费步骤讲解

简介: 最详细的 SAP ABAP Web Service 创建和消费步骤讲解

本文原版发表于 SAP 官方社区,当时用的英文版写作,标题为:Step by step to create, consume and trace web service in ABAP system

https://blogs.sap.com/2014/05/20/step-by-step-to-create-consume-and-trace-web-service-in-abap-system/


总共阅读量超过 18 万。image.pngHow to create web service provider in ABAP system

如何在 SAP ABAP 系统创建 web service 提供者

本文主要思路就是创建一个 ABAP function module,然后通过事物码 SOAMANAGER 将其封装成 web service.


下面这个函数在 SAP CRM 里创建,逻辑是简单地根据 SAP CRM 产品 ID,从数据库表里读取其描述信息并返回。image.png需要用事物码 SOAMANAGER 暴露成 Web Service 的函数,必须标注成 Remote enabled:image.pngSE37 里,菜单 Utilities->More Utilities->Create Web Service->From the Function Module:image.png按照向导一步步 Next 即可,按照自己的实际场景,选择合适的 Web Service 调用安全认证机制。image.png完成向导后,应该能得到如下的服务定义:

image.png点击上图 ALV 面板的 “WSDL” 标签页,浏览 Web Service 的 WSDL:

image.png使用事物码 SOAMANAGER, 创建 Web Service Configuration:

image.png找到我们刚才通过向导创建好的服务定义:image.png点击 Create Service 按钮:image.png选择合适的通信安全设置(Community Security):image.png点击 Finish 按钮:

image.png现在这个 web service 就可以消费了。点击这个图标:Open Binding WSDL Generation:image.png把这个用于绑定的 WSDL 链接保存下来备用。image.png下面介绍 SAP ABAP Web Service 的消费步骤。

事物码 SE80,新建一个 Service Consumer:image.png在 Generation Source 里,选择 External WSDL / Schema:image.png把之前我们创建的 Service Definition 里创建好的 Service Definition WSDL Url,粘贴过来:image.png激活 Service Consumer,会自动生成一个 ABAP 类,这个类用于消费 web service. 激活该类,记下其名字。image.png回到事物码 SOAMANAGER, 找到之前创建的 Consumer Proxy:image.png创建一个新的 logical port:image.pngimage.png将 Web Service 创建时保存的 url 填进去。记住不能将 SE80 里 WSDL 标签页里的 url 填入,否则会遇到下列错误:image.pngimage.png从 SE80 Service Consumer 里,我们能观察到这个代理类的输入和输出参数定义。

现在就可以在 ABAP 报表里,消费这个 proxy class 了。image.png完整的 ABAP 代码:image.png我们执行这个 ABAP 报表,通过 web service 调用的方式,根据产品 ID ARNO_TEST004,拿到了其描述信息:TEST FOR WORKSHOP dsf test 11 tesdgt12image.png这个描述信息,和我们在 WebClient UI 上观察到的一致:image.png

ABAP Web service 执行的监控和跟踪

事物码 SRT_UTIL, 为需要进行 Web Service 执行监控的用户,创建一个新的配置:

image.png将 Functional Trace 下拉菜单项的值选择成 High. 根据实际需要,也可以启用 Performance Trace 和 Payload Trace,这些选项默认都是关闭状态:Inactive.


最后别忘了点击 ”Save Configuration“ 按钮。image.png重新执行会触发 Web Service 调用的操作。然后回到事物码 SRT_UTIL,点击 Functional Trace,点击刷新按钮,就看到了刚才 Web Service 调用的执行明细。

其实用法和 SQL Trace 即事物码 ST05 很类似。

image.png双击类型为 ”Response“ 的某一行,能看到 Web service 调用返回的明细,比如之前提到的,根据输入产品 ID 去数据库查询,再返回的产品描述信息:TEST FOR WORKSHOP dsf test 11 tesdgt12

image.png





image.pngimage.pngimage.pngimage.png

相关文章
在 CRM WebClient UI Attachment 区域,创建支持 Web Service 的 Word 文档
在 CRM WebClient UI Attachment 区域,创建支持 Web Service 的 Word 文档
|
12月前
phpstorm插件应用:Test RESTful WEB Service 控制台接口调试工具
phpstorm插件应用:Test RESTful WEB Service 控制台接口调试工具
146 0
|
26天前
|
JavaScript 前端开发 定位技术
Rest风格WEB服务(Rest Style Web Service)的真相
Rest风格WEB服务(Rest Style Web Service)的真相
34 1
|
2月前
|
XML API 网络架构
Web Service和Web API理解和使用场景
**Web Service**是一种基于网络、使用SOAP协议和XML的数据封装的重服务,适用于跨平台、跨语言的企业系统集成,尤其在安全性和事务处理严格的场景,如银行系统。而**Web API**是轻量级的HTTP接口,常遵循REST原则,使用JSON格式,适合移动应用、开放平台和微服务间的通信,因其简洁高效。选择哪种取决于项目需求,Web Service适合复杂交互,Web API则流行于现代Web应用。
|
2月前
|
缓存 应用服务中间件 数据库
Python Web Service开发及优化
随着互联网的快速发展,Web服务已成为现代技术的核心。Python作为一种功能强大且易于学习的编程语言,在Web服务开发领域占据着重要地位。Python Web服务开发的重要性在于它能够提供高效、可扩展且易于维护的解决方案。本篇博客将探讨如何使用Python的Flask框架、Gunicorn WSGI服务器和Nginx网页服务器来实现高性能的Web服务。
|
9月前
|
JSON 安全 API
使用 ABAP sproxy 事务码生成的 Proxy 消费 Web Service
使用 ABAP sproxy 事务码生成的 Proxy 消费 Web Service
|
2月前
|
XML 网络架构 数据格式
Ruby 教程 之 Ruby Web Service 应用 - SOAP4R 2
Ruby Web Service 应用 - SOAP4R
37 5
|
2月前
|
XML 存储 数据格式
如何在 CRM Assignment block 里创建支持 Web Service 的 PDF 附件
如何在 CRM Assignment block 里创建支持 Web Service 的 PDF 附件
|
2月前
|
存储 缓存 算法
关于 Service Worker 和 Web 应用对应关系的讨论
关于 Service Worker 和 Web 应用对应关系的讨论
|
2月前
|
XML Linux 网络架构
Ruby 教程 之 Ruby Web Service 应用 - SOAP4R 1
Ruby Web Service 应用 - SOAP4R
36 3