点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,
我实现了一个函数导入,该函数接受来自实体A的合作伙伴代码并返回来自实体B的合作伙伴描述。由于代码不是实体A的一部分,并且SEGW不允许我创建代码,因此此处无法使用关联 之一。 从实体B开始加载数据也不是一种选择,它包含超过150.000个条目。 函数导入工作正常,我的问题是格式器似乎不等待oData调用返回的数据,即使我同时附加了promise和" batchrequestcompleted "事件。 我在调试器中观看了以正确顺序执行的所有指令(并返回了预期的结果),但似乎视图没有等待。 是否可以使用某种技术使视图等待结果,还是我必须在实体A中附加额外的字段以将描述存储在后端,出于某些明显的原因,我不想这样做 。 (非常简短)下面附上的代码,有什么想法吗?
干杯
格雷格
PS:在观察代码时,有人会很容易注意到值返回了两次,一次是在成功函数中,一次是在promise之后。 毕竟,它们只是为了测试而已:D
textPartner:函数(sValue){ 如果(!sValue){ 返回""; } var that = this.getParent()。getParent()。getParent()。getParent()。getParent()。getParent()。getParent()。getParent()。getController(); var oModel = this.getModel(); var oModelUpdateDeferred = jQuery.Deferred(); oModel.attachEventOnce(" batchRequestCompleted",function(oEvent){ 如果(that._checkIfBatchRequestSucceeded(oEvent)){ oModelUpdateDeferred.resolve(); } }); oModel.callFunction("/img/Get_Partner_Name",{urlParameters:{Partner_Code:sValue}, 成功:function(oData,sResponse){ sValue = oData.ReturnValue; 返回sValue; }, 错误:function(oError){ jQuery.sap.log.error(" oData Failure",oError); } }); var readyToGo = function(){ 返回sValue; }; jQuery.when(oModelUpdateDeferred).done()。then(jQuery.proxy(readyToGo,this)); } /*第二个简化的同步版本,行为相同*/ textPartner:函数(sValue){ 如果(!sValue){ 返回""; } var oModel = this.getModel(); oModel.callFunction("/img/Get_Partner_Name",{urlParameters:{Partner_Code:sValue},async:false, 成功:function(oData,sResponse){ sValue = oData.ReturnValue; //返回sValue; }, 错误:function(oError){ jQuery.sap.log.error(" oData Failure",oError); } }); 返回sValue; }
解决方法是使用SEGW的 Jun Wu 方法(建议1)(忽略 关键的东西),并使用绑定中的expand获取数据。 同步逻辑似乎不起作用。
Ack! 找到了,问题是..." expand"参数前面的$,谢谢:-)
1。 如果我不厌倦,联想应该可以工作,钥匙没关系
2。 使您的odata调用syncnus
我已经在SEGW中使关联部分正常工作,测试并正常工作,现在我的问题是绑定,检查线程中的最后一个答案,感谢您介入 仍然可以帮助您:-)
嗨,
该协会应该像 Jun Wu 那样工作。 但是,当您进行关联时,必须使用不同的逻辑。
请查看此博客
https://blogs.sap.com/2017/12/21/list-report-adding-a-contact-quick-view-to-a-table-without-cds/
在该部分
SAP网关部分:数据模型,它将向您展示如何创建与该逻辑的关联。
亲切的问候,
约瑟夫
一周热门 更多>