总结拓展九:SAP数据迁移(1)
第一节:数据迁移介绍
1、SAP上线前MM模块需要迁移的数据
1.1 静态数据:物料主数据、供应商主数据等;
1.2 业务数据:采购订单(未收货)、发票校验(未校验)、采购信息记录、货源清单等;
1.3 动态数据:库存数据(初始化库存)等;
2、SAP标准批量导入工具
2.1 LSMW——ECC版本——对应事务代码LSMW
2.2 LTMC——S 4版本——对应事务代码LTMC
2.3 BDC——ECC/S 4版本——对应事务代码ZMM*(自开发/二次开发SHDB)
3、LSMW(全称Legacy System Migration Workbench)
LSMW是SAP推荐用来从旧的系统或非SAP系统把大批量或周期性的数据迁移到SAP的主力工具。
优点:① 可以在一个任务中处理大批量数据;
② 灵活易学易用;
缺点:① 只能导入固定类型的主数据(自定义的不可以);
*工作原理:
4、LTMC(全称Legacy Transfer Migration Cockpit)
LTMC是一款前台操作的数据迁移工具,它是SAP S4版本常用的数据迁移方式。
LTMC迁移数据有以下几个优势:
(1)预先集成了许多常用的数据模板,可以直接下载使用;
(2)模板可以自定义调整,通过LTMOM调节字段顺序,必须,隐藏或者新增;
(3)上传的文件的数据在导入之前可以进行数据检查,必输字段缺失,数据值系统进行校验,验证发现错误可以到处错误消息,修正数据。但与LSMW相比,也缺少一定的灵活性,毕竟LSMW可以通过录屏的方式,能够快速实现一些数据的批量修改。
*业务流程:
5、BDC(全称Batch Data Conversion)
BDC是一种通过ABAP程序将资料批量输入系统的方法,他实际的工作原理就是将用户繁冗的操作程序和步骤记录下来,然后依照流程逐步将制定的数据在指定的操作页面及栏位输入并执行,这样避免了手工进行一些重复性工作,大大提高了效率。
定制一个BDC程序的基本流:
1)BDC录制,记录屏幕操作。
2)产生相关的程序及数据格式文件。
3)利用程序将相关单据信息读到内表,并对内表的数据进行调整逻辑处理(数据检查或数据转换)。
4)调用BDC录制程序导入数据。
5)输出消息列表。
第二节 数据迁移工具LSMW实操
1、物料主数据导入
1.1 创建迁移项目
1.1.1 创建项目、子项目、对象名称
使用事务代码LSMW进入数据迁移工作台,点击“新建”,对迁移项目名称、子项目名称、对象名称进行命名;
编辑好描述后,点击“执行”;
1.2 导入进程
刚开始进到这个界面,进程列表并没有序列号,可以点击上面的“Numbering Off”控制,我们可以看到LSMW工作台批量导入有20个进程;
1.2.1 定义对象属性
选择“1 定义对象属性”,点击“执行”;
点击“
”转为编辑状态;
LSMW提供数据导入方式:
- 标准批处理/直接输入:一种模板导入方式,一般业务数据迁移应用较多;
- 视频录制导入传输:一种采用视频录制作为模型的导入方式,一般主数据迁移应用较多;
- 业务对象方法(BAPI):导入接口是一种函数,类似于标准导入;
- IDoc(中间文件):类似于录屏导入;
物料主数据的导入,我们选择方式(2)视频录制导入传输;
标记①选择已录制视屏②进行录屏
点击“
”进行录屏操作环节,点击“创建”,进行录屏命名和事务描述,然后点击确认;
输入对应事务代码“MM01”;
单击“确认”,进入录屏;
选择需要编辑的视图;
注意:选择视图界面部分视图不显示,不可以滚动鼠标滚轮或者下拉右边的下拉条,只可以通过键盘键PgDn下移;
输入工厂和库存地点,点击“确认”;然后进入各视图选择需要录制的字段;最后点击确认创建,完成录屏操作;
①点击 “Default alle”,显示各屏幕选中字段文本描述字;
②屏幕编号;(系统——状态查询)
③视图的编号;
检查每一项视屏录入的数据,无问题,点击“保存”则录屏数据就被保存下来了;
返回原工作台,点击“Recording”,选择需要的录屏“ZMM_01”
点击“保存”,进入第二步;
我们可以看到,目前导入进程变成了14个;
1.2.2 定义源结构
选中“2定义源结构”,点击“执行”按钮;
点击“新建”,创建源结构,进行编号命名;
创建完成,点击“保存”;
1.2.3 定义源字段
点击“对象概览”
显示两种格式“List”和“Table”选择,我们选择“Table”格式;
把录屏记录的字段信息复制到表格;
选中“3定义源字段”,点击“执行”;进来时源结构01(ZSMM_01)是空的,点击,转换为修改状态;
选择“源结构”,点击“
”进行维护;
按照如下格式,将整理出来的数据信息,复制进去;
注意:复制的时候,只能复制屏幕显示的行数,如果实际数据行数超过显示行数注意下滑添加;
复制完成后,点击:保存;返回,可以看到源结构下的中间表被创建完成了;
保存后,返回,开始进行第四步;
1.2.4 维护结构关系
选中“4定义结构关系”,点击转换为编辑状态,直接点击保存即可;
1.2.5 维护字段映射和转化规则
选中“5定义字段映射和转换关系”,点击执行;我么看到录屏字段数据显示,该步骤,就是建立录屏数据和中间表数据的映射匹配;
点击“
”,转化为可编辑状态;选中录屏文件ZMM_01中的字段,点击“创建”,跳出源结构(中间表)数据,对比匹配选中,点击确认,完成映射关系建立;
可以依次按照此操作检查匹配做映射关联;
*批量匹配操作:
进入步骤:
——“Auto-Fieldmapping(匹配)”
点击“确认”,进入匹配页面,开始自动匹配;
逐个字段匹配,无问题就回车,直到完成;
注意:逐个检查有没有没有匹配的字段数据;
点击“保存”,返回准备进行第六步;
1.2.6 维护字段值、转换、自定义事务
(该步骤不操作,直接跳过);
1.2.7 指定导入文件
选择“7指定导入文件”,点击“执行”;
①文件数据②数据来源于PC端③数据来源于SAP R/3系统;
选择“PC端”,单击“修改”;
选中“数据来源”,双击或者点击“创建”进入;
上传文件前必须按照既定的字段类目提前准备好,且以文本(制表分隔符)类型进行保存;
选择文件后,按照以上条件选取,点击“确认”;
文件上传成功,点击“保存”;返回,准备进入第八步;
1.2.8分配导入文件
这一步相当于对导入的文件进行检查,进入点击修改,然后保存即可;
1.2.9读取数据
选中“9读取数据”,点击执行;
点击“执行”读取;
读取完成后,数据开始导入中间表(源结构)
1.2.10显示读取数据
选中“10显示读取数据”,点击“执行”;
重点检查各项数据对应有没有问题,特别是检查有没有差行;
1.2.11转换数据
选中“11转换数据”,点击“执行”;
1.2.12读取被转换的数据
选中“12读取被转换的数据”,点击“执行”;
点击:确认;
检查转换数据;
1.2.13创建批处理对话
选中“13创建批量处理对话”,点击“执行”;
点击“执行”;
会话创建完成;
1.2.14运行批处理对话
选中“14运行批处理对话”,点击“执行”;
选中点击处理;
选择“处理/前台”处理模式,点击处理;
按顺序,检查,系统运行创建物料;
运行完成,完成物流批量导入;
1.3 项目导入/导出
1.3.1项目导出
菜单:附加(Extras)——执行项目
点击“Export Regelwerk”——“Exportieren F8”保存该项目,以TXT文本文件格式保存;
1.3.2项目导入
菜单:附加(Extras)——执行导入
点击“Bearbeifen运行”——“Importieren输入”
导入成功后,该项目就可以被使用了;
2、采购订单数据导入
2.1 项目创建
点击“创建”,创建编辑“项目名称NJDHMM”、“子项目名称MM_1”、“对象名称MM_102”;
创建完成后,点击保存,进入导入进程;
2.2 导入进程
2.2.1定义对象属性
导入方式选择“Standard Batch/Direct Input”,先维护“Object对象”和“Method方法”;
保存,后退;
2.2.2定义源结构(抬头+行项目)
点击创建(
)定义凭证抬头源结构,见下图:
选中凭证抬头源结构,点击创建(
)定义凭证行项目源结构,见下图:
选择:低层级
点击“保存”,并退出;
2.2.3维护源字段
在做源字段维护前,由于不同于录屏方式导入,所以此处源结构的字段需要自行进行维护。
点击“对象概览”;
出现如下图,选择列表List或表格Table;
对于显示结果也可以保存为EXCEL(路径:系统→列表→保存→本地文件)。
抬头和行项目,我们选择以下字段:
抬头字段:
STYPE C 1 抬头键值
BUKRS C 4 公司代码
EKORG C 4 采购组织
EKGRP C 3 采购组
BSART C 4 订单类型(采购)
LIFNR C 10 供应商
BEDAT C 10 采购订单日期
ZTERM C 4 付款条件
WAERS C 5 货币
行项目字段:
STYPE C 1 行项目键值
EBELP C 5 项目
EMATN C 18 物料号
WERKS C 4 工厂
EINDT C 10 交货日期
MENGE C 13 数量
MEINS C 3 单位
NETPR C 11 净价格
PEINH C 5 价格单位
BPRME C 3 订单价格单位
正式操作源字段维护:
选中进程项,点击执行,进入后,点击“修改”;
选中“源结构抬头项”,点击“
”,先进行抬头字段维护,按照既定字段予以编辑;
点击“保存”,返回,行项目字段维护流程一致,最终完成源结构字段维护;
分别双击抬头和行项目的“STYPE”字段,分别为抬头和行项目,添加一个识别值“H”和“L”;
2.2.4维护结构关系
将定义的源结构(采购订单抬头和采购订单行项目)与系统中的表结构进行关联
双击抬头数据MBEPOH,选择HEARD抬头。
双击抬头数据MBEPOI,选择ITEM行项。
保存,并返回;
2.2.5维护字段映射和关系转换
进入步骤:
——“Auto-Fieldmapping(匹配)”;将维护的源字段与系统内凭证表字段进行对应设置;
对应完成后,点击保存;
点击“保存”,退出;
2.2.6维护字段值、转换、自定义事务
此步骤无需操作,直接跳过;
2.2.7文件导入
提前按照字段规范整理好文件(TXT格式)
点击“修改”,选中数据来源,点击创建,进入文件上传界面;
选择“Data for Multiple Source Structures(Seq.File)”对应多个源结构;
分隔符号:Tabulator;
文件标题:Field Order Matches Source Structure Definition;
双击“Converted Data”,跳转如下设置新路径(不设置路径,导入文件后,将无法保存)
创建“新路径ZNJDHME21N_ME21N.LSMW.CONY\ZNJDHME21N_ME21N.LSMW.CONV”;
点击保存,退回;
2.2.8分配导入文件
点击“修改”,分别双击“抬头”和“行项目”,系统会自动分配文件;
点击“保存”,退回;
2.2.9读取数据
2.2.10显示读取数据
点击确认;
2.2.11转换数据
点击“执行”;
2.2.12显示转换数据
显示导入系统字段内的数据,可检查源字段与系统字段的对应关系
双击某一行可查看导入系统中的字段和内容:
没有报错,退出执行下一步。
2.2.13开始直接导入数据
点击“执行”;
错误提醒:供应商20010不存在;需要检查系统数据、做修改,然后重新上传文件;
错误提醒:不能在计量单位 ****** 和订单单位 PC 之间进行转换;
原因排查:整理导入数据,数量单位使用“PC”,属于转换后的单位,不符合要求;将文件中“PC”调整为未转换单位“ST”;即可完成数据转移;
2.3 整理数据事项
1)物料编号:ECC物料编号长度18位,不足18位则在前面补“0”,如:物料编号300214,在TXT文本里就是“000000000000300214”;
2)供应商编号:供应商编号长度10位,不足10位则在前面补“0”,如:供应商编号200010,在TXT文本里就是“0000200010”;
3)数量:保留三位小数,例:50.000;
4)数量单位:单位要使用未转换前的单位,例:“PC”在未转换前单位“ST”,而KG则不用转换;
5)金额:保留两位小数,如:102.00;