跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言

SAP 调用外部 Web Service 全流程详解

在企业应用集成中,SAP 系统经常需要与外部系统通过 Web Service 进行数据交互。将详细讲解如何在 SAP 中调用外部 Web Service,涵盖从代理类创建、逻辑端口配置到代码调用的完整流程。 --- 一、概述 SAP 调用外部 Web Service 通常分为三个核心步骤: **创建代理类** – 通过 SE80 事务码,基于 WSDL 生成 SAP 端的代理类 **配置逻辑端…

剑仙发布于 2026/4/6更新于 2026/7/2457K 浏览

在企业应用集成中,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_FAULT 和 CX_AI_APPLICATION_FAULT 等异常
  3. XML 处理:
    • 使用 ST 或 XSLT 生成 XML 数据
    • 注意编码和特殊字符转义
    • 部分场景下需手动调整 XML 字符串(如文档中提到的'去掉乱码字符')
  4. 代理类查看:可通过 SE24 查看代理类的方法签名和数据结构

六、总结

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

目录

  1. 一、概述
  2. 二、SE80 创建代理类
  3. 三、LPCONFIG 配置逻辑端口
  4. 四、ABAP 调用示例
  5. 五、关键注意事项
  6. 六、总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • GLM-4-9B-Chat-1M 实战:vLLM 加速与 Chainlit 前端集成
  • Qt 多线程开发:QThread 核心用法与示例
  • Trae 集成图片素描 MCP 实现多风格图像转换
  • AI Agent 智能体:从原理到实战构建自主决策助手
  • Vue 项目前端国际化 i18n 实战指南
  • AI 专利翻译大模型核心功能与跨语言检索应用
  • CCF-CSP 认证:机器人复健指南题解
  • Android Termux 安装 llama.cpp 并启动 WebUI
  • IntelliJ IDEA 接入 AI 编程助手:Copilot、DeepSeek 及 GPT-4o Mini
  • 基于 MediaPipe Hands 的智能家居隔空操控实战
  • AI 前端核心解析:技术差异、实战场景与进阶路径
  • VSCode Copilot 登录失败排查与修复指南
  • VSCode 远程连接 Linux 配置:离线安装与免密登录
  • Go 工作区 go.work 简介与使用指南
  • 10 个提升 AI 模型能力的必备技能
  • 中兴 5G 随身 WiFi 工具 UFI-Tools 隐私与更新控制修改指南
  • H.265 网页播放实战:WebAssembly 与 FFmpeg 的软硬解兼容方案
  • 人类与 AI 的意群阅读机制及英语学习技巧
  • Java 核心面试知识点汇总:集合、多线程、JVM 及锁机制
  • Java 开发环境优化:Maven 镜像与 Spring 脚手架配置

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online