开发环境: S4 HANA 1809,Process Orchestration 750,  SoapUI Pro 5.1.2.

SAP IDOC协议,很老的东西了,记得2001年项目上就听说过,在比较老的系统上,使用很广泛,一直没机会接触,这次终于开始深入的了解。

IDOC在协议中所处的位置:IDOC底层是基于RFC(SOCKET长连接),可以说,IDOC其实就是一种RFC的高级应用,SAP在RFC的基础上提供了一整套封装的功能,来实现用IDOC传输和处理数据。

计划实现下面的例子,IDOC入站,IDOC出站:

我们先开始第一个接口JKT001(入站,外围程序传数据给SAP)

一、IDOC在SAP端的配置如下

1、WE31 定义

2、WE30 定义的基本类型  BASIC TYPE

3、WE81 定义message类型

4、WE82  绑定上面的基本类型与消息类型

5、建一个自己的处理函数

6、BD51 设置一下这个函数

7、WE57 绑定基本类型、消息类型、函数名称

8、WE42 定义入站的处理逻辑(由自己的函数模块处理)

9、WE20 设置错误消息

二、IDOC在SAP端的调试:

1、WE02中可以看到全部IDOC的消息记录

2、WE19中可以发起IDOC的数据包测试,输入这个ID,执行,改里面的报文数据,点“标准入站”测试。

三、IDOC入站方式中自己的函数:

在IDOC的配置中,在ABAP层,需要有一个自己的函数,处理接到的报文消息,我们看看这个自己函数的处理逻辑:

1、函数输入1:IDOC_CONTRL内表,该表存放IDOC相关的控制信息(DOCNUM)

2、函数输入2: IDOC_DATA内表,存放IDOC的数据(DOCNUM)

3、自己程序用上面的数据,保存到自己的表中

4、函数输出: IDOC_STATUS内表,存放这个函数调用完成后的状态和消息

这个函数入口参数的格式是SAP规定好了的,我们只要遵从这些数据格式就可以直接使用,我们仔细看看这个函数的入口和出口参数:

*"*"本地接口:
*"  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

为了便于理解,我把何喜同学的标准函数改了一个最简化版的IDOC入站函数,把传入系统的数据(物料和物料描述2个字段,放到自己的表里):

TABLES ZJKT001T.
DATA GS_ZJKT001T LIKE ZJKT001T.LOOP AT IDOC_DATA.GS_ZJKT001T = IDOC_DATA-SDATA.
INSERT ZJKT001T FROM GS_ZJKT001T.IF SY-SUBRC EQ 0.COMMIT WORK AND WAIT .IDOC_STATUS-DOCNUM = IDOC_DATA-DOCNUM.IDOC_STATUS-STATUS = '53'.IDOC_STATUS-MSGTY = 'S'.IDOC_STATUS-MSGV1 = '保存数据成功'.ELSE.ROLLBACK WORK .IDOC_STATUS-DOCNUM = IDOC_DATA-DOCNUM.IDOC_STATUS-STATUS = '51'.IDOC_STATUS-MSGTY = 'E'.IDOC_STATUS-MSGV1 = '保存数据错误'.ENDIF.APPEND IDOC_STATUS TO IDOC_STATUS.ENDLOOP.

OK,用WE19发一条测试数据,哦,保存到了自己的透明表里。

以上 S4端的IDOC配置完毕。

下面我们开始PO上的配置,这是我们的概念图,IDOC是单向的,异步模式,所以我们在常规的同步双向配置中,可以省略好多配置。

有了基本概念,实际配置其实比较简单,我是参考的网上文章:PI-AAE-IDOC(SOAP2IDOC)EC.pdf :

第一步,把S4里的IDOC函数导入进来(这是S4方的数据)

第二步,建DT、MT、SI(这是外围系统方的数据定义):

注意这个outbound概念,我理解了一年时间,终于画出了上面的概念图,至此PO无惑。

第三步,建一个MM、一个OM:

MM这里就是IDOC最麻烦的地方了,参考的网上文章:PI-AAE-IDOC(SOAP2IDOC)EC.pdf,十几个IDOC的控制字段全部要赋值。

OM单向的,这里也要注意,何喜同学配了一天没通也是在这里,注意右边的Target, 需要把从S4引用的IDOC对象,拖过来:

最后在IB里的配置:

S4方的CC接收通道参数:

外围系统方的CC发送通道参数,最节约人天的WebSercice SOAP协议:

最后的IC配置:

