SAP调用Web Service全流程详解

在企业应用集成中,SAP系统经常需要与外部系统通过Web Service进行数据交互。本文将基于一份实际操作文档,详细讲解如何在SAP中调用外部Web Service,涵盖从代理类创建、逻辑端口配置到代码调用的完整流程。


一、概述

SAP调用外部Web Service通常分为三个核心步骤:

  1. 创建代理类 – 通过SE80事务码,基于WSDL生成SAP端的代理类
  2. 配置逻辑端口 – 使用LPCONFIG为代理类配置连接信息
  3. 编写调用代码 – 在ABAP程序中实例化代理类并调用方法

下面我们逐步展开说明。


二、SE80创建代理类

在这里插入图片描述


在这里插入图片描述

代理类(Proxy Class)是SAP内部对外部Web Service的本地映射,它封装了SOAP通信细节,使ABAP程序可以像调用本地类一样调用远程服务。

操作步骤:

  1. 进入SE80,选择“企业服务” → “服务创建” → “服务生成”
  2. 输入WSDL地址,系统将解析服务定义
  3. 选择需要生成的服务和操作
  4. 指定包和传输请求,生成代理类及相关结构

生成后的代理类包含:

  • 一个主代理类(如ZPSI_QLTCO_UPLOADER_SAP
  • 对应的输入/输出结构(如ZPSI_QLTUPLOAD_DATA_REQUEST
  • 异常类

三、LPCONFIG配置逻辑端口

在这里插入图片描述


在这里插入图片描述

逻辑端口(Logical Port)用于存储Web Service的终端地址、认证信息等连接配置,实现代理类与物理地址的解耦。

配置过程:

  1. 运行LPCONFIG事务码
  2. 选择“创建逻辑端口”
  3. 输入端口名称(如ZPSI_QLT_DEV),选择代理类
  4. 配置目标地址(URL)、认证方式等
  5. 保存激活

关键说明:

  • 逻辑端口可按环境(开发、测试、生产)分别配置
  • 若生产地址变更,只需修改或新建逻辑端口,无需重新生成代理类

四、ABAP调用示例

以下是一个典型的调用代码框架,包含异常处理和XML数据传输:

DATA: g_obj TYPE REF TO zpsi_qltco_uploader_sap, err_obj TYPE REF TO cx_ai_system_fault, err_meth TYPE REF TO cx_ai_system_fault, err_meth2 TYPE REF TO cx_ai_application_fault, err_tran TYPE REF TO cx_transformation_error. " 根据客户端选择逻辑端口 TRY. IF sy-mandt = '800'. " 生产机 ELSE. " 测试机 CREATE OBJECT g_obj EXPORTING logical_port_name = 'ZPSI_QLT_DEV'. ENDIF. CATCH cx_ai_system_fault INTO err_obj. " 处理创建异常 ENDTRY. " 使用ST(Simple Transformation)生成XML DATA: p_xml TYPE string. TRY . CALL TRANSFORMATION zpsif_qtl SOURCE root = pt_trans[] RESULT XML p_xml OPTIONS xml_header = 'no'. CATCH cx_transformation_error INTO err_tran. " 处理转换异常 ENDTRY. " 添加XML头部 CONCATENATE '<?xml version="1.0" encoding="UTF-8"?>' p_xml INTO p_xml. " 准备输入参数并调用Web Service DATA: lv_input TYPE zpsi_qltupload_data_request, lv_res TYPE zpsi_qltupload_data_response. lv_input-xml_data = p_xml. TRY. CALL METHOD g_obj->upload_data EXPORTING upload_data_request = lv_input IMPORTING upload_data_response = lv_res. CATCH cx_ai_system_fault INTO err_meth. " 处理系统异常 CATCH cx_ai_application_fault INTO err_meth2. " 处理应用异常 ENDTRY. 

五、关键注意事项

  1. 环境隔离:开发、测试、生产环境应使用不同的逻辑端口,避免配置冲突
  2. 异常处理:必须捕获并处理CX_AI_SYSTEM_FAULTCX_AI_APPLICATION_FAULT等异常
  3. XML处理
    • 使用ST或XSLT生成XML数据
    • 注意编码和特殊字符转义
    • 部分场景下需手动调整XML字符串(如文档中提到的“去掉乱码字符”)
  4. 代理类查看:可通过SE24查看代理类的方法签名和数据结构

六、总结

通过SE80创建代理类、LPCONFIG配置逻辑端口、ABAP调用三步,SAP系统即可安全、灵活地调用外部Web Service。这种方式将外部服务封装为本地对象,提高了代码的可维护性和环境适配性,是企业系统集成中的常用实践。

Read more

Telegram bot & Mini-App开发实践---Telegram简单介绍与初始化小程序获取window.Telegram.WebApp对象并解析

Telegram bot & Mini-App开发实践---Telegram简单介绍与初始化小程序获取window.Telegram.WebApp对象并解析

➡️【好看的灵魂千篇一律,有趣的鲲志一百六七!】- 欢迎认识我~~作者:鲲志说(公众号、B站同名,视频号:鲲志说996)科技博主:极星会 星辉大使后端研发:java、go、python、TS,前电商、现web3主理人:COC杭州开发者社区主理人 、周周黑客松杭州主理人、AI爱好者: AI电影共创社杭州核心成员、阿里蚂蚁校友会技术AI分会副秘书长博客专家:阿里云专家博主;ZEEKLOG博客专家、后端领域新星创作者、内容合伙人 今天是2024年10月24日,又是一年1024程序员节。和往常一样,平淡的度过了一天,又和往常不一样,收到了人生第一束花花🌹值得纪念。就像两年前毅然决然的从电商行业进入一个零基础零认知的web3世界一样,都有第一次的刻骨铭心,选择了就勇敢的做下去,开花结果是期待,但过程也十分重要。也像2016年下半年第一次注册ZEEKLOG去检索问题的解决方案,经过多番查阅实践,终于解决;更像2017年9月27日我的第一篇ZEEKLOG博客文章潦草问世,当初不追求得到什么,只把ZEEKLOG文章当作是学习笔记,知识总结,一路写写停停,不知不觉间也悄然过去了7个年头,断然想不到博

功能媲美收费在线教育平台!一款完全免费的开源智慧云智能教育平台,支持Web、App、小程序全端使用

功能媲美收费在线教育平台!一款完全免费的开源智慧云智能教育平台,支持Web、App、小程序全端使用

💂 个人网站:IT知识小屋🤟 版权: 本文由【IT学习日记】原创、在ZEEKLOG首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 文章目录 * 简介 * 架构 * 系统亮点 * 功能列表 * UI界面 * 开源地址&使用手册 * 写在最后 简介 本系统是一款功能全面的开源在线教育系统,支持学生端、管理端、小程序和 App等多终端使用。系统采用前后端分离架构设计,内置课程学习、在线考试、试题管理、错题本、视频课堂、消息中心等核心功能,同时具备用户与权限管理、考试分析、课程管理、日志管理等管理端功能。系统采用SpringBoot、Mybatis-Plus、Shiro、MySQL、Redis等技术栈构建,前端使用Vue与UniApp实现,可支持多端实时同步和高可用、高性能部署。 系统采用模块化设计,

ComfyUI保姆级安装指南:从零配置Python环境到共享WebUI模型库(避坑大全)

ComfyUI终极安装指南:复用WebUI资源与高效配置实战 第一次接触ComfyUI时,我被它那类似Blender的节点式界面震撼到了——这完全颠覆了我对AI绘画工具的认知。但随之而来的安装过程却让我这个有三年Stable Diffusion使用经验的老用户也踩了不少坑。最头疼的问题莫过于:如何在保留现有WebUI模型库的同时,让ComfyUI也能共享这些资源?毕竟谁也不想在已经塞满3TB硬盘的模型库里再复制一份几十GB的数据。 1. 环境预检与准备工作 在开始安装前,我们需要确保系统满足ComfyUI的基本运行要求。与WebUI不同,ComfyUI对环境的纯净度要求更高,特别是Python版本的管理。 1.1 硬件配置核查 最低配置: * 显卡:NVIDIA GTX 1060(4GB显存) * 内存:16GB DDR4 * 存储:SSD剩余空间≥50GB(仅系统+程序) 推荐配置: * 显卡:RTX 3060(12GB显存)及以上 * 内存:32GB DDR4 * 存储:NVMe SSD(模型库单独存放) 提示:显存不足8GB的用户建议关闭--hig

手把手教你配置:企业微信外部群 Webhook 主动发送指南

QiWe开放平台 · 个人名片                 API驱动企微自动化,让开发更高效         核心能力:为开发者提供标准化接口、快速集成工具,助力产品高效拓展功能场景         官方站点:https://www.qiweapi.com         团队定位:专注企微API生态的技术服务团队        对接通道:搜「QiWe 开放平台」联系客服         核心理念:合规赋能,让企微开发更简单、更高效   在企业微信的自动化体系中,群机器人(Webhook) 是实现系统消息自动同步到外部群最快捷、门槛最低的工具。 虽然 2026 年官方对外部群机器人的管理更加精细化,但只要掌握正确的配置流程和调用逻辑,它依然是效率提升的神器。以下是完整的实操步骤: 第一步:获取 Webhook 地址 1. 添加机器人: 打开企业微信电脑端,进入你需要配置的外部群,点击右上角“...”,选择“群机器人” -> “添加机器人”。 2.