ABAP 물타기/개발에 유용한 프로그램
Cost Center Group
물타기
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