SAP Fiori裏兩種鎖機制(lock)的實現

方法1: ETAG機制

SAP CRM Fiori採用了這種機制。html

看一個具體的例子來理解。假設我用用戶名Jerry選中了這個ID爲3456的Opportunity,點擊Edit按鈕以後:阿里雲

會觸發一個讀操做發到後臺:spa

後臺響應這個讀請求,而且在響應的頭部字段ETAG裏寫入了對應的值。htm

我有幾張阿里雲幸運券分享給你,用券購買或者升級阿里雲相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,立刻就要搶光了。get

這個26AE結尾的ETAG的值能夠由應用程序採起不一樣的邏輯計算,能夠直接採用請求節點對應的最後修改時間戳(Last Changed Timestamp), 例以下面這段ABAP代碼:產品

也能夠基於數據的完整內容計算一個HASH值出來做爲ETAG返回給Fiori UI:it

如今我用另外一個用戶,對同一個Opportunity作了修改,成功保存。而後再回到用戶Jerry的這個編輯窗口,此時Jerry根本不知道該Opportunity已經被另外一個用戶修改了。Jerry修改了Opportunity的Name字段,點擊保存按鈕。io

收到這個提示信息。ast

從Chrome Development Tool裏能觀察到,當Jerry點擊了保存按鈕後,發送到後臺的請求的頭部包含了一個If-Match字段,這個字段的值就是Jerry第一次點擊編輯按鈕時,後臺返回給Jerry的26AE結尾的ETAG字段。後臺

相關文章
相關標籤/搜索