点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我们正在构建具有...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我们正在构建具有...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我们正在构建具有离线功能的SAP Hybrid应用。 我们正在调用oData服务,该应用应为此应用创建离线存储。 我们以以下方式定义了定义请求:
openStore:function(){ console.log("在openStore"); jQuery.sap.require(" sap.ui.thirdparty.datajs"); //使用SAPUI5和Kapsel离线商店时需要 var properties = { " name":" store_PurchaseOrder", "主机":sap.hybrid.kapsel.appContext.registrationContext.serverHost, "端口":sap.hybrid.kapsel.appContext.registrationContext.serverPort, " https":sap.hybrid.kapsel.appContext.registrationContext.https, " serviceRoot":fiori_client_appConfig.appID +" _ECConPremise/sap/opu/odata/sap/ZGOODSRECEIPT_OFFLINE_SRV/", " definingRequests":{ " PurchaseOrderItemSet":"/img/PurchaseOrderItemSet?$ top = 50" } }; store = sap.OData.createOfflineStore(properties); var openStoreSuccessCallback = function(){ console.log("在openStoreSuccessCallback"); sap.OData.applyHttpClient(); //现在可以针对datajs进行离线OData调用。 sap.hybrid.startApp(); } var openStoreErrorCallback = function(error){ console.log("在openStoreErrorCallback"); alert("发生错误" + JSON.stringify(错误)); } store.open(openStoreSuccessCallback,openStoreErrorCallback); },
在日志中,我们可以看到正在创建商店并正确打开了商店。
我们正在通过以下服务电话读取数据
var oDataModel = sap.ui.model.odata.v2.ODataModel( "/img/sap/opu/odata/sap/ZGOODSRECEIPT_OFFLINE_SRV",true); var mParameters = { 成功:函数(oData,oResponse){ 调试器; console.log(JSON.stringify(oData)); } .bind(this), 错误:函数(oError){ } .bind(this) }; oDataModel.read("/img/PurchaseOrderItemSet",mParameters);
当我们使用Webide Preview运行应用程序时,我们会收到odata服务返回的多条记录,但是当我们在设备上以混合应用程序(在执行Build Packaged App之后)运行该应用程序时,我们只会得到 服务。 我们在后端设置了外部断点,并注意到服务在输出中返回了多条记录,但在应用程序中,我们仅获得了一条记录(结果集的最后一条记录)。 任何人都可以建议为什么在将应用程序作为混合应用程序运行时,为什么oData会有不同的响应。
嗨,
没有关于您的数据集和数据结构的更多信息:您是否可能未在SEGW中定义属性键字段? 在将自己预订到数据库中时,每行可能会覆盖之前的那一行,因为它具有相同的密钥……这只是我的第一个想法,因为代码本身看起来确实不错。
一周热门 更多>