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

注销發表於2020-03-22

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

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

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

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

最後的url如下:
https://my500.c4c.saphybriscl...$filter=SourceCode eq 'Z01'&$inlinecount=allpages

結果如下:

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

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

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

https://my500.c4c.saphybriscl...$count?$filter=SourceCode eq 'Z01'

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

第一頁的讀取請求:

https://my50.c4c.saphybrisclo...$filter=SourceCode eq ''&$orderby=CreatedOn desc&$top=20

20個Lead返回:

第二頁:即第21到第40個:
https://my50.c4c.saphybrisclo...$filter=SourceCode eq ''&$orderby=CreatedOn desc&$skip=20&$top=20
第三頁:即第41個到第60個
https://my500.c4c.saphybriscl...$filter=SourceCode eq ''&$orderby=CreatedOn desc&$skip=40&$top=20

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

相關文章