在 SAP 系统间(或 SAP 与外部系统)进行异步通信时,我们经常会用到tRFC (Transactional RFC,事务性 RFC),即在开发时会写的CALL FUNCTION ... IN BACKGROUND TASK。关于底层的运行逻辑、数据一致性保证以及报错后的流转机制,今天就来拆解 tRFC 的“事务一致性”原理以及核心的监控排错技巧。1. 什么是 tRFC 的事务一致性 (LUW)?当你调用一个函数模块并在后台任务中执行时,该函数并不会被立即执行,而是会一直处于等待状态,直到程序触发COMMIT WORK语句 。使用了IN BACKGROUND TASK后缀的调用之所以被称为“事务性 RFC”,正是因为这种机制保障了事务的一致性 。核心概念:逻辑工作单元 (LUW)在程序中,发生在一个COMMIT WORK和下一个COMMIT WORK之间,并且指向同一个目标系统的所有 tRFC 调用,会被系统自动打包合并成一个LUW (逻辑工作单元)。在一个 LUW 内部,SAP 系统会严格保证以下三条执行铁律 :顺序执行:严格按照代码中被调用的先后顺序执行。同一上下文:在目标系统中,所有的调用都在同一个程序上下文中运行。整体事务:作为一个单一的事务运行,要么全部提交成功,要么全部回滚失败(一荣俱荣,一损俱损)。2. 事务 ID (TID) 与高级控制每个 LUW 在国内外系统中都是通过一个全球唯一的事务 ID (TID)