云应用程序编程模型(CAPM)oData v4-" setProperty"解决方法?

2020-08-30 05:45发布

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

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


在该功能成为标准功能之前,我需要CAPM oData v4" setProperty"解决方法。

左侧的表绑定到JSON模型。 右表绑定到我们的CAPM oData v4服务。 当用户提交"包装数量"时,我需要能够通过找到匹配的UUID来更新oData模型中的相应值。

有人有建议的解决方案吗?

' oContext '基于JSONModel行条目。

 _updateTableQuantities:函数(oContext,bPackAll,bUnpackAll){

   var MovementItm_UUID = oContext.getProperty(" MovementItm_UUID");
   var availableQuantity = oContext.getProperty(" AvailableQuantity");
   var packQuantity = oContext.getProperty(" PackQuantity");

   packQuantity = parseFloat(packQuantity);
   availableQuantity = parseFloat(availableQuantity);

   如果(packQuantity> availableQuantity){
    //实现错误...
    }

   var oTable = this.byId(" table2");
   var oItems = this.byId(" table2")。getRows();
   var oModel = oTable.getModel();

   for(var i = 0; i 
 

理想情况下,我实施的所有变通方法都应与' submitBatch '语句一起使用

 this.getView()。getModel()。submitBatch(constants.batchGroup.defaultUIGroup).then(fnSuccess,fnError); 

(31.3 kB)

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

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


在该功能成为标准功能之前,我需要CAPM oData v4" setProperty"解决方法。

左侧的表绑定到JSON模型。 右表绑定到我们的CAPM oData v4服务。 当用户提交"包装数量"时,我需要能够通过找到匹配的UUID来更新oData模型中的相应值。

有人有建议的解决方案吗?

' oContext '基于JSONModel行条目。

 _updateTableQuantities:函数(oContext,bPackAll,bUnpackAll){

   var MovementItm_UUID = oContext.getProperty(" MovementItm_UUID");
   var availableQuantity = oContext.getProperty(" AvailableQuantity");
   var packQuantity = oContext.getProperty(" PackQuantity");

   packQuantity = parseFloat(packQuantity);
   availableQuantity = parseFloat(availableQuantity);

   如果(packQuantity> availableQuantity){
    //实现错误...
    }

   var oTable = this.byId(" table2");
   var oItems = this.byId(" table2")。getRows();
   var oModel = oTable.getModel();

   for(var i = 0; i 
 

理想情况下,我实施的所有变通方法都应与' submitBatch '语句一起使用

 this.getView()。getModel()。submitBatch(constants.batchGroup.defaultUIGroup).then(fnSuccess,fnError); 

(31.3 kB)
付费偷看设置
发送
8条回答
hengyuye
1楼-- · 2020-08-30 06:03

如果可以将右侧的表(绑定到odata模型)设置为可编辑的,则无需setProperty。 Odata模型会自动跟踪所有UI更改,并将所有UI更改包括在SubmitBatch上

其他选项是使右表项可单击(打开对话框以捕获新值),并且可以在新闻事件方法中设置类似的属性。

oEvent.getSource()。getBindingContext(" odataModel")。setProperty(" Quantity",updatedQuantity);

我遇到了类似您的类似问题,用于更新multiInput字段,其中用于令牌绑定的关联UI字段不可编辑。 我使用相同的解决方案删除并创建新的。

Tarun

悠然的二货
2楼-- · 2020-08-30 06:27

Thomas Jung 感谢您的所有 帮助和培训! 您对如何满足此要求有任何想法吗?

hongfeng1314
3楼-- · 2020-08-30 06:27

嗨,奥斯丁,

您可能应该使用OData v2,文档明确指出v4受到限制:

由于此版本的SAPUI5 OData V4模型的功能范围有限,因此在开发自由式和Fiori元素应用程序之前,请检查所有必需的功能是否均已就绪。

我也想切换到v4,但是由于UI5尚不完全支持它,并且某些控件无法使用它(例如PlanningCalendar),因此我们仍然使用v2 ...

干杯

Pierre

小熊yu生菜
4楼-- · 2020-08-30 06:02

SetProperty确实在ContextBinding上可用。

我建议签出:
https://ui5.sap.com/#/topic/b4f12660538147f8839b05cb03f1d478
Odata v4->步骤6:创建和编辑

可以通过设置updateGroup来完成批处理。

SC_Yao
5楼-- · 2020-08-30 06:18

您也可以使用新的sap/cds-odata-v2-adapter-proxy模块,但我不知道它是否 应该用于生产场景:

https://answers.sap.com/questions/12848857/how-to-implement-function-that-re-turns-entiy-in-no.html?childToView=12852200#answer-12852200

微wx笑
6楼-- · 2020-08-30 06:23

我确实知道标准SAPUI5类不支持它,但是即使有一些解决方法,即使需要手动发出http PUT请求,也可以肯定有一些解决方法。 将OData V2与CAPM一起使用意味着应用程序层将用JAVA而不是nodejs来实现,这是一个很大的改变。

我发布了这个问题,因为希望SAP可以通过某种方式手动更新其V4 OData服务或 Thomas Jung 知道一种解决方法。

一周热门 更多>