本帖最后由 kanter 于 2015-5-21 15:53 编辑

IDOC 是用于在不同的 SAP 系统之间或 SAP 系统与外部系统之间传输信息的一种文档表示

形式。

本实例讲述从 SAP 客户端: SAPDEV 200 传送自定义表中的内容至 SAPPROD 700。

其中 SAPPROD 700 的在 200 中逻辑系统名称为: DEVCLNT700

SAPDEV 200 的在 200 中逻辑系统名称为: DEVCLNT200

传送的表结构如下:此表在 DEV200 和 PRD700 中均存在。

本实例中在讲述 DEV200 和 PRD700 之间的通讯设置中,如有不明白之处,还请参考本人的

另一个文档“ ALE 配置及操作详解(阵全)”。

本实例讲述的是不通过消息控制的,处于不同物理地址的 SAP 系统间的数据传输。

一、使用 TCODE: WE31 创建一个段,该段须在 DEV200 和 PRD700 同时存在。

该段中只包含一个字段。

二、使用 TCODE: WE30 创建一个 IDOC 基本类型,该类型须在 DEV200 和 PRD700 同时

存在。

该段中只包含一个字段。

三、使用 TCODE: WE81 创建一个逻辑消息类型。只需在 DEV200 中创建。

四、 TCODE: WE82 在 DEV200 中指定逻辑消息类型和 IDOC 基本类型的对应关系。

五、使用 TCODE: BD64 在 DEV200 中添加消息类型 ZMSGDEPARTMENT,并产生合作伙

伴文件及分配,详细操作请见“ ALE 配置及操作详解(阵全)”。如下图:

BD64 界面。

在 DEV200 中产生的对应于 PRD700 的 RFC 端口。通过 TCODE: WE21 查看。

在 DEV200 中产生的对应于 PRD700 的合作伙伴参数,消息类型为

ZMSGDEPARTMENT,可使用 TCODE: WE20 查看。

六、 TCODE: SE38 在 DEV200 中写该 IDOC 的出站处理程序。代码如下:

*&---------------------------------------------------------------------*

*& Report ZCREATEMATARIALIDOC

*&

*&---------------------------------------------------------------------*

REPORT ZCREATEDEPARTMENTIDOC.

DATA: G_IDOC_CTL LIKE EDIDC,

ZSEGDEPARTMENT LIKE ZSEGDEPARTMENT.

DATA: GI_RET_CTL LIKE EDIDC OCCURS 0,

GI_IDOC_DATA LIKE EDIDD OCCURS 0 WITH HEADERLINE.

PERFORM BUILD_IDOC_CTL.

PERFORM BUILD_IDOC_SEG.

PERFORM CREATE_IDOC.

*&---------------------------------------------------------------------*

*& Form CREATE_IDOC

*&---------------------------------------------------------------------*

* text

FORM CREATE_IDOC.

CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'

EXPORTING

MASTER_IDOC_CONTROL = G_IDOC_CTL

TABLES

COMMUNICATION_IDOC_CONTROL = GI_RET_CTL

MASTER_IDOC_DATA = GI_IDOC_DATA

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.

ENDIF.

ENDFORM. " CREATE_IDOC

MSN: jsfeiyu@163.com 阵全

*&---------------------------------------------------------------------*

*& Form BUILD_IDOC_CTL

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

*

*----------------------------------------------------------------------*

FORM BUILD_IDOC_CTL.

* TYPE

G_IDOC_CTL-IDOCTP = 'ZTYPDEPARTMENT'. "IDOC TYPE

G_IDOC_CTL-MESTYP = 'ZMSGDEPARTMENT'. "MESSAGE TYPE

* RECEIVER

G_IDOC_CTL-RCVPRT = 'LS'. "PARTNER TYPE

G_IDOC_CTL-RCVPRN = 'DEVCLNT700'. "PARTNER NO

G_IDOC_CTL-RCVPOR = 'A000000017'. "PORT

* SENDER

