ABAP 没有 @Input 注解,真正对应的是参数契约、组件映射与 RAP 输入模型

ABAP 没有 @Input 注解,真正对应的是参数契约、组件映射与 RAP 输入模型 我们当前正在讨论的销售订单Header与Item场景,很适合拿来说明这个问题。在 Angular 页面里,父组件可能已经取得一张销售订单,子组件只负责显示订单摘要。父组件通过[salesOrder]把数据绑定给子组件,子组件用@Input声明自己可以接收这份数据。销售订单发生变化时,Angular 的变更检测机制还会再次更新子组件属性,并在需要时触发ngOnChanges。到了 ABAP 世界,开发者很容易寻找一种类似下面这样的语法。@Input sales_orderABAP 并不存在这样的语言注解,也不存在一个可以和 Angular@Input完整一一对应的关键字。更准确的判断是,ABAP 把@Input所承担的几项责任拆散到了不同机制里。在普通 ABAP Objects 中,最接近的是方法的IMPORTING参数、构造方法参数和受控的setter方法。在 Web Dynpro ABAP 中,最接近 Angular 父子组件输入绑定的是组件接口控制器与外部上下文映射。在 RAP 中,最接近的是action、function与业务事件所使用的输入参数。在 CDS、AMDP 和数据库过程调用中,也存在输入参数,但这些参数表达的是查询或过程调用契约,并不是 UI 组件属性。