ABAP 编写CDS,使用SEGW做增强逻辑然后发布OData服务

先写一个CDS

下面是一个简单的例子,其中zfield字段为空,用来segw做增强的逻辑处理
在这里插入图片描述
在这里插入图片描述

事务码SEGW创建ODATA工程

进入segw
在这里插入图片描述
创建一个project
在这里插入图片描述
输入project的名称和描述,选择本地或者自己去包请求
在这里插入图片描述
创建成功后,就生成了一个ODATA工程对像ZTEST_JERRY,此工程中可引入多个表,或者多个定义的CDS,下面以引入前文创建的CDS为例。

引入CDS到ODATA工程中

右击Data Model,导入自己的CDS
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
导入成功的结果
在这里插入图片描述
激活ODATA项目工程,点击“Generate Runtime Objects”,此步骤,一定要先选择工程项目(ZTEST),否则激活时会报错的。成功后如图。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对ODATA进行增强

激活过后可以看到Runtime那里可以展开了
在这里插入图片描述
选择DPC_EXT
在这里插入图片描述
DPC:data provider class CRUD的地方
MPC:modle provider class 数据提供的地方

进去后,下拉找到get_entityset
在这里插入图片描述
双击get_entityset,进入到方法内部,然后把里面的代码复制
在这里插入图片描述
然后返回到上一页面,选择get_entityset,点击左上角更改,然后点击重新定义方法
在这里插入图片描述
进入方法体后,把里面的替换为上面复制的
在这里插入图片描述
然后添加写上自己的代码,最后激活
在这里插入图片描述
(为什么需要这样重新定义方法,而不是在上一步进入get_entityset里面后直接去点击更改,然后写代码 ?第一种:点击重新定义方法,这个方法就会变色,见下图,很容易看出来这个方法做了增强。第二种:如果在get_entityset方法体里面直接点击更改,然后写代码,这个方法是不会变色的,看不出来对哪个方法做了增强。两种除了这个差别,两者最终能实现的的效果其实都一样)
在这里插入图片描述

把ODATA工程生成ODATA服务

运行事务码:/IWFND/MAINT_SERVICE 打开激活服务功能,如运行此事务码报错:“用户不能再登陆”,如图。可以在此事务码前面加/O,也就是:/O/IWFND/MAINT_SERVICE 来打开,或者直接在SE93中打开,或者把此事务码添加到收藏菜单中,就不会报错了。
在这里插入图片描述
添加服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后返回上一页面,找到自己的服务
在这里插入图片描述
在这里插入图片描述
可以看到我这里做的增强已经成功了
也可以用Postman测试。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值