HCM-获取人员组织架构信息FUNC

FUNCTION zhr_fun_pa002.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(IV_PERNR) TYPE  PERNR_D
*"     VALUE(IV_DATUM) TYPE  DATUM DEFAULT SY-DATUM
*"  EXPORTING
*"     VALUE(ET_DATA) TYPE  ZHRPA_TT0002
*"----------------------------------------------------------------------
  DATA: p0001 TYPE p0001,
        p9101 TYPE p9101.

  DATA: lt_objec TYPE TABLE OF objec WITH HEADER LINE,
        lt_struc TYPE TABLE OF struc WITH HEADER LINE,
        it_struc TYPE TABLE OF struc WITH HEADER LINE.
  DATA: ls_data TYPE zhrpa_s0003.

  CLEAR p0001.
  SELECT SINGLE * INTO CORRESPONDING FIELDS OF p0001
    FROM pa0001
    WHERE pernr EQ iv_pernr
      AND begda LE iv_datum
      AND endda GE iv_datum.

  REFRESH lt_struc.
  REFRESH lt_objec.
  CALL FUNCTION 'RH_STRUC_GET'
    EXPORTING
      act_otype       'S'
      act_objid       = p0001-plans
      act_wegid       'S_UP'
      act_plvar       '01'
      act_begda       = iv_datum
      act_endda       = iv_datum
      authority_check ''
    TABLES
      result_objec    = lt_objec
      result_struc    = lt_struc
    EXCEPTIONS
      no_plvar_found  1
      no_entry_found  2
      OTHERS          3.

  REFRESH it_struc.
  it_struc[] = lt_struc[].
  SORT it_struc BY seqnr.

  SORT lt_struc BY otype objid.

  CLEAR et_data.
  LOOP AT lt_objec.
    CLEAR ls_data.
    MOVE-CORRESPONDING lt_objec TO ls_data.
****组织属性
    CLEAR p9101.
    SELECT SINGLE * INTO CORRESPONDING FIELDS OF p9101
      FROM hrp9101
      WHERE plvar EQ '01'
        AND otype EQ lt_objec-otype
        AND objid EQ lt_objec-objid
        AND istat EQ '1'
        AND begda LE iv_datum
        AND endda GE iv_datum.
    ls_data-orglv = p9101-orglv.
****排序码
    CLEAR lt_struc.
    READ TABLE lt_struc WITH KEY otype = lt_objec-otype
                                 objid = lt_objec-objid
                                 BINARY SEARCH.
    CLEAR it_struc.
    READ TABLE it_struc WITH KEY seqnr = lt_struc-pdown BINARY SEARCH.
    ls_data-priox = it_struc-vpriox.
    APPEND ls_data TO et_data.
  ENDLOOP.
ENDFUNCTION.

原文地址:https://www.cnblogs.com/eagle-dtq/p/13722536.html