本篇內(nèi)容主要講解“怎么在SAP Cloud for Customer自定義BO中創(chuàng)建訪問控制”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么在SAP Cloud for Customer自定義BO中創(chuàng)建訪問控制”吧!
創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!專注中小微企業(yè)官網(wǎng)定制,網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。
RelevantForAccessControl
AccessControlContext
每一個(gè)業(yè)務(wù)對象(BO),只能存在唯一一個(gè)訪問控制.
與之關(guān)聯(lián)的源節(jié)點(diǎn)必需是業(yè)務(wù)對象(BO)的根(Root)節(jié)點(diǎn)
對于RelevantForAccessControl,它所關(guān)聯(lián)的節(jié)點(diǎn)也必須是根節(jié)點(diǎn)(Root).
對于RelevantForAccessControl,它所關(guān)聯(lián)的節(jié)點(diǎn),必須存在訪問控制.查看方法可以進(jìn)studio中的Repository Explorer,點(diǎn)擊對象查看.在業(yè)務(wù)對象(BO)文檔中的Supported Access Contexts中查看.
對于AccessControlContext.,它是通過UUID做訪問控制的,所以定義的元素必定要與UUID相關(guān).
如何創(chuàng)建BO我們這里不再論述, 這編文章重點(diǎn)講解的是C4C中的控制的運(yùn)行原理.
這個(gè)關(guān)鍵詞的語法是
[RelevantForAccessControl] association toBusinessPartner to BusinessPartner;
這個(gè)關(guān)鍵詞的語法是
[AccessControlContext (Employee)] element UID : UUID; [AccessControlContext (Employee)] association ToEmployee to AP.FO.BusinessPartner.Global:Employee using UUID ;
下面我們以AccessControlContext為例,看看C4C的訪問控制是如何動作的.
第一步,在我們創(chuàng)建的BO中添加訪問控制字段
[AccessControlContext(SalesOrganization)] association toOrganisationalUnit to OrganisationalUnit using UUID;
在BeforeSave中把上面訪問控制字段的值添加上.
激活并生成屏幕
第二步..打開WCView屏幕文件,打開屬性面板
更改AccessContextCode屬性為9001-PDI:SalesOrganisation
這步非常重要,而且必須是訪問控制字段相對應(yīng)的訪問控制代碼
下面是個(gè)人收集的訪問控制字段與訪問控制代碼表
如果這一步設(shè)置錯(cuò)誤,訪問控制不會生效,詳細(xì)我會在后面說.
第三步.更改WCView下面包括的子屏幕的訪問權(quán)限,例如(QC,OWL,TI)
打開其中的Access Controlled Business Object
把Unrestricted Access設(shè)置為False
這一步也是非常重要,如果不把Unrestricted Access設(shè)置為False的話,屏幕中的字段是不會繼承WCView中設(shè)置的訪問控制屬性的.
第四步.更改OWL頁面中的Query,讓他綁定帶有SAP_AccessControlList的Query
QueryByElements或者自定義的Query都可以.
做完以上部署后,系統(tǒng)就能使訪問控制生效了,之后要做的事情就是把WCView分配給角色,然后設(shè)置訪問控制權(quán)限.
當(dāng)我們在Business Object中創(chuàng)建完訪問控制字段并激活后
系統(tǒng)會給該BO增加一個(gè)新的Dependent Node
AccessControlList中包含下面字段
上圖來自SAP社區(qū)博客Implementing Access Control on Custom Business Objects。
其中最重要的兩個(gè)字段是ACCESS_CONTEXT_CODE和OBJECT_UUID-CONTENT
ACCESS_CONTEXT_CODE中儲存了該BO數(shù)據(jù)的訪問控制代碼
OBJECT_UUID-CONTENT中儲存了該BO數(shù)據(jù)的訪問控制內(nèi)容
當(dāng)我們保存時(shí), AccessControlContext中關(guān)聯(lián)的值被填充上,然后系統(tǒng)會把關(guān)聯(lián)中的UUID值保存到SAP_AccessControlList中的OBJECT_UUID-CONTENT, AccessControlContext括號內(nèi)的對象會轉(zhuǎn)化為CODE,存放到SAP_AccessControlList中的ACCESS_CONTEXT_CODE.
轉(zhuǎn)化的CODE是根據(jù)上表中的值來轉(zhuǎn)化的.所以上在第二部的WCView中的AccessContextCode值不能亂選.不然對不上的話,訪問控制是不會生效的.
當(dāng)我們在系統(tǒng)中為用戶分配訪問權(quán)限時(shí),系統(tǒng)會為每個(gè)用戶訪問每個(gè)業(yè)務(wù)對象生成一個(gè)表
只有當(dāng)用戶的訪問權(quán)限中的數(shù)據(jù)與BO中的SAP_AccessControlList中的OBJECT_UUID-CONTENT匹配,用戶才能看到該條數(shù)據(jù).
如果我們在系統(tǒng)中創(chuàng)建了多個(gè)訪問控制字段,系統(tǒng)只會以最后一條訪問控制字段
例如這里,有兩個(gè)訪問控制字段,一個(gè)是Employee(1010),另一個(gè)是SalesOrganisation(9001),當(dāng)出現(xiàn)多個(gè)訪問控制字段時(shí),系統(tǒng)只會以最后出現(xiàn)的訪問控制字段為主.
別忘了設(shè)置其它相關(guān)的屏幕(QC,TI,QAF,OWL),不然這些屏幕就不受訪問控制字段影響了,會看到系統(tǒng)中所有數(shù)據(jù).
假設(shè)變更了訪問控制類型后,那么之前設(shè)置的訪問控制字段是不受新的訪問控制類型影響的,解決方法是進(jìn)去變更之前的數(shù)據(jù)中更改任何數(shù)據(jù),然后保存.
PDI USER賬號是個(gè)神奇的賬號,他是不會受到ACL影響的唯一賬號,所以如果遇到ACL的一些問題,不防試試使用PDI USER去測試一下.
到此,相信大家對“怎么在SAP Cloud for Customer自定義BO中創(chuàng)建訪問控制”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!