中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

SAPFiori里兩種鎖機制是怎么實現(xiàn)-創(chuàng)新互聯(lián)

這期內(nèi)容當中小編將會給大家?guī)碛嘘PSAP Fiori里兩種鎖機制是怎么實現(xiàn),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設,景泰企業(yè)網(wǎng)站建設,景泰品牌網(wǎng)站建設,網(wǎng)站定制,景泰網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,景泰網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

方法1: ETAG機制

SAP CRM Fiori采用了這種機制。

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

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

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

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

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

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

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

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

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

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

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

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

收到這個提示信息。

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

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

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

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

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

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

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

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

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

打開一個Material,點擊Edit:

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

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

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

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

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

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

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

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

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

SAP Fiori里兩種鎖機制是怎么實現(xiàn)

上述就是小編為大家分享的SAP Fiori里兩種鎖機制是怎么實現(xiàn)了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道。

本文標題:SAPFiori里兩種鎖機制是怎么實現(xiàn)-創(chuàng)新互聯(lián)
文章分享:http://www.rwnh.cn/article16/cegegg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、移動網(wǎng)站建設、品牌網(wǎng)站設計、網(wǎng)站內(nèi)鏈、網(wǎng)站策劃網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設
花垣县| 房山区| 镇原县| 广饶县| 策勒县| 内江市| 龙里县| 青州市| 海城市| 晋江市| 遵义市| 通许县| 平安县| 常德市| 嘉善县| 黔江区| 嘉峪关市| 尼玛县| 调兵山市| 仪陇县| 扎赉特旗| 疏勒县| 乐山市| 天峻县| 东辽县| 林州市| 静乐县| 乌海市| 清原| 旺苍县| 石嘴山市| 乾安县| 海原县| 虞城县| 安庆市| 长治市| 清原| 金乡县| 潮安县| 芦山县| 永州市|