zoukankan      html  css  js  c++  java
  • 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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

  • 相关阅读:
    iOS很重要的 block回调
    怎样写具体设计文档
    ORM框架
    RapidXml用法
    【Android Training
    ORACLE触发器具体解释
    LeetCode 131 Palindrome Partitioning
    Git管理工具对照(GitBash、EGit、SourceTree)
    Android下将图片载入到内存中
    怎样破解邮箱password
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/8727523.html
Copyright © 2011-2022 走看看