SAP OData请求是如何通过OData Plugin路由到OData Offline Data Store的

简介: SAP OData请求是如何通过OData Plugin路由到OData Offline Data Store的

I am reading Offline OData plugin introduction from SAP Help, There is one sentence “OData requests made against this plugin use the available open offline stores.“, and I am very curious about how this is done. As a result I had a look at my offline application project. I have found a plugin.xml file in folder kapsel-plugin-odata.image.pngnside this xml another two JavaScript files are mentioned. According to plugin.xml specification provided in Cordova website, the window.sap.OData and window.sap.OfflineStore are so called JavaScript interfaces which can marshal a request from the WebView ( container of Offline application) to device native API.image.pngSo open OData.js:image.pngkey implementation of OData.js and OfflineStore.js

(1) define a custom http request which will delegate the OData request to device native API.

A new httpClient is defined. Inside its request method, the requested url is compared against each offline supported url configured in array openStores. If matched, a flag handle is set as true.image.pngimage.pngodata.request will call Cordova library’s exec method to access offline data store.image.png(2) configure this custom http client as default client. As a result every time a new OData request is in, by default this custom http client is called so offline data store is always tried to access first.image.png(3) In my application project all urls which are supported for Offline access scenario are defined in manifest.json:

image.pngIn the runtime, this json object will be passed as input parameter for OData offline store implemented by function creatimage.pngBy looking at implementation of OfflineStore(), we can know that this constructor does not perform Offline store initialization, but just parse every url specified by properties argument.


Instead, OfflineStore.open must be called and only after that, the offline store will then be available for mobile device to use.image.png






相关文章
|
6月前
|
存储 JavaScript 前端开发
SAP UI5 OData 请求 url 中的参数 sap-value-list=none
SAP UI5 OData 请求 url 中的参数 sap-value-list=none
31 0
|
7月前
SAP ABAP Gateway Client 里 OData 测试的 PUT, PATCH, MERGE 请求有什么区别
SAP ABAP Gateway Client 里 OData 测试的 PUT, PATCH, MERGE 请求有什么区别
85 2
|
7月前
在 Business Application Studio 里使用 SAP UI5 应用消费 OData 的 Create 和 Delete 操作
在 Business Application Studio 里使用 SAP UI5 应用消费 OData 的 Create 和 Delete 操作
31 0
|
7月前
|
XML 存储 缓存
关于 SAP UI5 OData V4 模型的 refresh 方法
关于 SAP UI5 OData V4 模型的 refresh 方法
36 0
SAP OData请求是如何通过OData Plugin路由到OData Offline Data Store的
SAP OData请求是如何通过OData Plugin路由到OData Offline Data Store的
SAP OData请求是如何通过OData Plugin路由到OData Offline Data Store的
OData Console in C4C and Gateway Client in CRM Fiori
C4C Work center Administrator->OData service explorer:
168 0
OData Console in C4C and Gateway Client in CRM Fiori
|
XML 数据格式
SAP OData Gateway里uri type为metadata的请求处理逻辑
Created by Jerry Wang, last modified on Oct 22, 2014 metadata请求入口:
87 0
SAP OData Gateway里uri type为metadata的请求处理逻辑
|
Android开发
SAP OData offline store在Android平台的技术实现
SAP OData offline store在Android平台的技术实现
105 0
SAP OData offline store在Android平台的技术实现
ABAP gateway里OData url里的select操作是如何在后端实现的
Created by Jerry Wang, last modified on Sep 22, 2015 使用如下url 进行测试: https://:4080/sap/opu/odata/sap/CRM_OPPORTUNITY/Opportunities?KaTeX parse error: Expected 'EOF', got '&' at position 22: …=Id,Description&̲top=1 返回结果只包含request的id和description:
79 0
ABAP gateway里OData url里的select操作是如何在后端实现的
|
缓存
SAP Fiori OData gateway 和后台 ABAP 系统的双缓存表(cache table)设计
SAP Fiori OData gateway 和后台 ABAP 系统的双缓存表(cache table)设计
136 0
SAP Fiori OData gateway 和后台 ABAP 系统的双缓存表(cache table)设计