June25

IDoc Tutorial (1)

IDoc => Intermediate Document, 用于SAP系统之间或者SAP与外部系统之间传递数据之用,在最新应用中经常通过XI把外界的data映射成IDoc数据传递给ECC,不过XI的接口和标准R/3中的IDoc应用还不一样(简单些)。

下面简单介绍一下使用IDoc在两个Client中间传递物料主数据。

1. 定义逻辑系统
所谓“逻辑系统”是为了在ALE通讯中的系统client的标记,逻辑系统要和client进行绑定。建立逻辑系统的TCode是BD54,也可以通过TCode:SALE -> 应用程序链接->逻辑系统->定义逻辑系统来访问。下面是创建的两个逻辑系统,因为逻辑系统是跨client的所以在client800上建立的逻辑系统,在别的client上也能看到:

ZS800是IDoc的发送方;ZT810是IDoc的接受方。

2.将逻辑系统分配给Client
TCode:SCC4,也可以通过TCode:SALE -> 应用程序链接->逻辑系统->分配客户机到逻辑系统来访问。
将ZS800分配给Client 800:

重复上面的操作将ZT810分配给Client 810。分配逻辑系统的时候要小心,因为一个Client只能对应一个逻辑系统,修改了Client的逻辑系统,可能会导致其他程序运行不正常。

3.定义RFC调用的目标系统
TCode:SM59,也可以通过TCode:SALE -> 应用程序链接->网络中的系统->定义RFC调用的目标系统来访问。
创建一个“R/3连接”,取名:ZS800

设置RFC登录信息:

测试一下RFC:

同样创建名为ZT810的RFC连接:
 

4.创建分布模型(distribution model)
TCode: BD64,也可以通过TCode:SALE -> 定模和实施业务处理->维护分布模型和分布视图来访问。

为模型视图分配Message Type:点击Toolbar上的

Message Type :MATMAS是系统自带的物料主数据用的structure

5.创建伙伴参数文件(Partner Profile)
点选菜单->环境->生成伙伴参数文件,让系统自动为我们生成“伙伴参数文件”。系统自动生成的前提是我们定义的Logical System的名称和RFC连接的名称一致。

 系统自动生成了一个Port,并且在出站参数中增加了SYNCH——系统同步消息类型。对于Message Type:MATMAS,系统自动分配了一个IDoc Type:MATMAS05, 这个需要改成MATMAS01.

6.修改伙伴参数文件(Partner Profile)
点选菜单->环境->修改伙伴参数文件,打开树状菜单的“伙伴类型LS-逻辑系统”找到ZT810,双击ZT810的消息类型MATMAS,修改IDoc类型为MATMAS01:

7.分配模型
回到BD64, 菜单->编辑->模型观察->分配,选择ZT810,将这个model分配到client 810上:

8.在目标系统上创建伙伴参数文件
登录到client 810,TCode:BD64,这时可以看到mode: 'FROM 800 TO 810'已经被分发过来了,同step 5在810上创建Partner Profile。这里要修改一下系统自动创建的Partner Profile。TCode:WE20,点击“ZS800”,双击消息类型“MATMAS”,可以看到下面的界面:

AFSA是系统自动分配的,但是并不是能够处理MATMAS这样消息类型的process code,因此要改成MATM,双击MATM可以看到对应的处理function:IDOC_INPUT_MATMAS01

9.在client 800上新建一个物料主数据
TCode:MM01, 如下图:

回车,填写描述信息“TEST METERIAL FOR IDOC”,单位“PC(件)”,保存。

10.利用IDoc传输物料信息到client 810
SAP系统自带的TCode:BD10就是用来干这个事情的,不用我们写额外的代码:

F8一下看看结果:

11.查看发出的IDoc
Client: 800, TCode: WE02,将选择条件的“基本类型”设置成“MATMAS01”,可以看到IDoc的状态:成功发送

12. 查看接收到的IDoc
Client: 810, TCode: WE02,IDoc已经接收到810上了而且物料已经登录到系统中

13.查看创建的物料
Client:810, TCode:MM03


--EOF--

本篇文章已有0条评论