RAP创建OData函数导入:能否用单一DDIC类型作导入参数?
RAP中使用单一DDIC类型作为OData函数导入参数的解决方案
可以直接使用单一DDIC类型(数据元素、域、ABAP基本类型)作为RAP函数导入的参数,之前服务元数据不显示参数的问题是因为BDL定义的语法格式有误。
正确的BDL写法示例
使用数据元素作为参数:
static function XXX parameter importParameter : S_STRING result [0..*] $self;
使用ABAP基本类型作为参数:
static function XXX parameter importParameter : abap.string result [0..*] $self;
问题原因说明
你之前的写法可能遗漏了参数名称+冒号的格式——当使用抽象实体作为参数时,只需要写实体名即可;但使用单一DDIC类型时,必须明确声明参数名称,再通过冒号指定对应的DDIC/ABAP类型,否则语法检查能通过,但服务元数据不会生成对应的参数定义。
验证步骤
- 按照正确格式修改BDL代码后,重新激活CDS实体、服务定义及服务绑定
- 访问服务元数据,检查函数导入节点下的
Parameter是否正常显示,参数类型是否正确映射
采用这种方式就能实现单一参数的需求,无需使用冗余的单属性抽象实体或结构体。
内容的提问来源于stack exchange,提问作者Erch
相关产品推荐
相关产品推荐

