CDS实体本地化

2020-08-20 13:48发布

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

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


大家好,

我已经将oData v4图书订购服务设置为示例应用程序,并且我正在尝试进行本地化。 生成后,它将表Books分成2个表Books和Books_texts。

我有一个UI5表,其中显示了不同的语言。 如果我想删除一个,它将尝试使用delete方法调用实体Books_texts(locale ='xx',id = x)。 问题在于默认服务中不存在该实体,因为它是由书籍通过扩展来派生/提供的。

除了手动发送相应的请求之外,还有什么方法可以删除语言条目? 创建实体Books_texts的尝试遇到了几个问题,并且肯定不会在开发人员的脑海中。

以下是该功能的链接:https://cap.cloud.sap/docs/guides/localized-data#delete-operations

非常感谢您的帮助

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

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


大家好,

我已经将oData v4图书订购服务设置为示例应用程序,并且我正在尝试进行本地化。 生成后,它将表Books分成2个表Books和Books_texts。

我有一个UI5表,其中显示了不同的语言。 如果我想删除一个,它将尝试使用delete方法调用实体Books_texts(locale ='xx',id = x)。 问题在于默认服务中不存在该实体,因为它是由书籍通过扩展来派生/提供的。

除了手动发送相应的请求之外,还有什么方法可以删除语言条目? 创建实体Books_texts的尝试遇到了几个问题,并且肯定不会在开发人员的脑海中。

以下是该功能的链接:https://cap.cloud.sap/docs/guides/localized-data#delete-operations

非常感谢您的帮助

付费偷看设置
发送
2条回答
CPLASF-自律
1楼-- · 2020-08-20 14:26

安德烈,

我不确定我是否理解您的问题。

您是否尝试执行深度删除?

 删除/Entity()/文本
  
SAP砖家
2楼-- · 2020-08-20 14:11

嗨,大卫,

谢谢您的回答。

我是否必须手动进行操作,UI5是否检测到它还是必须将其包含在CDS服务中? 这就是我当前的问题所在。

Hana Express node.js CDS服务,基于Cloud Platform Business Application示例:

 service CatalogService {
   实体书作为在书店上的投影。
   实体Authors @readonly作为在bookshop.Authors上的投影;
   实体Orders @insertonly作为在bookshop.Orders上的投影;
 } 

清单

" sap.app":{
 "数据源": {
 "默认":{
 " uri":"/img/catalog/",
 " type":" OData",
 "设置":{
 " odataVersion":" 4.0"
 }
 }
 }
 },
         " sap.ui5":{
 "楷模": {
 "远程":{
 " dataSource":"默认",
 "设置":{
 " autoExpandSelect":否,
 " synchronizationMode":"无"
 }


 }
 }
 }

 

一本书的详细视图:

 
 <项目>
 
 <单元格>
 
 />
 

绑定到控制器中

 this.path ="/" + window.decodeURIComponent(oEvent.getParameter(" arguments")。bookPath);
 this.getView()。bindElement({
 路径:this.path,
 型号:"远程",
 参数:{
 " $ expand":{
 "文本":{}
 }
/* $$ updateGroupId:batchGroupId */
 }
 }); 

当前的onDelete函数:

 onDelete:函数(oEvent){
/*oEvent.getSource().getParent().getBindingContext("remote").delete("$direct").then(function(){
 sap.m.MessageToast.show(" del");
 } .bind(this),函数(oError){
 sap.m.MessageBox.error(oError.message);
 }); */
 var oButton = oEvent.getSource(),
 oTable = oButton.getParent(),
 oContext = oTable.getBindingContext(" remote");
 oContext.delete()。then(function(){
 oTable.removeSelections();
 MessageToast.show("已删除的文本");
 },函数(oError){
 MessageToast.show("无法删除文本:" + oError.message);
 });
 },

可以直接通过书籍/文本删除,这是与UI5结合使用的最好,最优雅的方法吗?

非常感谢

一周热门 更多>