成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

SAP Fiori里兩種鎖機制(lock)的實現(xiàn)

ZoomQuiet / 1979人閱讀

摘要:方法機制采用了這種機制。然后再回到用戶的這個編輯窗口,此時根本不知道該已經(jīng)被另一個用戶修改了。修改了的字段,點擊保存按鈕。收到這個提示信息。如果失敗,當前的保存操作將不會執(zhí)行。這種應用,消費的是基于加上實現(xiàn)的。這個加鎖邏輯調(diào)用的是傳統(tǒng)的。

方法1: ETAG機制

SAP CRM Fiori采用了這種機制。

看一個具體的例子來理解。假設我用用戶名Jerry選中了這個ID為3456的Opportunity,點擊Edit按鈕之后:

會觸發(fā)一個讀操作發(fā)到后臺:

后臺響應這個讀請求,并且在響應的頭部字段ETAG里寫入了對應的值。

這個26AE結(jié)尾的ETAG的值可以由應用程序采取不同的邏輯計算,可以直接采用請求節(jié)點對應的最后修改時間戳(Last Changed Timestamp), 例如下面這段ABAP代碼:

也可以基于數(shù)據(jù)的完整內(nèi)容計算一個HASH值出來作為ETAG返回給Fiori UI:

現(xiàn)在我用另一個用戶,對同一個Opportunity做了修改,成功保存。然后再回到用戶Jerry的這個編輯窗口,此時Jerry根本不知道該Opportunity已經(jīng)被另一個用戶修改了。Jerry修改了Opportunity的Name字段,點擊保存按鈕。

收到這個提示信息。

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

背后發(fā)生了什么事請呢?在框架的方法CHECK_BEFORE_MODIFICATION里,框架會把Fiori UI請求傳進來的ETAG和當前最新的ETAG做比較:

CHECK_BEFORE_MODIFICATION又會調(diào)用CHECK_ETAG_MATCH方法。如果check失敗,當前的保存操作將不會執(zhí)行。

方法2: 基于BOPF的鎖實現(xiàn)

這種方式用于S/4HANA的Fiori應用,比如Material application。這種Fiori應用,消費的OData service是基于CDS view 加上BOPF實現(xiàn)的。

打開一個Material,點擊Edit:

此時到ABAP后臺使用事務碼SM12能觀察到Material對應的數(shù)據(jù)庫表被鎖住了:

這是怎么實現(xiàn)的呢?

在S/4HANA后臺使用事務碼BOBX打開BO模型I_PRODUCTWD. 展開模型,雙擊EDIT,能看到這個Edit實現(xiàn)的類為CL_I_DR_PRODUCTWD.

雙擊這個class,它的方法LOCK_ACTIVE_DOCUMENT就是響應Fiori UI上編輯按鈕點擊的處理函數(shù)。

我們在這個方法里設置斷點,然后在UI上點擊編輯按鈕,斷點觸發(fā)。從調(diào)用棧即可清除觀察到編輯按鈕點擊之后,程序執(zhí)行流是如何從BOPF框架投遞到Material應用的枷鎖代碼。這個加鎖邏輯調(diào)用的是傳統(tǒng)的ABAP Enqueue function module。

要獲取更多Jerry的原創(chuàng)技術(shù)文章,請關(guān)注公眾號"汪子熙"或者掃描下面二維碼:

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/107353.html

相關(guān)文章

  • SAP OData編程指南

    摘要:目前被廣泛用于和的眾多應用中,以及和一些正在開發(fā)的新一代云產(chǎn)品中。年月時,我和德國一位負責的同事就這個話題在半小時的電話會議里產(chǎn)生了爭執(zhí)。德國同事看了之后,同意了我的意見。和微信集成系列教程這個系列教程里,和微信的交互,使用了,使用了。 OData(Open Data Protocol)協(xié)議是一個開放的工業(yè)標準,用于定義RESTFul API的設計和使用。我的文章標題前加上SAP的前綴...

    X1nFLY 評論0 收藏0
  • SAP OData編程指南

    摘要:目前被廣泛用于和的眾多應用中,以及和一些正在開發(fā)的新一代云產(chǎn)品中。年月時,我和德國一位負責的同事就這個話題在半小時的電話會議里產(chǎn)生了爭執(zhí)。德國同事看了之后,同意了我的意見。和微信集成系列教程這個系列教程里,和微信的交互,使用了,使用了。 OData(Open Data Protocol)協(xié)議是一個開放的工業(yè)標準,用于定義RESTFul API的設計和使用。我的文章標題前加上SAP的前綴...

    wanghui 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<