LSMW:SAP ERP系统如何通过LSMW批量更改BOM
在系统上线后,往往还需要批量更改相关数据。如BOM用量、工价工时等内容。此时动辄上万条数据,如果靠手工更改,显然工作量会比较大。在这里,笔者以BOM更改为例,谈谈如何通过LSMW来批量更改BOM数据。关于LSMW的教程网上已经有很多、也写得很详细。笔者这里就不做详细说明。这里笔者要阐述的重点是各个步骤中需要主意的内容或者容易出错的地方。以供大家参考。
一、LSMW流程示意图
LSMW的缺点就是操作起来比较麻烦。如上图所示,LSMW整个流程包括15个步骤。其中14个步骤是必须的。不过虽然其操作繁琐,但是提供了一个向导式的界面,简化了用户的记忆。笔者认为,要学好LSMW这个工具,要先了解其操作原理。即上面这幅流程图。了解之后,再去学习操作,会取得事半功倍的效果。
对于这幅流程图,需要注意第六步“转换规则”。这个步骤核心的内容就是维护“目标数据”与“导入数据”的转换规则。这个步骤是可选的。为什么呢?在实际项目中,一般都不会在这里维护转换规则。而是在Excle文件中预先维护好的。如在源文件中“日期格式”与系统中的日期格式不相同。此时就需要转换,否则导入不会成功。要转换为相同的格式,有两种手段可以实现。一是在源文件中改,二是在系统中通过这个步骤进行转换。在实际工作中,绝大部分人系统在源文件中改。因为通过Excle等工具,要实现这个转换是非常方便、简单的,而且不容易出错。笔者也建议这么操作。
二、抬头数据(LSMW导入工具命名)
在使用LSMW之前,需要先对LSMW工具进行命名。这个命名除了要遵守简单、明了的原则之外,还有一个关键的技术限制,即名字的长度。在命名时,其三个字段总的长度不能够超过45个字符。超过的话,在第七个步骤中就会出错。SAP在这里做的并不是很好。如果用户输入的字符数超过了这个长度,系统在这个步骤中仍然可以保存,不会有错误提示。即使一些老用户在这里也容易犯糊涂。因为不会有人特别去数字符数。这里也对SAP提一个建议,尽早在这里做一个检查控制,以防止用户犯低级的错误。
三、定义系统结构(录屏)
在这个步骤中,主要是定义在数据导入或者更新的过程中所需要用到的字段。在这里,系统是通过录屏的方式实现的。此时需要注意三点。
一是录屏操作时要尽量减少不必要的操作。在录屏时,系统会一五一十的纪录下系统所有的操作字段。如果在操作时,增加不必要的操作,如频繁删除、切换界面时,就会导致系统结构不够清楚明了。在后续对应源文件字段时,也容易出现问题。为此笔者建,在录屏之前,最后先操作一次。记录下来此次操作所必需要的自字段。以减少录屏时的不必要操作。
二是需要注意,在一些特殊的操作界面中,可能会遇到行项目定向的问题。如在BOM更改时,可能只需要更改第二个行项目或者根据物料编码来更改,此时系统该如何查询?这里就需要用到一个定项的技巧。这里以CS02批量更改BOM为例。在实际项目中,一般用户是先将BOM导出成Excle表格。然后通过过滤、替换等手段,对目标文件进行维护。然后再将文件导入到系统中。在导入的过程中,BOM的项目号在目标文件与系统数据中就需要一一对应。否则的话,就会出现张冠李戴的情况。在录屏时,如果通过常规的更改方式,系统是不会记录下项目号的。这里就需要一些技巧让系统找到这个字段。在录屏时,可以点击菜单栏的“编辑”按钮,找到定位选项。这里可以允许用户输入项目号。通过这个步骤,在录屏后,系统就会增加“项目号”这个字段。
三是系统结构做好之后,需要对各个字段进行命名。笔者这里的建议是,命名时采用系统的表格中字段的名字。选中某个文本框,然后按工具栏上的“DefaultAll”按钮,就可以将系统字段的名字带出来。在大部分情况下,这个LSMW工具都是技术顾问来完成的。这些专业的字段名字对他们来说难度并不是很大。
四、创建源文件
导入文件一般都是通过Excle工具来维护的,此时需要注意如下几点。
一是大部分的维护操作都可以在Excle工具中完成,而不需要通过系统的“转换”工具。简单的说,在Excle中需要完成数据的更新、字段格式的统一等操作。毕竟在Excle中完成这些操作,要比在SAP系统中简单的多,而且不容易出错。
二是需要注意,在保存时,要选择Unicode格式。这主要是因为这个格式能够完美的支持中文。如果选择其它格式,可能更新或者导入进去的中文会是乱码。对于有中文的内容,这一点就显得尤其重要。
三是在导入文件中,可以有标题或者备注等行项目。如果有的话,在导入时就需要指定导入的行项目,即从第几行导入到第几行。笔者的操作系统是,在导入之前会将这个文件中的标题行或者备注行删除,以减少后续的操作。
四是在文件导入之前,一定要将文件关闭。如果文件在打开的状态下,系统就会报错。
五、数据检查
在数据检查方面,系统中提供了两个步骤:第十步和第十二步。在第九个步骤中,系统会将源文件中的数据导入到一个临时表中。此时可以通过第十步来读取临时表中的数据。用户可以检查数据是否准确。然后通过第十一个步骤,系统会将源文件中的,数据读取到“导入结构”中。此时并没有真正更新数据库中的数据。在第十二个步骤中,用户还可以读取数据进行检查。
注意,此时的检查并不是让用户去检查每个行项目,而是进行抽查。一般都会抽取2-3个项目。检查的内容主要是看是否有乱码(特别是有中文的情况下)、字段的顺序是否一致等等。数据的大范围检查还是在Excle工具中完成的。
六、建立批次导入数据
最后两个步骤就是建立批次对话并导入数据。在这两个步骤中,需要强调的是是通过前台方式导入还是通过后台方式导入。笔者的建议是,如果导入的数据量比较少、并且内容比较关键,此时最好通过前台导入。此时可以让系统在出现错误的时候提示。大批量导入数据时,就建议通过后台方式导入。此时如果有错误信息,系统也会在后台进行记录。
七、导入后检查
数据导入或者更新完毕后,笔者建议最好对导入的数据检查一下。如可以先通过SE16N或者其他工具,将导入的数据导出为Excle表格。然后通过Excle工具或者其他数据库软件对两个文件的内容进行比对,以检查导入的数据是否准确。此时检查的内容包括两个方面。一是导入数据是否准确,二是导入或者更新数据的完整性。笔者的做法是将源文件和系统更新后的数据都导入到Access或者Mysql数据库。然后通过相关的命令语句进行匹配,以确保数据更新的准确性和完整性。