点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我已经使用WebIDE完整堆栈中的cloud build(打包的应用程序)选项创建了一个脱机Mobile Hybrid应用程序。 脱机功能运行良好,我可以从应用程序执行所有CRUD操作。
现在,我想启用增量跟踪以提高应用程序的性能。 同样,我为后端OData服务启用了增量跟踪,即现在我正在获取增量令牌
基于一些博客,我了解到我们不需要在应用程序中进行任何代码级别更改,因此我的代码未受影响。 请在下面的文件mobile> hybrid> sap-mobile-hybrid.js中找到我添加的自定义代码:
openStore:函数(){ sap.m.MessageToast.show("在openStore"); jQuery.sap.require(" sap.ui.thirdparty.datajs"); //使用SAPUI5和Kapsel离线商店时需要 var properties = { " name":" chek_mainService", "主机":sap.hybrid.kapsel.appContext.registrationContext.serverHost, "端口":sap.hybrid.kapsel.appContext.registrationContext.serverPort, " https":sap.hybrid.kapsel.appContext.registrationContext.https, " serviceRoot":fiori_client_appConfig.appID +" _" + mobile_appRoutes [0]。目的地, " definingRequests":{ " chekset":"/img/parentSet", " empset":"/img/EmployeeSet" } }; store = sap.OData.createOfflineStore(properties); var openStoreSuccessCallback = function(){ sap.m.MessageToast.show("在openStoreSuccessCallback"); sap.OData.applyHttpClient(); //现在可以针对datajs进行离线OData调用。 sap.hybrid.startApp(); } var openStoreErrorCallback =函数(错误){ sap.m.MessageToast.show("在openStoreErrorCallback"); sap.m.MessageToast.show("发生错误" + JSON.stringify(错误)); } store.open(openStoreSuccessCallback,openStoreErrorCallback); }, refreshStore:function(){ sap.m.MessageToast.show("离线事件:refreshStore"); 如果(!store){ sap.m.MessageToast.show("商店必须先打开,然后才能刷新"); 返回; } store.refresh(sap.hybrid.refreshStoreCallback,sap.hybrid.errorCallback,null,sap.hybrid.progressCallback); }, refreshStoreCallback:function(){ sap.m.MessageToast.show("离线事件:refreshStoreCallback"); }, clearStore:function(){ sap.m.MessageToast.show("离线事件:clearStore"); store.close(sap.hybrid.closeStoreCallback,sap.hybrid.errorCallback); }, closeStoreCallback:function(){ sap.m.MessageToast.show("离线事件:closeStoreCallback"); store.clear(function(){ sap.m.MessageToast.show("清除成功"); },sap.hybrid.errorCallback); }, flushStore:function(){ sap.m.MessageToast.show("离线事件:flushStore"); 如果(!store){ sap.m.MessageToast.show("商店必须先打开才可以刷新"); 返回; } store.flush(sap.hybrid.flushStoreCallback,sap.hybrid.errorCallback,null,sap.hybrid.progressCallback); }, flushStoreCallback:function(){ sap.m.MessageToast.show("离线事件:flushStoreCallback"); }, errorCallback:函数(错误){ sap.m.MessageToast.show("离线事件:errorCallback"); sap.m.MessageToast.show("发生错误:" + JSON.stringify(error)); }, progressCallback:函数(progressStatus){ //sap.m.MessageToast.show("离线事件:progressCallback"); var status = progressStatus.progressState; var lead ="未知"; 如果(状态=== sap.OfflineStore.ProgressState.STORE_DOWNLOADING){ lead ="正在下载"; }否则,如果(status === sap.OfflineStore.ProgressState.REFRESH){ lead ="刷新"; }否则,如果(状态=== sap.OfflineStore.ProgressState.FLUSH_REQUEST_QUEUE){ lead ="冲洗"; }否则,如果(状态=== sap.OfflineStore.ProgressState.DONE){ lead ="完成"; }其他{ sap.m.MessageToast.show(" unknown status in progressCallback"); } sap.m.MessageToast.show(lead +"已发送:" + progressStatus.bytes已发送+"已接收:" + progressStatus.bytesRecv +"文件大小:" + progressStatus.fileSize); }, appLogon:函数(appConfig){ var context = {}; var url = appConfig.fioriURL; if(url &&(url.indexOf(" https://")=== 0 || url.indexOf(" http://")=== 0)){ 如果(url.indexOf(" https://")=== 0){ https = true; url = url.substring(" https://" .length); }其他{ https = false; url = url.substring(" http://" .length); } 如果(url.indexOf("?")> = 0){ url = url.substring(0,url.indexOf("?")); } 如果(url.indexOf("/")> = 0){ url = url.split("/")[0]; } 如果(url.indexOf(":")> = 0){ context.serverHost = url.split(":")[0]; context.serverPort = url.split(":")[1]; } } //设置auth元素 如果(appConfig.auth){ context.auth = appConfig.auth; } //如果设置了communicatorId,则使用它与现有值兼容。 否则,请使用默认的" REST"。 //这样,登录核心不需要向服务器根URL发送ping请求,这将导致身份验证问题。 //当根URL使用与应用程序端点URL不同的auth方法时,就会发生这种情况,因为应用程序只能在其自己的端点URL上处理身份验证。 context.communicatorId = appConfig.communicatorId? appConfig.communicatorId:" REST"; //如果(上下文中的" serverHost"和上下文中的" serverPort"和&" https"中的上下文){ ////开始SCPms登录 //sap.hybrid.kapsel.doLogonInit(context,appConfig.appID,sap.hybrid.startApp); if(上下文中的" serverHost"和上下文中的" serverPort"和上下文中的" https"){ //开始SCPms登录 sap.hybrid.kapsel.doLogonInit(上下文,appConfig.appID,sap.hybrid.openStore); //不再需要在清单文件中修改数据源uri。 您可以使用 }其他{ console.error("登录的上下文数据不完整"); } },
在SAP Cloud Platform移动服务中,在配置选项卡中针对应用程序的脱机插件,我进行了以下配置。
但是当我使用SCPms中的Analytics(分析)> Network Traces(网络跟踪)进行检查时,仍然可以看到服务调用正在获取整个数据集,而不仅仅是增量。
请告诉我如何解决此问题并在我的应用程序中实现增量跟踪。
谢谢
Kunj Bihari Shukla
(67.7 kB)
嗨,
我有同样的问题。 找到任何解决方案了吗?
一周热门 更多>