SAP LSMW批导物料主数据十三步实战与避坑 简介面向不具备 ABAP 开发能力的 SAP 业务顾问与实施人员《LSMW 批导物料主数据教程》聚焦系统上线前物料主数据的批量创建问题讲解如何借助 LSMWLegacy System Migration Workbench自行搭建批导程序替代逐条手工录入或等待开发人员写程序的被动做法。内容先对比 Standard Batch/Direct Input、Batch Input Recording、BAPI 与 IDoc 四种批导方式的适用场景与优劣再以 Standard Batch/Direct Input 为主线把创建项目、子项目与对象定义数据结构整理 Excel 模板字段映射与默认值逻辑文件路径数据读取与转换执行导入及结果核对等十余个步骤逐一展开并提示物料类型视图差异、税码与国家等默认值设置、仅跳过单层结构相关步骤等实操细节。压缩包内为 1 个 docx 文档约 920KB保留逐屏操作截图与字段配置说明便于对照界面练习。该资源已有 3476 人学习适合希望独立完成物料主数据批导的初、中级顾问作为上手参考与排错查阅。1. LSMW 批导物料主数据为什么业务顾问要自己动手上线前物料主数据堆在 Excel 里等 ABAP 排期往往比等测试环境还慢。我第一次认真拆 sap lsmw 批导 物料 这套流程是因为手工建一条物料要跳十几个屏幕物料编码、描述、分类、价格还散在多个表里。LSMW 不是万能钥匙但它把“外部数据源→源结构→字段映射→批处理”这条链路摆在你面前业务顾问也能自己做出可复现的批导程序。这篇笔记按 Standard Batch/Direct Input 讲清楚四种方式怎么选、十三步哪些能跳、模板和字段怎么对、失败时看哪里适合要独立扛物料主数据导入的人。2. 四种导入方式怎么选Standard Batch/Direct Input 的边界与代价2.1 四种方式放在一张表里速度、维护成本、适用边界LSMW 全称是 Legacy System Migration Workbench本质是一个数据迁移工作台。它不替你写业务逻辑只负责把外部文件读进来、按规则转换、再交给 SAP 的标准批输入程序执行。物料主数据导入常见四种方式先把边界摆清楚后面十三步才不会白做。方式原理速度维护成本适用场景Standard Batch/Direct Input外部数据读入源结构映射到目标结构生成批输入会话由标准程序执行较快适合批量中字段和模板要维护物料主数据、客户主数据等标准对象Batch Input Recording录屏模拟用户操作把屏幕字段录成 BDCDATA慢逐屏模拟高物料类型视图变化要重录少量、非标准屏幕、临时导入Business Object Method (BAPI)调用业务对象方法走 BAPI 接口快高需要开发或接口知识有复杂业务校验、系统间集成IDoc (Intermediate Document)用标准中间文档格式传输快高要配伙伴、消息类型系统与系统之间批量集成Standard Batch/Direct Input 的优势是“标准”二字它走的是 SAP 已经写好的批输入程序业务顾问只要把字段映射对不需要碰 ABAP。Batch Input Recording 看起来最直观录一遍屏幕就能跑但它有一个致命缺点不同物料类型定义的视图不一样基本视图、工厂视图、采购视图、销售视图、会计视图只要有增减录屏就得按物料类型分别重录。项目上物料类型一多录屏文件会变成维护负担速度也慢。BAPI 和 IDoc 更适合有开发资源、有系统间接口的场景如果只是上线前把 Excel 里的物料主数据灌进去优先标准批导。提示选型时不要只看“能不能导进去”还要看“下次物料类型视图变了改哪个文件”。标准批导改模板和映射录屏要重录这是后期维护成本的差别。2.2 物料主数据为什么优先标准批导视图、组织级别与字段稳定性物料主数据不是一张表而是一组视图。基本视图放物料号、描述、物料类型、基本计量单位工厂视图放工厂、采购组、MRP 相关字段采购视图放采购组织、税码、价格销售视图放销售组织、分销渠道会计视图放评估类、价格控制。标准批导可以按目标结构一次性映射多组字段适合“字段相对稳定、模板固定、批量重复”的上线场景。真正要小心的是组织级别字段。工厂、采购组织、销售组织、公司代码这些字段不是每一行都相同模板里必须按行给值不能图省事在 LSMW 第五步写死默认值。默认值只适合国家、语言、税码这类全表一致的字段如果不同工厂税率不同默认值写死就是给自己埋后悔药。常见做法是模板里保留组织级别列第五步只给“全表恒定”的字段设默认值映射完逐列检查来源。前置条件检查项说明物料编码规则外部给号还是内部给号外部给号要在模板里给物料号内部给号要留空并确认编号范围物料类型每种类型的视图是否一致视图差异大时按类型拆对象或拆模板组织级别工厂、采购组织、销售组织是否齐全缺组织字段会导致只建基本视图字段检查表物料组、税码、计量单位是否存在值不在检查表里转换阶段会报错文件格式TXT 分隔符、起始行、编码读数据错位多半出在这里2.3 开工前的十分钟建项目、子项目、对象与命名约定进入事务代码 LSMW主界面有 Project、Subproject、Object 三个输入框。这三个值由用户自定义不是系统预置。常见做法是按“上线批次/模块→数据对象→视图组合”三层命名项目写模块和批次子项目写物料主数据对象写基本视图或工厂视图组合。命名避免特殊字符和空格描述写清楚范围后面生成会话、查日志都靠这个名字定位。字段示例建议ProjectZMM_LOAD模块批次短且可读SubprojectMAT数据对象物料主数据ObjectBASIC视图或物料类型组合描述物料主数据基本视图导入写清范围不写人名和项目名操作步骤很短输入三层值点击新建输入描述回车返回主界面再双击进入第一步。这里有一个小坑对象名建好后不要随意改。LSMW 的会话、日志、文件路径都挂在对象下改名后旧会话不好找。命名时就把“这次导哪些视图”想清楚宁可多建一个对象也不要把基本视图和工厂视图硬塞进同一个对象里反复改映射。3. 十三步拆成可复现流程从项目对象到数据源结构3.1 第一步到第二步对象属性与源结构先把字段清单捞出来第一步是 Maintain Object Attributes。双击进入后选择 Standard Batch/Direct Input按界面红框填写并保存返回主界面。这一步决定后面走标准批输入不是录屏也不是 BAPI。保存后回到主界面第二步双击 Maintain Source Structures点击新建结构输入结构名和描述回车保存。第二步里有一个很实用的按钮Object Overview。点进去后点击 List把目标结构字段清单导成 Excel。这份清单是后面整理模板的底稿不要凭记忆写字段。物料主数据字段多凭记忆一定会漏组织级别字段。把 Excel 按“视图→字段技术名→字段描述→是否必输→是否组织级别”整理模板只保留这次要导的列但检查时按清单逐项过。整理列用途注意视图基本/工厂/采购/销售/会计不同视图分开看避免漏字段字段技术名源字段命名依据与 TXT 第一行保持一致字段描述给业务确认不要只写英文技术名是否必输决定模板必填列必输为空转换阶段会报错是否组织级别决定是否逐行给值不能写死默认值3.2 第三步到第四步源字段与结构关系字段长度别抠太紧第三步 Maintain Source Fields 定义源结构里的字段。源字段要和 TXT 列一一对应顺序也尽量一致。字段类型按数据特性选物料号、物料描述、物料组用文本日期用字符型统一 YYYYMMDD数量、价格用数字型但模板里不要带千分位和货币符号。源字段长度不够会截断物料描述尤其容易翻车长度按目标字段上限留余量。第四步 Maintain Structure Relations 建源结构和目标结构的关系。单层结构只建一条关系保存即可。很多“保存报错、结构关系未维护”的问题根源是第四步没做或做漏了。结构关系是后面字段映射的前提第三步定义字段第四步告诉系统这些字段往哪个目标结构走顺序不要颠倒。注意源字段顺序一旦确定TXT 列顺序就不要随意调。后面读数据错位十有八九是模板列顺序和源字段顺序不一致。3.3 第五步字段映射与默认值别把默认值当业务字段第五步 Maintain Field Mapping and Conversion Rules 是核心。进入后先点自动匹配字段系统会按字段名和描述做匹配匹配不上的要手工指定。自动匹配后逐列检查尤其是物料号、物料类型、基本计量单位、工厂、采购组、税码这几类字段。物料号如果外部给号源字段必须映射如果内部给号源字段留空但编号范围要提前确认。默认值在这里设。国家、语言、税码这类全表一致的字段可以设固定值工厂、采购组织、销售组织不能写死。默认值写死以后模板里不同组织的行会全部变成同一个值执行完看起来成功实际数据全错。常见做法是默认值只设“全表恒定”的三五列组织级别字段全部来自模板列。设完点回车回到映射界面保存并返回主界面。字段来源默认值说明物料号模板列不设外部给号必须逐行给物料描述模板列不设长度留余量物料类型模板列不设不同行可不同基本计量单位模板列不设值必须在检查表工厂模板列不设组织级别不能写死采购组模板列不设工厂视图相关国家固定值按业务定全表一致才设语言固定值按业务定描述语言要对应3.4 第七步到第八步逻辑路径、逻辑文件名与单层结构跳过第七步 Specify Files 定义逻辑路径和逻辑文件名。逻辑路径是系统里配置的路径别名逻辑文件名是这次读取的文件名。物理文件放在逻辑路径指向的目录下文件名和逻辑文件名一致。路径不要含空格和中文目录权限要确认。业务顾问常见做法是先在应用服务器目录放一个小样本文件读通后再换全量文件。第八步 Assign Files 对单层结构可以跳过。单层结构只有一个源结构系统按第七步的逻辑文件名直接找文件多层结构才需要在这里分配文件到结构。跳过不代表不用管文件第七步的路径和文件名必须对否则第九步读数据会报“文件不存在”。参数建议原因逻辑路径用系统已配置的路径别名避免手写绝对路径逻辑文件名与物理文件名一致大小写按系统环境物理目录无空格、无中文、有读权限权限不足读不到样本文件先放 5 到 10 行先跑通再全量3.5 第九步之前Excel 模板转 TXT 的格式契约模板格式是 LSMW 读数据的契约。第一行放字段技术名第二行放字段描述第三行开始放数据。第九步读数据时选择从第三行开始就是为了跳过这两行标题。模板不要合并单元格不要隐藏列不要留空列空列会被当成一个字段导致后面列错位。整理完 Excel 后另存为制表符分隔的 TXT编码按系统环境统一建议无 BOM。MATNR MAKTX MTART MEINS MATKL WERKS EKGRP MWSKZ LAND1 物料号 物料描述 物料类型 基本单位 物料组 工厂 采购组 税码 国家 100000001 测试物料A 成品 EA 001 1000 001 J1 CN 100000002 测试物料B 成品 EA 001 1000 001 J1 CN这段模板里第一行是源字段技术名第二行是描述第三行开始是数据。列顺序必须和第三步源字段顺序一致物料号用文本格式保留前导零日期列如果要导统一写成 YYYYMMDD不要用 Excel 日期序列值。TXT 里不要出现制表符以外的分隔符否则读数据会把整行当成一列。4. 读数据、转换与执行把 TXT 灌进物料主数据4.1 第九步读数据从第三行开始与行数核对第九步 Read Data 双击进入选择第七步定义的文件指定起始行 3执行。执行后看日志里的读取行数和 TXT 数据行数对一遍。比如模板有 100 行数据日志应该显示读到 100 行如果显示 101 行说明标题行没跳干净如果显示 99 行可能最后一行空行被吞或文件没保存完整。读数据阶段只负责把文件读进源结构不校验业务值所以字段错位在这里就能看出来。检查点期望异常处理起始行3标题行两行从第三行读读取行数等于数据行数多一行查标题少一行查空行字段列数与源字段数一致列数不一致查隐藏列和分隔符样本行前 5 行字段对得上错位就回模板调列顺序常见做法是先拿 5 到 10 行样本跑第九步字段对上了再换全量文件。全量文件跑完不要急着转换先点第十步 Display Read Data 看一眼物料号有没有丢前导零物料描述有没有被截断工厂列是不是跑到了采购组列。读数据阶段翻车后面转换和执行都是白跑。4.2 第十步到第十二步看读入、转换与错误消息第十步 Display Read Data 看读入结果第十一步 Convert Data 执行转换第十二步 Display Converted Data 看转换后数据。转换阶段会做字段类型转换、检查表校验、必填校验。常见错误有三类必填字段为空、值不在检查表、日期或数字格式不对。转换日志会给出消息号和字段名按字段名回到第五步映射和模板列查。错误类型表现处理必填为空转换日志提示字段为空模板补值或确认该字段是否必输检查表不存在物料组、税码、计量单位报错先维护检查表或改用已有值日期格式转换后日期为空或错乱模板统一 YYYYMMDD不用 Excel 日期字段截断描述少字源字段长度加长模板列宽不是字段长度转换阶段不要只看“转换完成”四个字要点进日志看错误行号和消息。错误行号对应 TXT 行号减 2 就是 Excel 数据行号方便业务回去改。转换不通过就不要执行第十三步否则批输入会话里会带错误数据执行时一条条报错排查更费时间。4.3 第十三步执行生成批输入会话还是立即执行第十三步 Create Batch Input Session 有两个常用做法一是生成会话后到 SM35 前台跑二是直接执行。上线前我一般建议先生成会话选保留会话到 SM35 先用“仅显示错误”前台跑一条样本确认物料主数据各视图都建出来再后台跑全量。会话名按对象和日期命名方便回查。参数推荐值原因会话名对象名日期序号便于 SM35 查找保留会话是出错可回看不覆盖执行模式先前台样本再后台全量先验证再放量错误处理仅显示错误快速定位失败行执行时还要确认物料号是外部给号还是内部给号。外部给号模板里必须有物料号内部给号模板里物料号留空编号范围提前配好。两种方式混在一个模板里执行时会有一部分成功、一部分报错看起来像玄学其实是给号方式不统一。4.4 执行后的验证MM03 按视图抽检与会话日志执行完不要只看“会话已处理”。到 MM03 按物料号抽检基本视图看物料描述、物料类型、基本计量单位工厂视图看工厂、采购组、MRP 字段采购视图看采购组织、税码会计视图看评估类、价格控制。每个视图抽 2 到 3 条基本视图全抽工厂和采购视图按组织抽。SM35 里看会话日志成功行数和失败行数要对上。验证点看什么通过标准基本视图描述、类型、单位与模板一致工厂视图工厂、采购组组织级别字段逐行正确采购视图采购组织、税码没有默认值串行会计视图评估类、价格控制按物料类型配置正确会话日志成功/失败行数失败行有消息号可查5. 常见问题与避坑字段、模板、权限、执行失败怎么排查5.1 模板与读数据列错位、前导零、日期翻车现象一第九步读数据后物料描述列里出现了工厂值后面所有列整体错位。原因Excel 里有隐藏列或空列另存 TXT 后多出一个制表符也可能是模板列顺序和第三步源字段顺序不一致。解决取消所有隐藏列删除空列按源字段顺序重排列用文本编辑器打开 TXT 看第一行制表符数量和源字段数对一遍。读数据前先跑 5 行样本错位在样本阶段就能发现。现象二物料号导入后前导零丢失或者日期变成一串数字。原因Excel 把物料号当数字把日期当日期序列值另存 TXT 后格式已经变了。解决物料号列先设文本格式再填值日期列直接写成 YYYYMMDD 文本不要依赖 Excel 显示格式TXT 里看到什么就是什么。这个坑很常见尤其是物料号有前导零的编码规则翻车一次后面全要返工。5.2 结构关系与字段映射保存报错、默认值写死现象三第五步字段映射保存时报“结构关系未维护”或类似错误。原因第四步 Maintain Structure Relations 没做或者源结构和目标结构的层级不匹配。解决回到第四步单层结构建一条关系并保存多层结构按层级逐条建。第三步定义字段、第四步建关系、第五步做映射顺序不要跳。跳步省下的几分钟后面要用几倍时间查。现象四执行成功但所有物料的工厂都变成同一个或者税码全表一样。原因第五步把组织级别字段设成了固定默认值。默认值适合国家、语言这类全表恒定字段工厂、采购组织、销售组织必须来自模板列。解决回到第五步把组织级别字段的来源改成源字段模板里逐行给值改完先跑样本用 MM03 抽检两个不同工厂的物料。5.3 执行与权限会话锁、视图缺失、后台失败现象五SM35 里会话跑不动提示会话被锁定或没有权限。原因会话正在被其他用户处理或者当前账号缺 SM35 执行权限、缺物料主数据维护权限。解决先看会话状态锁定的等释放或找 Basis 处理权限问题用 SU53 看缺什么对象补权限后再跑。后台作业失败还要看 SM37 作业日志不要只盯 SM35。现象六物料建出来了但只有基本视图工厂视图和采购视图是空的。原因模板缺组织级别列或者第五步只映射了基本视图字段也可能是物料类型本身不允许某些视图。解决按目标结构清单逐视图检查映射模板补工厂、采购组织、销售组织列确认物料类型的视图配置。执行后不要只查一条物料按视图各抽两条基本视图通过不代表其他视图通过。6. 进阶用法与验证用检查点、日志和回滚思路收尾6.1 三段式验证读入行数、转换错误、执行抽检我习惯把 LSMW 的验证拆成三段每段都有硬检查点不靠“看起来成功”。第一段在第九步读数据后看读取行数是否等于 TXT 数据行数抽前 5 行看字段有没有错位第二段在第十一步转换后看错误行号和消息号错误不清零不执行第三段在 SM35 执行后用 MM03 按视图抽检基本视图全抽工厂和采购视图按组织各抽两条。三段都过了才认为这批物料主数据导入完成。检查点看什么通过标准读数据后行数、前 5 行字段行数一致列不错位转换后错误行号、消息号无未处理错误执行后MM03 各视图组织级别字段逐行正确会话日志成功/失败行数失败行有明确原因6.2 版本留痕与回滚思路TXT、会话名、映射截图都留一份LSMW 对象建好以后模板和映射会反复改。我的习惯是每次全量前把 TXT 文件按“对象名_日期_序号”留一份会话名同样带日期第五步映射改完截一张关键字段图。这样执行出问题能对上“哪版模板、哪版映射、哪个会话”。回滚不要直接删生产物料先确认物料是否已被业务使用常见做法是先用 MM06 标记删除或者冻结相关视图再按项目流程处理。生产数据没有后悔药样本和小批量验证就是唯一的保险。从那以后我每次跑 LSMW 都强制先跑 5 条样本保存会话名和 TXT 版本再放全量。希望帮到你。本文还有配套的精品资源点击获取