问题:
如何在OData V2模型上从SAPUI5客户端应用程序执行"深度插入"?
情况:
我想在SAPUI5客户端应用程序的OData V2模型中深度插入一个"操作"和一些"组件"。
// the request data
"OperationSet" : {
"Orderid" : "13700090",
"OperationComponentSet" : [
{
"Orderid" : "13700090",
"Activity" : "0010",
"SubActivity" : "",
"ComponentItem" : "000010"
}
]
}
this.getView().getModel().create("/OperationSet", requestData);
我无法在oData V2模型上使用create(sPath,oData,mParameters?(函数。文档中写道:"请注意,深度创建不受支持,可能不起作用。"请参阅https://sapui5.netweaver.ondemand.com/sdk/docs/api/symbols/sap.ui.model.odata.v2.ODataModel.html#create
是否有其他可能在OData V2模型上执行深度插入?
链接:
- https://sapui5.netweaver.ondemand.com/sdk/docs/api/symbols/sap.ui.model.odata.v2.ODataModel.html
- http://scn.sap.com/docs/DOC-58063#deepinsert
答案是,"深度插入"目前不支持0..n与离线Kapsel插件的关联。
参见http://help.sap.com/saphelp_smp308sdk/helpdata/en/d3/0ded03756247f1a136c84be7901879/content.htm
深度插入的限制深度插入是对创建一个实体,该实体还包含相关的内联定义实体。
处理深度插入时,顶级实体及其所有相关实体被创建并链接为单个实体活动在SDK SP07中,离线商店支持深度插入通过Android、iOS和WinPhone 8平台上的OData API一个重要的限制:
- 用于深度插入的导航属性最多只能引用一个实体。任何内联的相关实体都必须使用ToRole引用了以结束的关联的导航属性基数0..1或1。无法使用导航添加它们属性的ToRole引用了基数为*的关联结束。不能使用引用一组实体的导航属性用于深度插入
因此,"深度插入"只有在当前针对网关在线执行请求的情况下才会起作用。