天天看點

SAP Cloud for Customer(C4C)前台顯示的資料是如何從背景讀取的

以SAP Cloud for Customer SalesOrder的搜尋頁面為例:

SAP Cloud for Customer(C4C)前台顯示的資料是如何從背景讀取的

我們看到的頁面裡顯示的資料,仍然是C4C基于的SAP UI5實作裡,采用AJAX調用,從C4C背景系統讀取回前台的。

SAP Cloud for Customer(C4C)前台顯示的資料是如何從背景讀取的

将上圖高亮json請求儲存到本地細細檢視:

SAP Cloud for Customer(C4C)前台顯示的資料是如何從背景讀取的

這個json資料格式的結構反映了SAP C4C什麼樣的資料模型呢?

答案是SAP C4C UI模型的data model标簽頁裡看到的資料結構:

SAP Cloud for Customer(C4C)前台顯示的資料是如何從背景讀取的

上圖的字段和我們從Chrome開發者工具裡觀察到的JSON data model的字段,具有一一對應的關系:

SAP Cloud for Customer(C4C)前台顯示的資料是如何從背景讀取的

那麼我們在UI上看到的Sales Order 表格裡顯示的資料,存儲在json 模型裡什麼地方呢?

首先在data model标簽頁裡,得知UI上的資料顯示,來自BO CustomerOrder:

SAP Cloud for Customer(C4C)前台顯示的資料是如何從背景讀取的

而json資料裡的CustomerOrder,分為三部分:

FieldCatalog

Elements

Header

SAP Cloud for Customer(C4C)前台顯示的資料是如何從背景讀取的

FieldCatalog包含了CustomerOrder這個BO每個字段的索引号:

SAP Cloud for Customer(C4C)前台顯示的資料是如何從背景讀取的

比如索引19代表UUID字段。

Elements部分的結構,包含了SAP C4C UI上顯示的實際資料。

SAP Cloud for Customer(C4C)前台顯示的資料是如何從背景讀取的

SAP Cloud for Customer UI上的資料采取分頁顯示,總共281條sales order,分10頁顯示,每頁顯示30條資料:

SAP Cloud for Customer(C4C)前台顯示的資料是如何從背景讀取的

索引19代表的字段正是UUID,采取索引值的設計,避免了直接使用字段名來描述每條記錄的key-value,減小了最後從背景傳遞到前台的json資料尺寸:

SAP Cloud for Customer(C4C)前台顯示的資料是如何從背景讀取的