G_IDOC_CTL-SNDPRT = 'LS'. "PARTNER TYPE

G_IDOC_CTL-SNDPRN = 'DEVCLNT200'. "PARTNER NO

* G_IDOC_CTL-SNDPOR = 'A000000017'. "PORT

ENDFORM. " BUILD_IDOC_CTL

*&---------------------------------------------------------------------*

*& Form BUILD_IDOC_SEG

*&---------------------------------------------------------------------*

FORM BUILD_IDOC_SEG.

* HEAD DATA

GI_IDOC_DATA-SEGNAM = 'ZSEGDEPARTMENT'. "SEGMENT NAME

GI_IDOC_DATA-SEGNUM = 1. "SEGMENT NO

ZSEGDEPARTMENT-DEPT_NAME = '资讯部'. "部门名称

MOVE ZSEGDEPARTMENT TO GI_IDOC_DATA-SDATA.

APPEND GI_IDOC_DATA.

ENDFORM. " BUILD_IDOC_SEG

七、PRD700 中,使用 BD64 查看在本文档中第五步产生的分配模型。

BD64 所见图

WE21 所见图

八、 PRD700 中使用 TCODE: SE37 创建一个函数,代码如下:可通过复制系统标准的

入站处理函数代码,再更改!

FUNCTION ZIDOC_INPUT_DEPARTMENT.

*"----------------------------------------------------------------------

*"*"Local interface:

*" IMPORTING

MSN: jsfeiyu@163.com 阵全

*" VALUE(INPUT_METHOD) LIKE BDWFAP_PAR-INPUTMETHD

*" VALUE(MASS_PROCESSING) LIKE BDWFAP_PAR-MASS_PROC

*" VALUE(NO_APPLICATION_LOG) LIKE SY-DATAR OPTIONAL

*" VALUE(MASSSAVEINFOS) LIKE MASSSAVINF STRUCTURE MASSSAVINF

*" OPTIONAL

*" 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

*"----------------------------------------------------------------------

* SET RETURN_VARIABLES VALUE

READ TABLE IDOC_CONTRL INDEX 1.

RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.

RETURN_VARIABLES-WF_PARAM = 'Processed_IDOCs'.

APPEND RETURN_VARIABLES.

* SET IDOC_STATUS VALUE.

CLEAR IDOC_STATUS.

IDOC_STATUS-STATUS = '53'.

IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.

IDOC_STATUS-REPID = SY-REPID.

APPEND IDOC_STATUS.

****以下代码为测试,可通过IDOC_DATA取得

DATA:ZD TYPE ZDEPARTMENT.

ZD-DEPT_NAME = 'ABC'.

INSERT INTO ZDEPARTMENT VALUES ZD.

ENDFUNCTION.

九、在 PRD700 中使用 TCODE:WE42 创建该 IDOC 的入站处理代码

可复制其它标准的。

十、在 PRD700 中,TCODE:WE20 创建 DEV200 的参数合作伙伴。

十一、在 DEV200 中执行相关出站处理程序,第六步所写的。并用 WE02 查看出站 IDOC

状态。

十二、在 PRD700 使用 WE02 查看进站 IDOC 状态。

十三、在 PRD700 是,查看表 ZDEPARTMENT,部门“ ABC”已加入。

[size=14.666666984558105px]

