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条回答
暮风yp
2020-08-23 23:45

是否有任何特定原因 为什么不使用Fiori Elements并使用手动方式来实现UI? 由于您已经在使用UUID,建议您重用@ sap/cds/common中的cuid,并将@ odata.draft.enabled添加到服务中的主要实体。 然后添加所需的UI批注,您将获得没有一行JavaScript的CRUD UI。

一周热门 更多>