问题:
如何在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模型上执行深度插入?
链接:
答案 0 :(得分:1)
答案是,“Deep Insert”目前不支持与离线Kapsel插件进行0..n协商。
请参阅http://help.sap.com/saphelp_smp308sdk/helpdata/en/d3/0ded03756247f1a136c84be7901879/content.htm
深度插入的限制深度插入是对OData POST的请求 创建一个也包含相关内联定义的实体 实体。
处理深度插入时,顶层实体及其全部 相关实体作为单个实体创建和链接在一起 操作。在SDK SP07中,脱机存储支持深度插入 通过Android,iOS和WinPhone 8平台上的OData API 一个重要的限制:
- 用于深插入的导航属性必须至多引用一个实体。必须使用a添加任何内联相关实体 导航属性,其ToRole引用关联结束 基数0..1或1.无法使用导航添加它们 ToRole引用具有基数*的关联结束的属性。 无法使用引用一组实体的导航属性 用于深插入。
因此,“Deep Insert”仅在此时针对网关在线执行请求时才有效。