您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么在SAP Cloud for Customer自定義BO中創建訪問控制”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么在SAP Cloud for Customer自定義BO中創建訪問控制”吧!
RelevantForAccessControl
AccessControlContext
每一個業務對象(BO),只能存在唯一一個訪問控制.
與之關聯的源節點必需是業務對象(BO)的根(Root)節點
對于RelevantForAccessControl,它所關聯的節點也必須是根節點(Root).
對于RelevantForAccessControl,它所關聯的節點,必須存在訪問控制.查看方法可以進studio中的Repository Explorer,點擊對象查看.在業務對象(BO)文檔中的Supported Access Contexts中查看.
對于AccessControlContext.,它是通過UUID做訪問控制的,所以定義的元素必定要與UUID相關.
如何創建BO我們這里不再論述, 這編文章重點講解的是C4C中的控制的運行原理.
這個關鍵詞的語法是
[RelevantForAccessControl] association toBusinessPartner to BusinessPartner;
這個關鍵詞的語法是
[AccessControlContext (Employee)] element UID : UUID; [AccessControlContext (Employee)] association ToEmployee to AP.FO.BusinessPartner.Global:Employee using UUID ;
下面我們以AccessControlContext為例,看看C4C的訪問控制是如何動作的.
第一步,在我們創建的BO中添加訪問控制字段
[AccessControlContext(SalesOrganization)] association toOrganisationalUnit to OrganisationalUnit using UUID;
在BeforeSave中把上面訪問控制字段的值添加上.
激活并生成屏幕
第二步..打開WCView屏幕文件,打開屬性面板
更改AccessContextCode屬性為9001-PDI:SalesOrganisation
這步非常重要,而且必須是訪問控制字段相對應的訪問控制代碼
下面是個人收集的訪問控制字段與訪問控制代碼表
如果這一步設置錯誤,訪問控制不會生效,詳細我會在后面說.
第三步.更改WCView下面包括的子屏幕的訪問權限,例如(QC,OWL,TI)
打開其中的Access Controlled Business Object
把Unrestricted Access設置為False
這一步也是非常重要,如果不把Unrestricted Access設置為False的話,屏幕中的字段是不會繼承WCView中設置的訪問控制屬性的.
第四步.更改OWL頁面中的Query,讓他綁定帶有SAP_AccessControlList的Query
QueryByElements或者自定義的Query都可以.
做完以上部署后,系統就能使訪問控制生效了,之后要做的事情就是把WCView分配給角色,然后設置訪問控制權限.
當我們在Business Object中創建完訪問控制字段并激活后
系統會給該BO增加一個新的Dependent Node
AccessControlList中包含下面字段
上圖來自SAP社區博客Implementing Access Control on Custom Business Objects。
其中最重要的兩個字段是ACCESS_CONTEXT_CODE和OBJECT_UUID-CONTENT
ACCESS_CONTEXT_CODE中儲存了該BO數據的訪問控制代碼
OBJECT_UUID-CONTENT中儲存了該BO數據的訪問控制內容
當我們保存時, AccessControlContext中關聯的值被填充上,然后系統會把關聯中的UUID值保存到SAP_AccessControlList中的OBJECT_UUID-CONTENT, AccessControlContext括號內的對象會轉化為CODE,存放到SAP_AccessControlList中的ACCESS_CONTEXT_CODE.
轉化的CODE是根據上表中的值來轉化的.所以上在第二部的WCView中的AccessContextCode值不能亂選.不然對不上的話,訪問控制是不會生效的.
當我們在系統中為用戶分配訪問權限時,系統會為每個用戶訪問每個業務對象生成一個表
只有當用戶的訪問權限中的數據與BO中的SAP_AccessControlList中的OBJECT_UUID-CONTENT匹配,用戶才能看到該條數據.
如果我們在系統中創建了多個訪問控制字段,系統只會以最后一條訪問控制字段
例如這里,有兩個訪問控制字段,一個是Employee(1010),另一個是SalesOrganisation(9001),當出現多個訪問控制字段時,系統只會以最后出現的訪問控制字段為主.
別忘了設置其它相關的屏幕(QC,TI,QAF,OWL),不然這些屏幕就不受訪問控制字段影響了,會看到系統中所有數據.
假設變更了訪問控制類型后,那么之前設置的訪問控制字段是不受新的訪問控制類型影響的,解決方法是進去變更之前的數據中更改任何數據,然后保存.
PDI USER賬號是個神奇的賬號,他是不會受到ACL影響的唯一賬號,所以如果遇到ACL的一些問題,不防試試使用PDI USER去測試一下.
到此,相信大家對“怎么在SAP Cloud for Customer自定義BO中創建訪問控制”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。