我们做 SAP 系统时,经常会碰到一个很拧巴的场景。前台页面已经打开,后台业务状态却在不断变化。审批被别人处理了,库存被批处理改了,监控日志刚刚切了开关,长作业进度也在跳。可页面端如果还靠每隔几秒轮询一次,就总会出现两个问题,一个是慢,另一个是浪费。浏览器端常见的做法,是让 SAPUI5、Web Dynpro、BSP 或 WebGUI 按固定间隔发请求去问后台有没有新事件,SAP GUI 里则往往靠 timer 控件去探测后端状态。ABAP Channels 出现,就是为了把这一套高频轮询改成真正的事件推送,把后台一有变化就立刻送到前台。(SAP Community)这项能力并不是后来才冒出来的新概念。ABAP Channels 基础设施在 SAP NetWeaver AS ABAP 7.40 SP2 就已经交付出来,最初用于简单测试和原型验证,到了 7.40 SP5 才算正式发布。理解这段历史很重要,因为很多项目里一提到实时推送,大家下意识会想到外部消息中间件、反向代理或者额外的 Node.js 服务,实际上在经典 AS ABAP 体系里,SAP 很早就已经把这件事内建进平台了。(