Released API:
在S/4环境,所见即所得,能查到的所有开发对象(域,数据元素,表,视图等)都能在开发中使用;
但是在BTP ABAP环境和公有云环境中,并不是这样!标准对象,只有API状态设置中是released状态的对象可以直接使用。未发布的对象不能直接使用!
如图所示,在云环境开发一个CDS,直接使用标准表(未发布)和标准数据元素(未发布),直接报错。

报错消息如下:
– The use of Table tcurx is not permitted. Use CDS Entity I_CURRENCY instead.
– The use of Data Element currdec_cds is not permitted.

根本原因取决于ABAP Language Version; 在OP环境开发的对象,默认都是Standard ABAP;

而在BTP ABAP自开发的对象默认是ABAP for Cloud Development,并且不可修改!
大部分类型的对象,在属性中都有‘API State’页签,在此显示这种类型的对象所支持的Contract(契约)类型,及其Contract类型是否设置,以及设置了的状态。
比如:标准表TCURC;表类型对象,有C0,C1,C3三种契约;C0和C3契约没有设置,在C1契约中,是未发布状态。

Contract总共有5种:
|
SAP标准对象的发布状态有4种:
|
查询Released API的工具:
https://api.sap.com
可以模糊查询标准对象相关的发布对象;
也可以对已知发布对象精准查询,查看说明和使用示例代码。

2. Cloudification Repository Viewer (CRV)
CRV是 GitHub 上的各种 JSON 文件,表示 SAP 系统(ABAP 环境、S/4 HANA 私有云和公有云、S/4 HANA 本地部署)中已发布对象的当前状态。如果您想使用新的 ABAP 云开发模型,您只能访问已发布的 API。该仓库提供了关于现有对象的各种信息,说明您是否可以在 ABAP 云中使用它们,或者是否存在继任者。CDS 视图尤其用于表的领域;在这里,您始终需要了解可以使用哪个继任对象以获取相关信息。
目前我是通过如下url访问的CRV:
https://software-heroes.com/en/cloudification-repository-viewer
输入要查询的对象:

查询结果:

Clean Core战略:
基于以上内容可以看出,在SAP提出Clean Core战略后,无论是实施还是运维SAP系统,我们都要考虑Clean Core原则;不止是对当前系统业务稳定运行的保障,还是对未来系统升级或业务变化升级的保障。
除非企业确定死磕当前系统版本,永远不会系统升级了。
自开发对象的Release state设置:
一种通过对象上下文菜单进行设置,一种是在对象属性->API状态页签中设置。

注:在OP环境自开发对象好像不设置API状态也可以正常使用。
另外记录个有趣的Demo,发现通过RAP可以实现很多丰富的内容。
这个Showcase demo(OData V4):

预览效果:

除了丰富内容外,发现此RAP服务启动时自动执行了查询(即Go按钮的默认触发行为),而非依赖用户手动点击。
通过查询得知,最规范的做法是在CDS视图使用选择变式注解定义默认筛选条件,并设置default:ture(关键); –在OP环境待尝试。
无需修改前端代码,便于维护和调整业务规则。
但是在此demo中,没有发现对选择变式设置default:ture;不知道是如何实现的。
网硕互联帮助中心





评论前必须登录!
注册