全部完成,我们测试一下数据,S4收到了数据,并存到了我们的自定义表中:

SAP PO IDOC开发上(SAP PO 开发十一)相关推荐

  1. 我的第一个SAP PROXY ABAP Program(SAP PO 开发五)

    登陆PO服务器,启动JAVA客户端三步(SAP PO 开发一) 搭建一个WebService接口环境(SAP PO 开发 二) 用SAP PO连通一个WebService接口(SAP PO 开发 三) ...

  2. 如何把本地开发的 SAP UI5 应用部署到 ABAP 服务器上

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  3. SAP UI5 应用开发教程之三十五 - 如何把本地开发的 SAP UI5 应用部署到 ABAP 服务器上试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  4. 资深SAP专家谈如何深入SAP开发

    资深SAP专家谈如何深入SAP开发 详细信息:http://www.china-pub.com/209178 本书特色 本书内容丰富,涵盖了SAP 系统实施.集成过程中的众多技术专题,包括RFC 通信 ...

  5. 也谈SAP业务顾问如何避免被ABAP开发顾问怒打

    也谈SAP业务顾问如何避免被ABAP开发顾问怒打 近期一个视频火了,说是中国平安一个产品经理和APP开发人员在办公室直接扭打起来.据说是因为该产品经理向程序员提出了一个需求,要求用户APP的主题颜色能 ...

  6. SAP UI5 应用开发教程之五十六 - SAP UI5 树控件(tree)的开发试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  7. 本地开发的 SAP UI5 应用,部署到 ABAP 服务器执行出错的问题分析

    我使用 SAP UI5 Tools 的 CLI 工具,运行命令 npm run deploy 将 Visual Studio Code 里开发的 SAP UI5 应用,部署到 ABAP 服务器后,成功 ...

  8. SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?

    刚刚过去的在巴塞罗那举行的2019 SAP TechEd,SAP照例向全球广大的SAP生态圈从业者们传达了一些重要的信息,其中一条为:Building Extensions for the Intel ...

  9. 岗位po是什么意思_敏捷开发团队中PO和SM角色介绍

    通过前面几篇关于敏捷开发总体的相关介绍,相信大家对敏捷开发模式已经有了一个比较清晰的了解,后续会介绍一些比较细分的方面,结合我在敏捷开发实施过程当中的一些体会,来阐述自身对敏捷开发的认识. 敏捷开发中 ...

  10. SAP UI5 应用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...

最新文章

  1. 罗斯蒙特电磁流量计8723说明书_罗斯蒙特8732EM电磁流量计变送器如何接线!
  2. 小甲鱼Python课程18课课后题
  3. leetcode--872. 叶子相似的树
  4. WinhexV13.2汉化版
  5. thinkphp5 判断数据是否存在_ThinkPHP 5.1 中间件中判断要访问的操作是否存在
  6. nuxt asyncData extendRoutes nuxtServerInit
  7. zabbix mysql pgsql_Zabbix 5.0 监控 PostgreSQL 数据库
  8. [语言]Webassembly
  9. iOS常用的第三方类库
  10. ARCGIS 二次开发可以参考的资源(长期更新)
  11. Linux下的目录简介
  12. SeaweedFS上手使用指南
  13. Android 实现基于RTMP视频播放
  14. nonebot2.0.0a16-qq机器人框架安装及搭建教程
  15. 破解版全能地图下载瓦片数据以及操作使用方法
  16. mysql sql语法解析器_Druid SQL 解析器概览
  17. 学习手机软件开发学什么,怎样学?
  18. win7开启uasp协议_Windows To Go安装使用手记
  19. 关于智能运维(AIOps)的学与思
  20. 音乐剧推荐-<<爱在思念的两端>>

热门文章

  1. 麦德龙中国正式引进高品质法国牛肉
  2. 计算机相关装备有哪些,DNF装备搭配计算器_官方网站_17173DNF专区_17173.com中国游戏门户站...
  3. qq三国单刀赴会服务器找不到,单刀赴会,收武器装备“图纸”,70-120等级,130级按套收,......
  4. KDD2020|PinnerSage:Pinterest推荐中的多模式用户嵌入框架
  5. 15首中秋诗词,有2首你肯定熟悉
  6. 使用Win 2003轻松建立森林间信任
  7. (dfs/dp)P2327 [SCOI2005]扫雷
  8. 微信实名认证是成年的,但游戏是未成年的,怎么改
  9. FPGA校招笔试题分析
  10. Sentinel vs Hystrix 对比,你怎么选?