
在 SAP 官方的 RAP100 实践教程中,一套 Travel 应用从自定义数据库表开始,经过数据模型、行为定义、服务定义和服务绑定,最终可以在 SAP Fiori elements 中预览。我们仍然使用熟悉的 ABAP 编写代码,仍然处理业务数据,仍然需要计算金额、校验日期和维护状态。不过,进入这套开发流程时,有一个属性会直接影响后续所有实现选择,那就是开发对象的 ABAP Language Version,也就是 ABAP 语言版本。SAP Developer Center这个属性看起来只是开发工具里的一个设置,实际控制的范围却很大。它决定代码可以使用哪些语言元素,也决定代码可以依赖哪些开发对象。同样是一段读取数据或者调用类方法的代码,放在Standard ABAP对象中可能能够通过检查,放在ABAP for Cloud Development对象中却可能出现错误。问题未必出在表达式或参数类型上,也可能出在被调用对象没有按照相应用途发布。理解 Cloud-Optimized ABAP Language,不能只记住「云端 ABAP 有一些语法限制」。更完整的认识是,我们正在使用一种把依赖关系纳入开发检查的语言版本。它既关注代码怎样写,也关注代码与 SAP 标准实现之间通过什么边界连接。云环境要求频繁升级,而企业扩展又必须保持可维护,这两件事能否同时成立,很大程度上取决于这些边界是否清晰。长期