sap idoc生成文件传到别的服务器,IDOC 实例详解相关推荐

  1. php微信小程序物流进度推送,微信小程序 消息推送php服务器验证实例详解

    微信小程序 消息推送php服务器验证实例详解 设置页面("设置">>"开发设置"): 1.设置服务器域名 注意http和https协议的不同. 2. ...

  2. python 经典脚本文件_Python3.5文件读与写操作经典实例详解

    本文实例讲述了Python3.5文件读与写操作.分享给大家供大家参考,具体如下: 1.文件操作的基本流程: (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 ...

  3. php判断参数_php检查函数必传参数是否存在的实例详解

    php检查函数必传参数是否存在的实例详解 在php实际编程中,接口经常会接收到前端传来的参数,其中有些参数不是必传的,有些参数是必传的,如何"检查函数必传参数是否存在"呢?为了解决 ...

  4. 如何把u盘的文件传到服务器,把u盘文件传到远程服务器

    把u盘文件传到远程服务器 内容精选 换一换 本节为您介绍如何在本机使用远程登录工具MSTSC登录Windows弹性云服务器.弹性云服务器状态为"运行中".如果弹性云服务器采用密钥方 ...

  5. 怎么把本地的文件传给服务器,怎么把本地文件传给云服务器

    怎么把本地文件传给云服务器 内容精选 换一换 本文介绍如何在 Linux 系统的本地机器上使用 FTP 服务,将文件从本地上传到云服务器中.已在待上传文件的云服务器中搭建 FTP 服务.如果您的云服务 ...

  6. 怎样把文件传到华为云服务器,如何把文件传到云服务器上

    如何把文件传到云服务器上 内容精选 换一换 MongoDB官网提供了针对不同操作系统的客户端安装包,其二进制安装包下载页面链接为:https://www.mongodb.com/download-ce ...

  7. java文件流 m.jb51.net_FasfDFS整合Java实现文件上传下载功能实例详解

    今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 org.c ...

  8. php 显示要上传的图片格式,php判断文件上传图片格式的实例详解

    php判断文件上传图片格式的实例详解 判断文件图片类型, $type = $_FILES['image']['tmp_name'];//文件名 //$type = $this->getImage ...

  9. python生成表格文件_python 读取excel文件生成sql文件实例详解

    python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以 ...

最新文章

  1. 逃计算机课检讨书600字,检讨书600字3篇
  2. 十九、“文捷笔妙活如水,气定神闲稳若山。”(2021.6.7)
  3. nuget pack
  4. sklearn自学指南(part44)--生成数据集
  5. python程序员怎么面试_Python程序员面试,这些问题你必须提前准备!
  6. 「M1兼容」最新ps2022版photoshop 2022 Mac中文版下载安装教程分享
  7. python纳入小学课本了吗_Python语言为什么被推荐纳入高考和小学教材
  8. laravel contains 的用法
  9. spring扩展点之二:spring中关于bean初始化、销毁等使用汇总,ApplicationContextAware将ApplicationContext注入...
  10. vector, list, deque的使用区别
  11. RFID 芯片是什么
  12. 小白该如何学习Linux操作系统(1)
  13. (四)Linux 安装 jdk
  14. Tomcat和JBoss都是服务器,有什么区别呢
  15. WinAPI: CreatePen - 建立画笔
  16. 安装libvirt管理套件(C/S架构模式,用户管理kvm虚拟机)
  17. Pycharm安装中文语言插件
  18. 微信小程序生成二维码
  19. [NOIP2016 普及组 T1] 买铅笔
  20. PIN/PAD Design in SoC - 1 (待续)

热门文章

  1. 怎样对流媒体进行压力测试_对node工程进行压力测试与性能分析「干货」
  2. 大华的支持rtmp推流吗_RTSP安防摄像机(海康大华宇视等)如何推送到RTMP流媒体服务器进行直播...
  3. nexbox本地网络调试工具下载_「下载」 Windows 10 WinDBG 分析转储日志和蓝屏日志排查错误原因...
  4. springboot pom文件添加mysql组件_SpringBoot整合mybatis-plus+druid组件,实现增删改查
  5. python字典中文键值对重复_在YAML中将重复的键值对追加到嵌套字典中
  6. nextcloud icon_聊一聊爱车吉利ICON带给我的用车感受
  7. android git 版本管理,Android版本管理(git 和 repo)
  8. 显示器分辨率一直跳_2020如何选择适合自己的显示器?小白选购电脑显示器必看!...
  9. 2021年高考成绩查询衡阳市八中,优秀!衡阳2020年各大高中成绩出炉!
  10. poi 设置word表格颜色_办公软件小课堂 Word表格的设置