sap idoc生成文件传到别的服务器,IDOC 实例详解
本帖最后由 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 实例详解相关推荐
- php微信小程序物流进度推送,微信小程序 消息推送php服务器验证实例详解
微信小程序 消息推送php服务器验证实例详解 设置页面("设置">>"开发设置"): 1.设置服务器域名 注意http和https协议的不同. 2. ...
- python 经典脚本文件_Python3.5文件读与写操作经典实例详解
本文实例讲述了Python3.5文件读与写操作.分享给大家供大家参考,具体如下: 1.文件操作的基本流程: (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 ...
- php判断参数_php检查函数必传参数是否存在的实例详解
php检查函数必传参数是否存在的实例详解 在php实际编程中,接口经常会接收到前端传来的参数,其中有些参数不是必传的,有些参数是必传的,如何"检查函数必传参数是否存在"呢?为了解决 ...
- 如何把u盘的文件传到服务器,把u盘文件传到远程服务器
把u盘文件传到远程服务器 内容精选 换一换 本节为您介绍如何在本机使用远程登录工具MSTSC登录Windows弹性云服务器.弹性云服务器状态为"运行中".如果弹性云服务器采用密钥方 ...
- 怎么把本地的文件传给服务器,怎么把本地文件传给云服务器
怎么把本地文件传给云服务器 内容精选 换一换 本文介绍如何在 Linux 系统的本地机器上使用 FTP 服务,将文件从本地上传到云服务器中.已在待上传文件的云服务器中搭建 FTP 服务.如果您的云服务 ...
- 怎样把文件传到华为云服务器,如何把文件传到云服务器上
如何把文件传到云服务器上 内容精选 换一换 MongoDB官网提供了针对不同操作系统的客户端安装包,其二进制安装包下载页面链接为:https://www.mongodb.com/download-ce ...
- java文件流 m.jb51.net_FasfDFS整合Java实现文件上传下载功能实例详解
今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 org.c ...
- php 显示要上传的图片格式,php判断文件上传图片格式的实例详解
php判断文件上传图片格式的实例详解 判断文件图片类型, $type = $_FILES['image']['tmp_name'];//文件名 //$type = $this->getImage ...
- python生成表格文件_python 读取excel文件生成sql文件实例详解
python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以 ...
最新文章
- 逃计算机课检讨书600字,检讨书600字3篇
- 十九、“文捷笔妙活如水,气定神闲稳若山。”(2021.6.7)
- nuget pack
- sklearn自学指南(part44)--生成数据集
- python程序员怎么面试_Python程序员面试,这些问题你必须提前准备!
- 「M1兼容」最新ps2022版photoshop 2022 Mac中文版下载安装教程分享
- python纳入小学课本了吗_Python语言为什么被推荐纳入高考和小学教材
- laravel contains 的用法
- spring扩展点之二:spring中关于bean初始化、销毁等使用汇总,ApplicationContextAware将ApplicationContext注入...
- vector, list, deque的使用区别
- RFID 芯片是什么
- 小白该如何学习Linux操作系统(1)
- (四)Linux 安装 jdk
- Tomcat和JBoss都是服务器,有什么区别呢
- WinAPI: CreatePen - 建立画笔
- 安装libvirt管理套件(C/S架构模式,用户管理kvm虚拟机)
- Pycharm安装中文语言插件
- 微信小程序生成二维码
- [NOIP2016 普及组 T1] 买铅笔
- PIN/PAD Design in SoC - 1 (待续)
热门文章
- 怎样对流媒体进行压力测试_对node工程进行压力测试与性能分析「干货」
- 大华的支持rtmp推流吗_RTSP安防摄像机(海康大华宇视等)如何推送到RTMP流媒体服务器进行直播...
- nexbox本地网络调试工具下载_「下载」 Windows 10 WinDBG 分析转储日志和蓝屏日志排查错误原因...
- springboot pom文件添加mysql组件_SpringBoot整合mybatis-plus+druid组件,实现增删改查
- python字典中文键值对重复_在YAML中将重复的键值对追加到嵌套字典中
- nextcloud icon_聊一聊爱车吉利ICON带给我的用车感受
- android git 版本管理,Android版本管理(git 和 repo)
- 显示器分辨率一直跳_2020如何选择适合自己的显示器?小白选购电脑显示器必看!...
- 2021年高考成绩查询衡阳市八中,优秀!衡阳2020年各大高中成绩出炉!
- poi 设置word表格颜色_办公软件小课堂 Word表格的设置