基gateway实现odata(5)-Supplier Collection-$expand

今天学习表的联合查询,

ODATA学习(SAP Press – OData and SAP NetWeaver Gateway)第6.5.4章节,第281页

本来是想用实现http://bwnep:8917/sap/opu/odata/sap/ZSALE_SRV/ZTSALE_H(Gjahr=’2016′,Zsaleid=’1001′)/ZTSALE_I这样的URL,然后查询出此销售订单的明细,当然,明细应该是会有多行的,
可文档中说的好像是调用的Get_Entity方法,而实际上确认也是调用 的是Get_Entity方法,而调用此方法时,返回的结果集,只能是一行了,所以最终没实现想我的效果,
可后面才发现,在地址中的最后不是输入明细表的Entity名字,而要输入主表中的Navigation properties的名字,所以地址应该为:
http://bwnep:8917/sap/opu/odata/sap/ZSALE_SRV/ZTSALE_H(Gjahr=’2016′,Zsaleid=’1001′)/ZTSALE_ISet
———————————————————————————————————————————————————————
先把实现的步骤记录如下:

一、在SEGW项目中,在Associations上点右键,选择创建,输入入名字,表关联名字,如图

二、…在此略去大于100字。
三、创建完成后,应该是要重新生成对应的;
四,记得在明细表的GET_ENTITYSET方法中写入取数据程序;

五、运行地址:http://bwnep:8917/sap/opu/odata/sap/ZSALE_SRV/ZTSALE_H
发现在返回的XML中增加了如下:
   <link href=”ZTSALE_H(Gjahr=’2016′,Zsaleid=’1001′)/ZTSALE_ISet” rel=”http://schemas.microsoft.com/ado/2007/08/dataservices/related/ZTSALE_ISet” type=”application/atom+xml;type=feed”title=”ZTSALE_ISet”/>


六、最后运行地址:http://bwnep:8917/sap/opu/odata/sap/ZSALE_SRV/ZTSALE_H(Gjahr=’2016′,Zsaleid=’1001′)/ZTSALE_ISet
确发现在返回了明细表的所有行内容,DEBUG发现在调用GET_ENTITYSET方法时,IT_FILTER_SELECT_OPTIONS传的查询参数是空的,所以相当于没有查询条件,这里明天再看一下要如何处理。

破网络,限制发不出图片,将就着看吧,

 

留下一个回复

你的email不会被公开。