news 2026/8/27 13:08:11

SAP IDoc出站与入站配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SAP IDoc出站与入站配置

一、发送端配置出站IDoc

1、WE31 创建段类型,此处我用标准段类型 E1P0000 演示

2、WE30 创建IDoc类型,此处我用标准IDoc类型 HRMD_A09 演示

3、WE81 创建消息类型

4、WE82 关联消息类型与IDoc类型

5、WE21 创建接收端的端口,其中RFC目标为SM59创建的到接收系统的ABAP连接

6、WE20 创建合作伙伴参数文件

合作伙伴编号:SALE定义的接收端逻辑系统名称

伙伴类型:LS

Ty.:US

代理人:发送端的用户,IDoc中出现问题会向此用户发送邮件

出站参数

消息类型:步骤3 WE81创建的消息类型

接收方端口:步骤5 WE21创建的接收端端口

基本类型:步骤2 WE30创建的IDoc类型

7、编写测试程序,并执行测试程序

REPORT ytest_lcl. PARAMETERS: p_pernr TYPE p0000-pernr OBLIGATORY. START-OF-SELECTION. DATA: ls_head TYPE e1plogi, ls_item TYPE E1PITYP, ls_p0000 TYPE e1p0000, "IDoc数据段:头 ls_p0001 TYPE e1p0001, "IDoc数据段:Item ls_edidc TYPE edidc, "IDoc的控制记录 lt_edidc TYPE TABLE OF edidc, lt_edidd TYPE TABLE OF edidd WITH HEADER LINE. "IDoc的数据记录 CLEAR ls_edidc. *系统根据下面4行即可与WE20(合作和伴配置文件)设置关联起来 ls_edidc-mestyp = 'YTEST_MSG_TYP'. "Message Type ls_edidc-idoctp = 'HRMD_A09'. "IDOC Type ls_edidc-rcvprn = 'ESDCLNT150'. "partner Number of Recipient接收方合作伙伴 ls_edidc-rcvprt = 'LS'. "partner Type of Receiver接收方类型为逻辑系统 *添加IDOC节点 CLEAR lt_edidd. lt_edidd-segnam = 'E1PLOGI'."头节点 lt_edidd-dtint2 = 0. lt_edidd-sdata = ls_head. "节点内容:ls_pohead结构中的数据最后被拼接成字符串再赋值给lt_edidd-sdata,最大长度不能超过1000 APPEND lt_edidd. CLEAR lt_edidd. lt_edidd-segnam = 'E1PITYP'."头节点 lt_edidd-dtint2 = 0. lt_edidd-sdata = ls_item. "节点内容:ls_pohead结构中的数据最后被拼接成字符串再赋值给lt_edidd-sdata,最大长度不能超过1000 APPEND lt_edidd. CLEAR lt_edidd. lt_edidd-segnam = 'E1P0000'."Item节点 lt_edidd-dtint2 = 0. CLEAR ls_p0000. SELECT SINGLE * FROM pa0000 INTO CORRESPONDING FIELDS OF ls_p0000 WHERE pernr = p_pernr AND endda = '99991231'. lt_edidd-sdata = ls_p0000. "节点内容:ls_pohead结构中的数据最后被拼接成字符串再赋值给lt_edidd-sdata,最大长度不能超过1000 APPEND lt_edidd. CLEAR lt_edidd. lt_edidd-segnam = 'E1P0001'."Item节点 lt_edidd-dtint2 = 0. CLEAR ls_p0001. SELECT SINGLE * FROM pa0001 INTO CORRESPONDING FIELDS OF ls_p0001 WHERE pernr = p_pernr AND endda = '99991231'. lt_edidd-sdata = ls_p0001. APPEND lt_edidd. CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE' "发送IDoc EXPORTING master_idoc_control = ls_edidc "IDoc控制记录 TABLES communication_idoc_control = lt_edidc "接收:用来接收IDoc发送情况 master_idoc_data = lt_edidd "IDoc数据记录 EXCEPTIONS " error_in_idoc_control = 1 error_writing_idoc_status = 2 error_in_idoc_data = 3 sending_logical_system_unknown = 4 OTHERS = 5. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ELSE. COMMIT WORK. WRITE: 'Idoc sent:'. LOOP AT lt_edidc INTO ls_edidc. NEW-LINE. WRITE: 'Idoc number is', ls_edidc-docnum, '; receiver partner is', ls_edidc-rcvprn, '; sender partner',ls_edidc-sndprn. ENDLOOP. ENDIF.

8、BD87 查看IDoc处理结果,出现错误可重处理

二、接收端配置入站IDoc

1、WE31 创建段类型,同发送端

2、WE30 创建IDoc类型,同发送端

3、WE81 创建消息类型,同发送端

4、WE82 关联消息类型与IDoc类型,同发送端

5、WE21 创建发送端的端口,其中RFC目标为SM59创建的到发送系统的ABAP连接

6、创建入站处理函数,可参考函数IDOC_INPUT_*,入参出参固定

