odata 语法

ads
1.OData定义暴露字段

在利用OData服务暴露表时,我们可以使用withwithout关键字定义哪些字段可以被访问,哪些字段被隐藏。

修改前面章节中创建的demotable.xsOData文件,利用with关键字只暴露Col1,Col2,Clo4字段。


查看该OData服务的元数据,定义里面只有Col1,Col2,Clo4了。

http://demo.com:8000/Hello_XS/service/demotable.xsodata/$metadata


需要注意的是表的主键字段是一定要在暴露的字段里面的否则会报如下错误。


 

同样修改demotable.xsodata文件利用without关键字隐藏Col2,Col4.


查看该OData服务的元数据,定义里面已经隐藏了Col2,Clo4

http://demo.com:8000/Hello_XS/service/demotable.xsodata/$metadata


 2.OData 主键规范

OData服务要求暴露的数据必须有唯一主键,但是在HANA中只有数据库表是包含主键,而视图是不包含主键的。如果我们要将视图定义为OData服务,则需要是用key关键字手动指定主键。如果视图本身就没有唯一主键(如calculation view等),则需要key generate local关键字为视图生成一个本地关键字段,该字段类型为Edm.String。生成的本地主键只是为了满足OData服务的需要,所以不能利用该字段作为查询条件。

  • 视图本身存在唯一字段

利用前面章节中创建的DEMOVIEW.hdbview 定义OData服务。


service文件夹内创建demoview.xsodata,利用key关键字指定C1C2字段为主键。


查看该OData服务的元数据,已经将C1C2定义为主键。

http://demo.com:8000/Hello_XS/service/demoview.xsodata/$metadata


  • 视图本身没有唯一字段

利用第五章中创建的CV_SALES_GRAPHICAL计算视图定义OData服务,因为本身没有主键字段,所以利用key generate local字段创建本地唯一主键。


查看该OData服务的元数据,已经生成了指定的主键字段。

http://demo.com:8000/Hello_XS/service/calcview.xsodata/$metadata


注:第五章中定义的信息模型都可以在Repository中找到,所在文件夹即为定义的package,如下图所示。


3.OData 聚集

OData服务可以通过aggregates关键字对指定的字段进行聚合。对于CalculationView Analytic View可以使用aggregates always关键字进行聚集,这种方式可以利用数据库对象的元数据派生出需要进行聚集的字段,该关键字也只对Calculation View AnalyticView有效。


对于普通的数据库对象则需要显示的指定需要聚集的字段,聚集的字段不能使用$filter操作并且只有使用了generatedkeysOData服务才能使用聚集。

修改demotable.xsodata为如下内容。


SQL Console内执行语句将Col3全部更新为同一值“A”。

update"DEMO"."Hello_XS.db::DEMOTABLE"set"Col3" ='A'


OData服务URI后面增加$select参数选择Col3,Col4

http://demo.com:8000/Hello_XS/service/demotable.xsodata/demo_table?$select=Col3,Col4

可以观察到Col4已经被聚集。


4.OData 参数实体集

定义基于Calculation viewAnalytic viewOData服务时同样可以使用特殊的参数实体集(Parameter Entity Set)来接收Calculation viewAnalytic view内定义的Inputparameter

可以通过parameters via entity关键字来读取视图的元数据从而生成新的EntitySet

基于第五章创建的AN_SALES_FACT分析视图,在service文件夹内创建paramset.xsodata


AN_SALES_FACT分析视图内定义的Input Parameter


查看该OData服务的元数据。

http://demo.com:8000/Hello_XS/service/paramset.xsodata/$metadata


也可以指定生成的EntitySetNavigation Property的名字。

http://demo.com:8000/Hello_XS/service/paramset.xsodata/$metadata


5.OData 关联

OData服务可以利用association关键字定义实体之间的外键约束。

在定义OData关联之前,首先创建sales_data.xsodatasales_product.xsodata,内容如下所示。


sales_data表的productid字段与sales_product表的productid字段存在关联。创建sales.xsodata内容如下,这里定义了实体product和实体sales的关联并且其名字为sales_product,关联的字段为括号内的productid,其比例关系是1:N。


查看OData服务的元数据可以发现关联已经生成。

http://demo.com:8000/Hello_XS/service/sales.xsodata/$metadata

 

更多OData定义的详细语法参考 SAP HANA Developer Guide



同享汇出品

SAP同享汇,打造SAP第一分享平台!

SAP-SHARE.com



SAP同享汇精彩文章:
回复 HANA看HANA应用绝对干货
回复 职场看SAP职场百态
更多精彩内容,敬请期待




长按指纹,即可关注“SAP同享汇”


最后编辑于:2024/1/10 拔丝英语网

admin-avatar

英语作文代写、国外视频下载

高质量学习资料分享

admin@buzzrecipe.com