云计算百科
云计算领域专业知识百科平台

浅谈Released API和 Clean Core的重要性

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种:

  • C0: 扩展;是否允许被扩展(可被扩展的对象有诸多要求)
  • C1:系统内部使用;是否允许被直接使用;发布状态的可被直接使用。未发布的不能直接使用,但是在Successors中给出了可替代的发布对象,比如表TCURC的数据可通过CDS:I_Currency进行访问。
  • C2:Remote API;是否允许作为接口被远程调用
  • C3:配置内容管理;是否作为配置内容进行管理,比如config对象,只有设置C3,配置的数据才能包到请求进行传输
  • C4:在AMDP使用:是否在数据库处理中使用

SAP标准对象的发布状态有4种:

  • Released: 可以在所有ABAP版本中使用,包括for key users 和 for 云开发(BTP和公有云)
  • Not to be Released:未发布,但是会有一个发布状态的successor或wrapper供开发使用
  • Not to be Released,Stable:未发布,但是稳定!稳定,我的理解是不会再被修改。这种对象可以wrapper(包装),开发者对其包装后可使用。
  • Deprecated:弃用;对象是发布状态,直接可以使用,但会有弃用的警告!其successor(继任者)可能可用,可能不可用。  (自开发对象设置时无此状态)

查询Released API的工具:

  • SAP 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;不知道是如何实现的。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 浅谈Released API和 Clean Core的重要性
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!