FUNCTION ytest_input_lcl. *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *" VALUE(INPUT_METHOD) LIKE BDWFAP_PAR-INPUTMETHD *" VALUE(MASS_PROCESSING) LIKE BDWFAP_PAR-MASS_PROC *" EXPORTING *" VALUE(WORKFLOW_RESULT) LIKE BDWF_PARAM-RESULT *" VALUE(APPLICATION_VARIABLE) LIKE BDWF_PARAM-APPL_VAR *" VALUE(IN_UPDATE_TASK) LIKE BDWFAP_PAR-UPDATETASK *" VALUE(CALL_TRANSACTION_DONE) LIKE BDWFAP_PAR-CALLTRANS *" TABLES *" IDOC_CONTRL STRUCTURE EDIDC *" IDOC_DATA STRUCTURE EDIDD *" IDOC_STATUS STRUCTURE BDIDOCSTAT *" RETURN_VARIABLES STRUCTURE BDWFRETVAR *" SERIALIZATION_INFO STRUCTURE BDI_SER *" EXCEPTIONS *" WRONG_FUNCTION_CALLED *"---------------------------------------------------------------------- CLEAR idoc_contrl. READ TABLE idoc_contrl INDEX 1. IF idoc_contrl-mestyp <> 'YTEST_MSG_TYP'. RAISE wrong_function_called. ENDIF. LOOP AT idoc_contrl. LOOP AT idoc_data WHERE docnum = idoc_contrl-docnum. CASE idoc_data-segnam. WHEN 'E1PLOGI'. "直接将字符赋值给结构,贬值过程中会按照结构中的字段长度来划分各字段 " idoc_data-sdata. WHEN 'E1PITYP'. " idoc_data-sdata. WHEN OTHERS. ENDCASE. ENDLOOP. "根据数据处理情况设置当前IDoc处理的状态 IF 1 = 1. CLEAR idoc_status. idoc_status-docnum = idoc_contrl-docnum."当前正处理的IDoc idoc_status-status = '53'. "IDOC处理成功 APPEND idoc_status. ELSE. CLEAR idoc_status. idoc_status-docnum = idoc_contrl-docnum. idoc_status-status = '51'. "IDOC不成功 idoc_status-msgty = 'E'. "错误信息 idoc_status-msgid = 'B1'. idoc_status-msgno = '527'. APPEND idoc_status. ENDIF. ENDLOOP. ENDFUNCTION.

7、WE51 注册入站处理函数

8、WE57 关联入站处理函数与IDoc类型和消息类型

9、WE42 创建进站处理代码,选择由函数模块处理,标识为入站处理函数名

10、WE20 创建合作伙伴参数文件

合作伙伴编号:SALE定义的发送端逻辑系统名称

伙伴类型:LS

Ty.:US

代理人:接收端的用户

入站参数

消息类型:步骤3 WE81创建的消息类型

处理代码:步骤9 WE42创建的进站处理代码11、BD87 查看IDoc处理结果,出现错误可重处理

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/27 13:06:34

HarmonyOS DevEco Studio 3.1 Beta新特性知多少

HUAWEI DevEco Studio是开发HarmonyOS应用及服务的一站式集成开发环境&#xff08;IDE&#xff09;。本次&#xff0c;DevEco Studio 3.1 Beta新增支持当前在市面上新的操作系统&#xff0c;如Windows11、macOS&#xff08;ARM&#xff09;操作系统&#xff0c;还面向HarmonyOS…

作者头像 李华
网站建设 2026/8/27 13:06:03

鸿蒙生态:下一个移动互联网的黄金领域,你敢来挑战吗?

要说2023年IT圈最火爆的名词&#xff0c;非鸿蒙莫属&#xff01;2023年9月25日&#xff0c;华为宣布将在2024年第一季度推出HarmonyOS NEXT版本&#xff0c;这一消息让鸿蒙原生应用开发摆脱了Android手机系统的束缚&#xff0c;引领鸿蒙应用开发迈向新的纪元。 随着这一消息的发…

作者头像 李华
网站建设 2026/8/27 13:01:07

鸿蒙开发入门:应用配置文件概述(FA模型)

应用配置文件概述&#xff08;FA模型&#xff09; 每个应用项目必须在项目的代码目录下加入配置文件&#xff0c;这些配置文件会向HarmonyOS的编译工具、HarmonyOS操作系统和应用市场提供描述应用的基本信息。 应用配置文件需申明以下内容&#xff1a; 应用的软件包名称&…

作者头像 李华
网站建设 2026/8/27 12:59:44

5 分钟用 Driver Store Explorer 清掉旧驱动,免费释放 C 盘空间

5 分钟用 Driver Store Explorer 清掉旧驱动&#xff0c;免费释放 C 盘空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 周五要交周报前 10 分钟&#xff0c;C 盘弹了个红条。你想清…

作者头像 李华
网站建设 2026/8/27 12:59:20

MD常见报错解决方法

一、残基不全问题该问题一般出现于使用电镜解析结构跑MD的时候&#xff0c;主要是因为有些质量密度分辨率不足&#xff0c;只能确定部分原子的位置&#xff0c;从而出现了少于标准残基原子数的残基&#xff0c;导致GROMACS无法识别。该问题从GROMACS的报错中可能无法判断出问题…

作者头像 李华
网站建设 2026/8/27 12:59:08

【计算机毕业设计单片机案例】基于 STM32 单片机的酒驾主动防控与无线监控系统设计 基于 STM32 与 Android Studio 的车载酒精监控终端设计(010205)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机&#xff0c;Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华