SAP C4C OData服務的filter,客戶端分頁和排序的使用方式

i042416發表於2020-03-22

假設系統裡已經有許多的Lead歷史資料,而我們正在進行的微信小程式和C4C整合的專案裡,又建立了許多新的Lead資料。如何將這些新的在微信小程式裡呼叫OData服務建立的Lead資料同老的歷史資料做區分呢?

(1) 在C4C Sales Lead頁面裡,通過Source欄位來標明Lead的來源。

SAP C4C OData服務的filter,客戶端分頁和排序的使用方式

對於AI Card專案來說,所有的Lead經由微信小程式建立,因此呼叫OData API時,SourceCode指定為“Wechat Social Channel”的代號:Z01

SAP C4C OData服務的filter,客戶端分頁和排序的使用方式

這樣,在讀取操作時,使用$filter=SourceCode eq 'Z01'操作,能取出系統所有SourceCode為Z01的lead. 再使用$inlinecount=allpages,能一併返回SourceCode為Z01的Lead一共有多少個。

最後的url如下:

my50.c4c.saphybriscloud.cn $filter=SourceCode eq 'Z01'&$inlinecount=allpages

結果如下:

SAP C4C OData服務的filter,客戶端分頁和排序的使用方式

截至2020年3月20日12:23PM為止,在系統上經由微信小程式建立,Source Code欄位為Z01的Lead總共有6個。

SAP C4C OData服務的filter,客戶端分頁和排序的使用方式

如果系統裡滿足這個條件的Lead越來越多,呼叫OData服務後,會造成規模巨大的資料量從伺服器傳送往消費端,所以建議使用客戶端分頁方式讀取資料。

首先獲取滿足SourceCode為Z01的lead個數:

my50.c4c.saphybriscloud.cn $count?$filter=SourceCode eq 'Z01'

SAP C4C OData服務的filter,客戶端分頁和排序的使用方式

假設返回結果數為1000, 我們可以在客戶端進行分頁讀取,每頁讀取的個數可以客戶端自行決定,比如每次讀取20個。

第一頁的讀取請求:

my50.c4c.saphybriscloud.cn $filter=SourceCode eq ''&$orderby=CreatedOn desc&$top=20

20個Lead返回:

SAP C4C OData服務的filter,客戶端分頁和排序的使用方式

第二頁:即第21到第40個:

my500.c4c.saphybriscloud.cn $filter=SourceCode eq ''&$orderby=CreatedOn desc&$skip=20&$top=20

第三頁:即第41個到第60個

my500.c4c.saphybriscloud.cn $filter=SourceCode eq ''&$orderby=CreatedOn desc&$skip=40&$top=20


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2681899/,如需轉載,請註明出處,否則將追究法律責任。

相關文章