在一个比较完整的 SAP S/4HANA 业务模型里,经常会看到多个字段在数据库层拥有完全相同的物理类型,却承担着完全不同的业务角色。
以旅行预订模型为例,Travel UUID、Booking UUID、Booking Supplement UUID都可以采用长度为16字节的RAW数据保存。站在数据库存储角度看,它们似乎没有任何区别,都是一串16字节的二进制值。但到了业务模型里,这几个字段显然不能被视为同一种东西。
一个值代表旅行订单,一个代表旅行订单下面的预订记录,另一个代表预订附加项目。
如果数据模型只保留RAW(16)这一层技术信息,那么应用层能够知道的只有一件事,几个字段在物理格式上兼容。至于某个RAW(16)到底是Travel UUID还是Booking UUID,只能依赖字段名称、开发人员经验或者额外文档来理解。
ABAP CDS Simple Type正是为了解决这类问题而设计出来的。
SAP 官方将CDS Simple Type定义为一种用户自定义的 elementary data type。它通过DEFINE TYPE声明,可以建立在 ABAP Dictionary data element、内置 CDS 类型或者另一个CDS Simple Type之上,并且可以携带 C