본문 바로가기

ABAP

코스트센터 그룹, 원가요소 그룹 등 HIERARCHY 읽기(K_HIERARCHY_TABLES_READ)

반응형
  DATA: LV_CLASS  TYPE SETHIER-SETCLASS,
        LV_SETID  TYPE SETHIER-SETID,
        LT_VALUES TYPE GSETH_VAL_TAB.

  PERFORM READ_K_HIERARCHY_TABLES USING LV_CLASS LV_SETID P_KOKRS CHANGING LT_VALUES.

 

*&---------------------------------------------------------------------*
*& Form READ_K_HIERARCHY_TABLES
*&---------------------------------------------------------------------*
*& SET CLASS
*&  - 0101 : 코스트센터 그룹(SETID: 0101 + 관리회계 영역 + 코스트센터)
*&  - 0102 : 원가요소 그룹(SETID: 0102 + 계정과목표 + 원가요소)
*&  - 0103 : 오더 그룹(SETID: 0103 + 오더 그룹)
*&  - 0110 : WBS 그룹(SETID: 0110 + WBS 그룹)
*&---------------------------------------------------------------------*
FORM READ_K_HIERARCHY_TABLES  USING  PV_CLASS
                                     PV_SETID
                                     PV_KOKRS
                              CHANGING PT_VALUES TYPE GSETH_VAL_TAB.

  DATA: LT_NODES     TYPE GSETH_NODE_TAB,
        LV_INFO      TYPE GRPHINFO,
        LV_OVERWRITE TYPE SY-DATAR.

  CALL FUNCTION 'K_HIERARCHY_TABLES_READ'
    EXPORTING
      E_CLASS     = PV_CLASS
      E_SETID     = PV_SETID
      E_KOKRS     = PV_KOKRS
    TABLES
      T_NODES     = LT_NODES
      T_VALUES    = PT_VALUES
    CHANGING
      C_INFO      = LV_INFO
      C_OVERWRITE = LV_OVERWRITE.

ENDFORM.

 

주석 설명에 나와있듯이 SET CLASS는 특정 오브젝트를 의미하는데 보통 위의 요소들을 주로 사용한다. 

 

SET ID에 입력되어야 할 값은 SET CLASS마다 조금 다른데 보통 코스트센터의 경우

0101 + 관리회계 영역 + 코스트센터

이런식으로 값을 입력시켜서 넘겨준다. (다른 오브젝트들은 주석 참고)

  LV_SETID = |0101{ P_KOKRS }{ LV_KOSTL }|.

 

결과는 PT_VALUES에 반환되므로 프로그램에 맞게 수정하면 된다.

반응형