首页 / 资讯中心 / 文章详情

SAP ECC与LSMW实操:数据迁移与批量导入全攻略

SAP ECC与LSMW实操:数据迁移与批量导入全攻略 ★ FEATURED ARTICLE
1. 先搞清楚ECC到底指什么如果你搜“ECC”搜到我这篇东西大概率已经发现情况不对了这个词的歧义大到离谱。有人搜ECC是为了配服务器内存条有人搜ECC是为了做HTTPS证书加密还有人搜ECC是因为公司里那套SAP ECC系统要导数据。这三个方向风马牛不相及但缩写全叫ECC。先花两分钟把它们分清免得你看我后面内容以为我跑题了。1.1 三个最容易混淆的ECC第一个是Error Correcting Code纠错码内存。ECC内存多用在服务器、工作站上数据在传输和存储过程中如果发生位翻转它能靠额外的校验位自动纠正单比特错误。如果你在搞机房硬件看到“ECC内存”指的就是这个。和后面内容无关但记住关键词服务器、内存、校验。第二个是Elliptic Curve Cryptography椭圆曲线密码学。这是现代密码学里的重要分支基于椭圆曲线上离散对数问题的难解性用更短的密钥就能达到RSA同等安全等级。所以你在Trustwave这类CA机构的证书链里看到“ECC P384 Certification Authority”指的就是用P-384曲线的椭圆曲线证书。之前有个叫affaan-m/ecc的GitHub仓库也是这类算法实现的开源项目不过那些代码只能用在学习研究上不建议直接搬进生产环境。第三个就是我要重点讲的SAP ECC。全称ERP Central Component是SAP R/3的继承者一个覆盖财务、后勤、人力资源等模块的企业资源计划系统。很多企业用它跑核心业务一做SAP就绕不开“ECC”这个叫法。我后面说的LSMW就是SAP ECC环境里非常实用的数据导入工具。所以你如果是因为“SAP ECC LSMW操作”这个词找到我这篇可以直接跳到第2章开始看前面不耽误你时间了。1.2 这次核心场景SAP ECC 与 LSMW 的关系LSMW全称Legacy System Migration Workbench中文常叫“旧系统迁移工作台”。它从SAP R/3时代就存在一路用到现在。它的本质是一个批导工具不需要写ABAP代码就可以把外部文件Excel、TXT、CSV里的数据批量导入到SAP ECC各个模块的数据库表中。有朋友会问SAP不是有BAPI、BDC、IDoc这些导入方式吗为什么非要学LSMW因为LSMW对业务顾问和IT运维最友好。BAPI要写代码BDC要懂录屏原理IDoc要配接口。LSMW呢鼠标点击配置就能搞定而且可以反复使用同一种结构导入不同批次的数据是SAP运维工具箱里被点单率极高的一件装备。我见过不少做SAP主数据维护的同事一开始都是手工去T-code挨个录入慢不说还容易录错。用LSMW把Excel里的客户、供应商、物料主数据批量导进去之后工作效率直接翻好几倍。如果你在做SAP项目上线、公司合并、系统切换这类事情LSMW基本上是你逃不掉的必学技能。2. 为什么需要LSMW数据迁移的痛点与选型逻辑聊任何工具之前先搞清楚要解决什么问题。LSMW并不是SAP里看起来最“高精尖”的东西但它是数据迁移场景里性价比最高的选项没有之一。2.1 手工录入与批量导入的差距想象一下公司要从旧系统切换到SAP ECC财务部门手里有几千条科目余额物料部门有上万条物料主数据采购部门有几千个供应商。你让一个业务同事对着事务码一条一条录录到天黑也录不完。更麻烦的是旧系统里的数据格式是“脏”的有全角半角混乱、有信息缺失、有重复记录直接录进SAP里就是一堆垃圾数据。LSMW的价值就在这里先把数据在Excel里清洗成符合SAP字段规则的格式然后通过LSMW把Excel和SAP的事务码录屏文件建立映射关系批量执行导入。整个过程可重复、可回溯、可控错。导完之后可以用SAP标准报表查错误不会像手工录入那样出现问题只能靠人肉回忆。用一句大实话概括LSMW不是最快的导入方式但它是最稳、最容易上手、最适合非开发人员掌握的导入方式。一个资深的业务顾问半天就能学会基础操作一周就能成为熟手。2.2 LSMW能做什么常见业务场景LSMW支持的数据对象非常多核心场景集中在主数据导入上客户、供应商主数据批量创建/修改物料主数据基础数据、采购视图、会计视图、销售视图的创建和扩展会计科目表的创建与维护期初库存、未清采购订单、未清销售订单的导入固定资产主数据的初始化工厂、库位、采购信息记录等后勤基础数据的批量维护这些场景共同的特点是字段多、记录量大、重复性高。如果是几十条数据确实手工也能忍但到了成千上万条就算你想手工录SAP也不会让你舒服——光是一堆必填字段、字段校验、视图组合规则就够你折腾的。LSMW还有个好处是能保存“项目/记录结构/源结构/映射规则”这套配置。也就是说这次导入完了下次再来一批类似数据直接复用之前的项目模板就行。用惯了之后你会觉得它跟“Excel模板”的体验有点像复制一套结构换一批数据源文件就能重新跑。3. LSMW实战从录制到执行全流程拆解下面这部分是我今天最想分享的干货。我以“批量导入物料主数据”为例子完整走一遍LSMW的实际操作流程。无论你用的是SAP ECC 6.0还是S/4HANA系统里仍然保留了LSMW入口操作逻辑都是通用的。3.1 前置准备源数据清洗与模板设计LSMW本身不负责清洗数据它只负责搬运。所以Excel预处理做得好不好直接决定你的导入成功率。我的习惯是先下载一个SAP标准模板。怎么拿进LSMW后创建一个项目选择“Batch Input”录屏方式之后在“File”这一步可以生成一个标准格式的源文件模板。拿到模板后按模板的列标题来整理你手里的Excel列名、顺序、字段长度尽量对齐模板。几件必须注意的小事所有字段都尽可能保持文本格式尤其是物料编码、会计科目这类容易被Excel自动转换成长数字或科学计数法的列。日期字段统一成SAP能识别的格式常见的是YYYYMMDD别带横杠。“数量”“金额”这类字段不要带千分位分隔符SAP只认纯数字。表头行删掉LSMW读取源文件时是从你指定的第一行数据开始的。源文件编码建议使用ANSI或者UTF-8带BOM不建议否则中文会出现乱码。我做项目时见过不止一个同事Excel里看着好好的日期导到SAP里变成“18991231”就是因为Excel把日期序列号暴露给了LSMW。所以清洗阶段宁可多花两小时也不要省这一步。3.2 四步走录屏、定义来源字段、映射规则、创建会话执行LSMW配置一共15个步骤不同版本略有差异但真正干活的可以压缩成四步。第一步是“录制事务码录屏”。在LSMW里先创建一个项目Project再创建子项目SubProject和对象Object对象指的就是你要导入的主数据类型比如“物料主数据”。创建好后进入“记录”步骤输入事务码MM01物料主数据创建点开始录制。系统会打开MM01的事务界面这时候你要像人工录入一样把物料类型、行业领域、工厂、视图等基础信息填进去然后一路点下去录完整个创建物料的屏幕流程。录制好的录屏会保存在LSMW里作为后续导入的“模板行驶路线”。录屏这一步的核心原则录的屏幕路径一定要和你Excel里面的字段一一对应。你录入物料描述、基本计量单位、物料组、采购组这些内容将来Excel里的数据就会填到这些位置。如果你录屏时漏填了一个必填字段导入时每一条数据都会报错。第二步是“定义源结构”和“定义源字段”。源结构就是你的Excel表结构可以理解为一张表的名称源字段就是Excel里的每个列。你在这里手动创建几个源字段比如MATNR物料号、MAKTX物料描述、MEINS基本单位等并指定它们对应源文件里的哪一列。第三步是“字段映射”和“转换规则”。这是LSMW的核心。你需要在屏幕字段和源字段之间建立对应关系比如把源字段MATNR映射到录屏里的“Material Number”输入项。如果某个字段在Excel里没有值但SAP里必须填可以在转换规则里设置固定值比如“行业领域”固定为“M”“事务类型”固定为“创建”等。第四步是“创建批输入会话”和“运行导入”。映射完成后LSMW会读取你的源文件生成一个批输入会话batch input session。你可以在事务码SM35里查看这个会话前台运行每录一条都弹屏或后台运行不弹屏直接执行。导入完成后去SM35看会话日志有问题的数据都在错误列表里点进错误消息就能看到具体原因。3.3 关键配置疑难点文件格式、抬头记录、前导零很多新手在LSMW里折腾半天导不进去多半是栽在这几个坑上。关于文件格式LSMW读取本地文件时默认按文件扩展名区分格式。你如果源文件是Excel .xlsx记得在“文件”步骤里选择相应的格式如果你用TXT或CSV分隔符是逗号还是分号、是否有文本限定符都需要精确配置否则数据会串列。关于抬头记录某些源文件第一行是列标题LSMW提供了一个选项可以跳过第一行记录数。这个“Header Lines”参数我在不少项目里看到都没人动它结果第一行表头也被当成数据导进去了然后报一堆“物料号无效”之类的错误。关于前导零SAP的物料号、科目号是带前导零的但Excel里往往把前导零当成数字的一部分处理导致“000000000100000123”变成“100000123”之类的数字。碰到这种情况要么在Excel里强制把物料号列设为文本并在LSMW的转换规则里用左补零函数要么在源文件里预先处理好。千万不要偷懒不然导入后你会发现SAP里多了一堆长度不对、不带前导零的垃圾主数据。还有一点值得单独拿出来说“录屏”的屏幕字段是会变化的。不同版本SAP的MM01界面布局可能有差异而且同一事务码在不同工厂、不同物料类型下显示的字段也可能不同。所以录屏一定要在目标系统、目标场景下录制最好拿一条典型的数据先跑通一遍再批量执行。4. 常见报错与排查经验实录LSMW导入报错只要不是系统配置问题绝大多数错误消息都能直接告诉你原因。但有些错误很反直觉我今天挑几个代表性的讲一讲。4.1 典型的报错与解决办法报错消息常见原因排查思路“物料 XXXX 不存在”源文件物料号格式不对或前导零缺失去Excel里检查物料号列格式统一补前导零“在表T001中未定义公司代码”公司代码配置有问题或者录屏界面里公司代码没填准确检查SPRO后台配置确认公司代码存在并且已分配工厂“字段LGOBE必填”录屏时没有填存储地点或Excel漏了对应字段在转换规则里设置固定值或回到录屏补录存储地点“会话因出现错误被终止”通常是必填字段缺失打开SM35会话明细看第一条错误消息从第一条改起后面的错误可能是连锁反应“日期格式不正确”Excel日期列没转成纯文本或格式不是SAP标准格式源文件里用YYYYMMDD的文本格式填日期不要用Excel日期对象“数据被截断”字段长度超出SAP定义长度在Excel里做数据长度校验超过SAP字段长度就要截断或者修正4.2 排查思路的独门心得第一每次导入前先导一个小样本比如10条数据跑一遍前台执行一条一条看屏幕。别一上来就上万条数据后台跑一旦出错排查成本非常高。第二SM35会话日志里点开一条报错数据SAP会显示它停在了哪块屏幕上、哪个字段报错。这时候你基本不用猜直接看字段名和错误消息按图索骥。第三如果遇到一堆数据同时报同一个错误十有八九是源文件这一列整体没有映射对或者转换规则没设置好。先停下手头的工作打开映射关系检查配置别一条条去改数据。第四LSMW本身的“批输入会话”机制和“直接导入”是两套逻辑。批输入会话的好处是可以数据入库之前先模拟检查错误数据不会进入数据库直接导入就是让系统直接写库表错误率和风险都更高。只要是正式生产环境我强烈建议用“创建会话”的方式不要用“直接导入”。另外提一个很多资料都不写的细节LSMW项目做完以后最好给每个对象写一个说明记录源文件路径、模板版本、导入日期、导入结果。我见过太多人项目做完了三个月后再要导另一批数据发现自己都看不懂当初配的源字段是什么。写注释不是给系统看的是给未来的自己减负。5. 从LSMW延伸到ECC周边证书、代码库与选型补充聊完SAP ECC和LSMW再把开头那两个搞混的“ECC”也收个尾。既然标题是这个我不希望你搜到这篇后发现只有SAP内容而另外两个关键词完全没讲。5.1 Trustwave 与 ECC P384 证书Trustwave是一家老牌的数字证书认证机构在证书链领域它有一个被称为“Trustwave Global ECC P384 Certification Authority”的根证书。这里的ECC指的就是椭圆曲线密码学。为什么这家机构要专门建一个P384曲线的根证书因为P-384曲线提供的安全强度比RSA 2048更高密钥长度却短很多非常适合对性能和安全性都有要求的企业应用比如软件签章、TLS证书、文档签名等。在企业内网部署HTTPS或者做代码签名时如果你的Windows信任库里恰好已经包含了Trustwave这个根证书那你签出来的文档和程序在大多数电脑上都能自动通过校验。做ECC证书选型时可以关注曲线类型、可信根库存量、证书有效期计划和吊销机制别只看品牌。这里我也额外提醒一句既然大家在用证书也顺便把私钥保护好。密钥长度再长私钥泄露等于把大门钥匙交给了陌生人。5.2 affaan-m/ecc 这类开源项目带来的启发GitHub上有一个叫affaan-m/ecc的开源项目内容是用高级语言实现椭圆曲线加解密算法。这类项目对想学密码学原理的人来说是很好的教材可以让人直观看到点运算、倍点、标量乘法这些概念是怎么落地的。但如果你是做生产系统开发的我的建议永远是优先用成熟、经过审计的密码学库比如OpenSSL、BouncyCastle这种业界公认的库不要拿开源学习项目直接上生产。自己做密码学实现是一件很危险的事情稍有常数时间泄漏、随机数失败等问题就有安全风险。这点我经验太深了之前见过有人自己写了个“仿ECC加密”结果被安全测试直接打穿。如果做安全相关的数据对接可以从这类项目中了解原理但真正的密钥交换、签名验签请交给专业库。这不是不信任开源社区而是对生产安全负责。写在最后的使用体会我做SAP项目这些年用过试过无数导入方案最后发现LSMW的普及率高不是没有道理。它操作界面不漂亮步骤又多但胜在稳定、可控、不需要开发资源。任何人只要肯花时间把源数据清洗干净把录屏和映射配置走通就能把一批又一批的主数据安全、准确地送进系统里。我在实际项目中最大的体会就是LSMW本身并不难难的是永远有人想跳过“清洗源数据”这一步。数据源弄干净LSMW真的会成为你舍不得交给别人的效率工具。
阅读完成 · 觉得有帮助?
咨询建站