C4C和CRM裡獲取當前登入使用者分配的Organization Unit資訊
C4C
如何檢視某個使用者分配的組織單元ID:
在Employee的Organization Data區域內看到分配的組織名稱,如下圖紅色下劃線所示:
現在的需求就是使用ABSL獲取當前登入使用者分配的Organization Unit資訊,例如用WANGJERRY37登入,則取出下圖顯示的Department name PMLS:
具體實現:新建一個custom BO,使用欄位DepartmentName儲存這個待取的值:
然後建立AfterLoading script file,使用如下程式碼:
import ABSL; import AP.PC.IdentityManagement.Global; import AP.FO.BusinessPartner.Global; var queryByIdentityUUID = Identity.QueryByElements; var queryByIdentityUUIDParameter = queryByIdentityUUID.CreateSelectionParams(); var queryByEmployeeBPUUID = Employee.QueryByIdentification; var queryByEmployeeBPUUIDParameter = queryByEmployeeBPUUID.CreateSelectionParams(); if ( this.DepartmentName.IsInitial()){ var id = Context.GetCurrentIdentityUUID().content;
queryByIdentityUUIDParameter.Add( queryByIdentityUUID.UUID.content, "I", "EQ", id.ToString() ); var result = queryByIdentityUUID.Execute(queryByIdentityUUIDParameter); var first = result.GetFirst(); // points to identity instance var person = first.Person; var bpUUId = person.UUID.content;
queryByEmployeeBPUUIDParameter.Add( queryByEmployeeBPUUID.UUID.content, "I", "EQ", bpUUId.ToString()); var employeeQueryResult = queryByEmployeeBPUUID.Execute(queryByEmployeeBPUUIDParameter); var EmployeeQueryResultCurrent = employeeQueryResult.GetFirst(); var assignedOrg = EmployeeQueryResultCurrent.OrganisationalUnitAssignment.GetFirst(); var org = assignedOrg.ToRoot; // readOnly in AfterLoading event this.DepartmentName = org.NameAndAddress.AddressSnapshot.NameSuitableForLogonLanguage.GetFirst().Name.SecondLineName;
}
CRM
假設Jerry Wang分配的Organization Unit ID為50000732,使用下列report列印出這個ID:
PARAMETERS: id TYPE but000-partner OBLIGATORY DEFAULT '4031140'.
DATA: lo_core TYPE REF TO cl_crm_bol_core,
lo_collection TYPE REF TO if_bol_entity_col,
lo_root_entity TYPE REF TO cl_crm_bol_entity,
lv_query_name TYPE crmt_ext_obj_name,
lt_selection_parameter TYPE genilt_selection_parameter_tab,
ls_selection_parameter TYPE genilt_selection_parameter,
ls_query_parameters TYPE genilt_query_parameters,
lv_size TYPE i.
START-OF-SELECTION.
ls_selection_parameter-attr_name = 'PARTNER'.
ls_selection_parameter-option = 'EQ'.
ls_selection_parameter-sign = 'I'.
ls_selection_parameter-low = id.
APPEND ls_selection_parameter TO lt_selection_parameter.
ls_query_parameters-max_hits = 1. lo_core = cl_crm_bol_core=>get_instance( ).
lo_core->load_component_set( 'PROD_ALL' ).
lv_query_name = 'BuilEmpAdvancedSearch'.
lo_collection = lo_core->dquery(
iv_query_name = lv_query_name
it_selection_parameters = lt_selection_parameter
is_query_parameters = ls_query_parameters ).
DATA(lo_result) = lo_collection->get_first( ).
ASSERT lo_result IS NOT INITIAL.
WRITE: / 'Org unit id: ', lo_result->get_property_as_string( 'ORGEH' ) COLOR COL_NEGATIVE.
最終呼叫的是這個function module:
要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2154192/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring Security - 獲取當前登入使用者的詳細資訊Spring
- 如何查詢當前SAP使用者所屬的組織單元(organization unit)
- 企業微信登入獲取使用者資訊
- Linux 下檢視系統當前登入使用者資訊Linux
- php 獲取當前域名和當前協議PHP協議
- Yii2 獲取當前請求的路由資訊路由
- 根據微信code獲取換取使用者登入態資訊
- 微信小程式授權登入獲取使用者資訊微信小程式
- $request 請求方法 獲取 API 的當前使用者API
- js_原生js獲取當前的使用者ipJS
- JavaScript 獲取當前月份JavaScript
- 獲取當前時間
- SAP CRM WebUI, CRM Fiori和C4C裡的Direct NavigationWebUINavigation
- 獲取當前修改的行記錄資料
- JVM 如何獲取當前容器的資源限制?JVM
- 如何檢視CRM WebUI,C4C和Hybris裡的頁面技術資訊WebUI
- 如何用js獲取當前時間和ip地址以及當前城市JS
- 百度地圖JavaScript API獲取使用者當前經緯度並獲取使用者當前詳細地理位置地圖JavaScriptAPI
- ThinkPHP5-微信小程式獲取使用者授權登入資訊PHP微信小程式
- 檢視SAP CRM和C4C的UI technical資訊UI
- 獲取當前頁面的topViewControllerViewController
- Java獲取當前星期幾Java
- mybatis獲取當前時間MyBatis
- Flutter 小知識,Key的使用(獲取當前點選Widget位置/獲取當前Widget大小)Flutter
- 獲取當前Tomcat例項的埠Tomcat
- 獲取當前時間往前的日期
- Spark獲取當前分割槽的partitionIdSpark
- 獲取所有域使用者的登陸歷史資訊指令碼指令碼
- App 第三方登入獲取使用者資訊 支付寶登入後端程式碼參考APP後端
- [提問交流]onethink框架,怎麼獲取當前使用者框架
- 獲取 CPU資訊,並透過登錄檔寫入
- SAP C4C裡如何實現Sales Unit和Seller的自動determination
- 修改環境變數顯示當前登陸使用者的相關資訊變數
- [系列] Go - 基於 GORM 獲取當前請求所執行的 SQL 資訊GoORMSQL
- 如何在CRM和C4C中用程式碼判斷當前是否處於configuration模式模式
- python 如何獲取當前時間Python
- 用js獲取當前月份的天數JS
- js獲取當前的具體時間JS