물타기 2010. 12. 1. 13:28

  • Create Date   : 2010-12-01
  • Change Date : 2010-12-01

잡담 -ㅂ-;
스키장 시즌이 왔다!
에구궁 바로 가고 싶지만 스케쥴이 말을 안 듣는구먼~


코스트센터 그룹 (Cost Center Group)을 가져오는 방법

T-CODE : KSH3 에서 조회 되는 데이터를 가져오게 됨.


펑션으로 가져오는 방법 샘플


  FORM SELECT_HIERARCHY .

  DATA : L_SETID   LIKE SETHIER-SETID,
         LT_NODES  TYPE GSETH_NODE_TAB WITH HEADER LINE,
         LT_VALUES TYPE GSETH_VAL_TAB WITH HEADER LINE,
         L_INFO    LIKE GRPHINFO,
         L_OVERWRITE  LIKE  SY-DATAR.

  DATA : L_SETID1  LIKE GRPVALUES-SETID.

  CONCATENATE C_KCLASS C_KOKRS C_GROUP INTO L_SETID.

* 참고 : KSH3 TCODE 에서 조회 가능함, 조회되는 데이터를 가져오는 FUNCTION

  CALL FUNCTION 'K_HIERARCHY_TABLES_READ'
    EXPORTING
      E_CLASS                     = C_KCLASS
      E_SETID                     = L_SETID    "클래스+관리회계영역+그룹명
      E_KOKRS                     = C_KOKRS    "관리회계영역
      E_MANDT                     = SY-MANDT
    TABLES
      T_NODES                     = LT_NODES
      T_VALUES                    = LT_VALUES
    CHANGING
      C_INFO                      = L_INFO
      C_OVERWRITE                 = L_OVERWRITE
    EXCEPTIONS
      NO_CONTROLLING_AREA         = 1
      NO_CHART_OF_ACCOUNT         = 2
      DIFFERENT_CONTROLLING_AREAS = 3
      DIFFERENT_CHART_OF_ACCOUNTS = 4
      SET_NOT_FOUND               = 5
      ILLEGAL_FIELD_REPLACEMENT   = 6
      ILLEGAL_TABLE_REPLACEMENT   = 7
      FM_RAISE                    = 8
      CONVERT_ERROR               = 9
      NO_OVERWRITE_STANDARD_HIER  = 10
      NO_BUKRS_FOR_KOKRS          = 11
      OTHERS                      = 12.

  IF SY-SUBRC = 0.
    GT_NODES[]  = LT_NODES[].
    GT_VALUES[] = LT_VALUES[].


* 아래 로직에서 레벨 1 그룹과 코스트 센터를 맵핑할 수 있도록 구성함.
* 레벨 2 그룹으로 찾아서 엮음.

    LOOP AT GT_NODES.
      CLEAR GT_GROUP.
      IF GT_NODES-HLEVEL = 1.
        L_SETID1 = GT_NODES-SETID.
        CONTINUE.
      ELSEIF GT_NODES-HLEVEL = 2.  "현재 설정은 2단계까지 되어 있음.
        GT_GROUP-SETID1   = L_SETID1.
        GT_GROUP-SETID2   = GT_NODES-SETID.
        GT_GROUP-DESCRIPT = GT_NODES-DESCRIPT.

        "코스트센터
        LOOP AT GT_VALUES WHERE SETID = GT_NODES-SETID.
          GT_GROUP-VFROM = GT_VALUES-VFROM.
          APPEND GT_GROUP.
        ENDLOOP.
      ENDIF.
    ENDLOOP.

  ENDIF.

ENDFORM.                    " SELECT_HIERARCHY