SAP工具箱 批量更新任意表字段内容

点击蓝字 关注我们

前言

项目中常常会碰到这个场景: 因为各种原因,已经导入的数据需要调整特定字段的内容.SAP提供了一个批量更改字段内容的功能. (事务代码MASS).

事务代码 MASS. 该功能只涵盖了27个对象类型及这些对象的相关表,如图1.超出这个范围则无法使用MASS修改大量数据的性能较差.

因为MASS的上述局限性.

在项目中开发了一个批量更新工具ZUP_ANY.用于更新指定表的指定字段内容

图一

MASS执行过程

先简单介绍一下通过MASS修改商品属性的过程

10

选定对象类型

20

选择对象中的表

30

选择表中的字段

41

选择要修改的数据

点击执行后, 选择要修改的数据

42

批量修改

输入关键字后,系统会显示所有该数据的字段内容. 此时可以批量修改字段内容.

51

通过文件导入

需要事先准备EXCEL文件, 文件中输入关键字列和要修改的字段列及内容(可以不带标题)

52

选择文件属性

53

映射字段

54

预览数据

55

显示待变更数据

进入和选择数据相同的内容(不同的是,此时目标值已经填写)

60

执行测试按钮

70

保存修改

点击保存,完成修改

80

查看结果

查看商品的变更记录

通过ZUP_ANY完成该过程

通过ZUP_ANY修改商品属性的过程

01

执行ZUP_ANY

02

下载模板

下载模板,在模板中填写数据,重要字段通过批注描述字段的用法

03

导入数据

点击执行后,数据写入内表

04

进入处理

点击保存后, 进入数据处理程序

05

执行处理

选中行,点击处理,此时报错,因为修改的是标准表的标准字段, 所以需要配置一下.

06

配置字段允许

配置标准字段允许修改(ZTUP_ANY_C1)

07

执行通过

08

查看变更结果

查看商品的变更日志

MASS VS ZUP_ANY

对比一下MASS 与ZUP_ANY程序的优缺点.

建议还是尽量使用MASS大量变更数据, 除非碰到MASS不支持的数据对象,或者MASS性能实在太差时, 再使用ZUP_ANY更新.

01

MASS的优点

  • 通过步骤引导用户选择要修改的对象,表,字段.通过选择或导入指定要变更的数据.

  • 允许批量修改为目标值.

  • 提供了测试功能,

  • 记录了应用日志,

  • 记录了变更文档.

  • 标准程序,用户更有信心使用.

  • 可以同时修改同一个表的多个字段

  • 业务关联修改系统自动处理((比如MLAN-TAXM1修改后系统自动调整MARA-TAKLV)

02

MASS的缺点

  • 支持对象有限,目前有27个对象的相关表中的字段允许修改.

  • 修改增强字段需要额外配置(比如商品MARA的增强字段,需要先配置字段状态组,才能用MASS修改)

  • 性能较差(因为要校验的逻辑过多)

03

ZUP_ANY的优点

  • 任意表的非关键字都允许修改

  • 默认支持自定义表或标准表的增强字段修改

  • 对联合主键,允许使用通配符修改大量数据(如图二)

  • 通过码表校验修改的字段内容

  • 记录变更文档(自动识别待更新表/字段的变更对象)

  • 记录下传控制表

  • 便于处理不同数据的不同目标字段内容

  • 修改信息同时记录在(ZTUP_ANY和变更文档中)

  • 可以同时修改多个表的不同字段

04

ZUP_ANY的缺点

  • 非查询式修改(待修改的数据需要用其它方式查询出来)

  • 需要用户自行联合主键到一个字段中(需要注意主键顺序),如图二

  • 对于标准字段的修改需要先行验证并配置(配置表:ZTUP_ANY_C1)

  • 业务关联修改需要自行处理(比如MLAN-TAXM1 需要关联修改MARA-TAKLV)

  • 下传控制表记录可能缺失(比如修改EKPO的字段,则无法记录采购订单的下传控制表ZTIFEKKO)

图二

ZUP_ANY的开发思路

ZUP_ANY按照通用导入模板开发.

详见连接无峰,公众号:ABAP 技巧与实战SAP工具箱 配置导入模板
通用导入程序无峰,公众号:ABAP 技巧与实战SAP工具箱 通用导入程序

01

内容记录

导入的数据写入表ZTUP_ANY

通过四个字段存放所有表变更的信息

  • TABNAME      表名

  • TABKEY          主键

  • FIELDNAME    字段名

  • FIELDVALUE    字段值

02

处理程序

处理程序ZUP_ANY_PROC调用处理函数Z_BAPI_ANY_TABLE_UPDATE

函数中对于传入的数据执行如下校验

  • 检查传入的数据属于同一个表

  • 检查传入的数据主键相同.

  • 检查字段是增强字段,或者是配置表中允许的字段

  • 字段内容存在与码表内容中

调用动态SQL语句更新数据后,

  • 查找表对应的变更对象,写入变更表CDHDR/CDPOS,

  • 查找表对应的下传控制表,写入下传控制表

下传控制表: 主数据或单据保存后,通过配置表判断是否需要通过特定接口下传,如果需要,则把主键与接口编号写入特定的下传控制表,后续下传程序读取该下传控制表与业务表获取要下传的数据.

总结

ZUP_ANY 是项目中开发的一个用于更新任意表任意字段的程序.

实际使用时,可以不加限制的修改自定义表或标准表增强字段.

对于标准表字段的修改则需要谨慎对待,因为要确保该字段修改后不会影响业务处理逻辑.通过配置表ZTUP_ANY_C1来记录这个验证的结果.

后续可以考虑优化一下关联表的变更(提供一个配置表配置表字段的关联关系,包含主键的位置关系),在导入存在关联的表/字段内容后,自动产生一行关联表/字段的更新.

一般情况下:

  • 配置表字段的更新比较安全

  • 主数据表字段的更新相对安全

  • 单据表字段的更新则需要谨慎一些.

一般情况下:

  • 增强字段的修改相对安全些

  • 标准字段的修改则需要谨慎一些

THE

END


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容