CAP oData v4深度删除

2020-08-23 23:33发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有两个CDS实体,其父/子关系...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有两个CDS实体,其父/子关系由许多/关联到关键字定义。 CDS定义基于 Cap Cloud文档。 我已从相关实体中删除了所有的webhooks。

实体托运人{
 密钥UUID:UUID;
 地址1:字符串(40);
 城市:字符串(40);
 公司:String(40);
 CompanyId:UUID;
 联系人:字符串(40);
 国家:String(2);
 电子邮件:String(60);
 ID:String(4);
 名称:String(60);
 电话:String(15);
 邮政编码:字符串(10);
 StateProvince:字符串(40);
 符号:字符串(400);
 tenantID:UUID;
 ToCarriers:许多数据的组合。ToCarriers.Shipper= $ self上的Carrier;
 }


 实体承运人{
 密钥UUID:UUID;
 托运人:托运人协会;
 AdapterRegistrationId:String(4);
 CompanyId:UUID;
 ID:String(4);
 名称:String(40);
 符号:字符串(400);
 tenantID:UUID;
 }
 

我已经创建了一个SAPUI5应用程序CRUD应用程序,用于基于 sapui5 hana点播文档

问题排查:

1)创建父条目

2)创建子条目

创建的代码段

 onCreate:function(){
 var oList = this.byId(" carrierList"),
 oBinding = oList.getBinding(" items"),
 oContext = oBinding.create({
 " Shipper_UUID":this.sObjectId.replace(/[{{(}}]/g,''),
 "ID"			: "",
 "名称"			: "",
 "符号":""
 });


 this.setUIChanges();
 oList.getItems()。some(function(oItem){
      如果(oItem.getBindingContext()=== oContext){
 oItem.focus();
 oItem.setSelected(true);
         返回true;
 }
 });
 }

 

3)通过数据库资源管理器验证UUID关系

4)删除父级

代码段:

 onDelete:函数(){
 var oSelected = this.byId(" shipperList")。getSelectedItem();

 如果(oSelected){
 oSelected.getBindingContext()。delete(" $ auto")。then(function(){
 MessageToast.show(this._getText(" deletionSuccessMessage"));
 } .bind(this),函数(oError){
 MessageBox.error(oError.message);
 });
 }
 },
 

数据库浏览器中仍然存在孤儿:(

(48.7 kB)
4条回答
三十六小时_GS
2020-08-23 23:35

对绑定上下文的.delete(" $ auto")调用可能与此有关。

在manifest.json中的OData v4模型上设置的模式是什么? groupId $ auto将使用批处理请求(而不是$ direct)。 还要确保ynchronizationMode为" none"。 请参见 https://ui5 .sap.com/#/api/sap.ui.model.odata.v4.ODataModel%23constructor

将src代码放在 https://github.com/sapmentors/cap-community/tree/master/issues ,所以我们可以说代码而不是猜测:)

一周热门 更多>