ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

一道天雷只落一处,ABAP 中的精准业务动作

一道天雷只落一处,ABAP 中的精准业务动作 生产系统里有一张待处理的异常单。它关联着销售订单,页面上显示状态为待确认。操作人员核对了客户、订单号和异常原因,点击「确认解决」。屏幕上只是一个按钮,后台却要回答一串严肃的问题,这张单据是否仍处于待处理状态,操作者是否有权限,另一位同事是否已经处理过它,状态变化是否需要留下记录,以及保存失败时该怎样反馈。这一击很适合借赵灵儿的「天雷破」来理解。按经典《仙剑奇侠传》的技能资料,天雷破是攻击单个目标的高级雷系法术。因此,把它类比为一次有明确目标、经过条件校验、对业务对象产生显著效果的动作,比把它讲成遍扫整张数据库的群攻更贴切。ABAP 中没有名叫「天雷破」的内置语句,也不存在执行后自动解决复杂业务问题的万能技术。对应到工程实践,我会把这套招式拆成三个部分,准确选中目标,确认此刻可以出手,在一个受控的事务中完成改变。它可以由传统 ABAP 程序实现,也可以由 SAP BTP ABAP 环境中的 RAP 业务对象动作实现。底层数据若有复杂计算,还可以交给 SAP HANA 处理。几种技术承担的职责不同,不能因为它们都能修改数据,就把它们视为同一种招式。目标为什么必须准确?因为业务系统里,一次失手造成的损害往往与代码行数无关。我们今天处理一张异常单,业务人员看到的是单号4711。数据库里可能有数百万张历史单据,部分单据还属于不同公司代码。只按状态筛选,再把所有待处理记录改成已解决,执行速度再快也属于误伤。准确的攻击范围应由稳定的业务键确定,必要时还要带上公司代码、租户边界或者其他业务限定条件。操作权限与状态校验也必须在执行改变之前得到满足。这时容易出现一个误解,SELECT SINGLE查到了目标,就足以证明更新一定安全。读取与写入之间有时间间隔。甲、
返回列表