> S4HANA에서 ACDOCA로 고정자산명세서 만들기 Ver 2 <
기존에 작성한 내용에서 보완한 내용임.
https://gomtui.tistory.com/100
기존에는 ACDOCA-SLALITTYPE 필드를 활용하는 방법으로 작성을 했었는데
직접 구축을 해보니 SLALITTYPE 필드만으로는 어렵고 ANBWA(거래유형)도 필요했기에 보완함
우선 View는 2가지 방법으로 구성이 가능함
금액구분필드를 도메인의 Value Range를 활용하는 방법과 Check Box로 하는 방법이 있음
방법1
방법2
View 세팅 후 프로그램 로직은 아래와 같이 구성하면 됨
Query 한방으로도 가능하지만 너무 복잡해보이기에 Loop로 구성해봄
*- 자산정보.
SELECT BUKRS ANL1 ANLN2 AKTIV
INTO CORRESPONDING FIELDS OF TABLE @LT_ANLA
FROM ANLA
WHERE BUKRS EQ P_BUKRS
AND ANLN1 IN S_ANLN1.
*- 금액정보.
SELECT ANLN1 ANLN2 POPER ANBWA SLALITTYPE HSL GJAHR BELNR DOCLN
INTO CORRESPONDING FIELDS OF TABLE @LT_ACDOCA
FROM ACDOCA
WHERE RLDNR EQ '0L'
AND RBURKS EQ P_BUKRS
AND GJAHR EQ P_GJAHR
AND POPER LE P_POPER
AND ANLN1 IN S_ANLN1
AND KTOSL EQ 'ANL'. "- 자산거래만.
AND AFABE EQ '01'. "- 재무영역만.
*- 설정값(View).
SELECT *
INTO CORRESPONDING FIELDS OF TABLE @LT_VIEW
FROM Zxxxxx.
*- 금액계산.
LOOP AT LT_ACDOCA.
GT_LIST-ANLN1 = LT_ACDOCA-ANLN1.
GT_LIST-ANLN2 = LT_ACDOCA-ANLN2.
*- View에 없으면 Error.
READ TABLE LT_VIEW WITH KEY ANBWA = LT_ACDOCA-ANBWA
SLALITTYPE = LT_ACDOCA-SLALITTYPE.
IF SY-SUBRC NE 0.
MOVE-CORRESPONDING LT_ACDOCA TO GT_ERROR.
APPEND GT_ERROR.
CLEAR GT_ERROR.
CONTINUE.
ENDIF.
*-- 방법1.
CASE LT_VIEW-HSL_DIV.
WHEN '01'.
GT_LIST-HSL_01 = LT_ACDOCA-HSL. "- 예: 기초취득가액.
GT_LIST-HSL_21 = LT_ACDOCA-HSL. "- 예: 기초장부가액.
GT_LIST-HSL_41 = LT_ACDOCA-HSL. "- 예: 기말장부가액.
WHEN '02'.
GT_LIST-HSL_02 = LT_ACDOCA-HSL. "- 예: 기초상각누계액.
GT_LIST-HSL_81 = LT_ACDOCA-HSL. "- 예: 기초장부가액.
GT_LIST-HSL_41 = LT_ACDOCA-HSL. "- 예: 기말장부가액.
WHEN '03'.
GT_LIST-HSL_03 = LT_ACDOCA-HSL. "- 예: 당기취득가액증가.
GT_LIST-HSL_41 = LT_ACDOCA-HSL. "- 예: 기말장부가액.
ENDCASE.
*-- 방법2.
CASE 'X'.
WHEN LT_VIEW-HSL_DIV_01.
GT_LIST-HSL_01 = LT_ACDOCA-HSL. "- 예: 기초취득가액.
GT_LIST-HSL_21 = LT_ACDOCA-HSL. "- 예: 기초장부가액.
GT_LIST-HSL_41 = LT_ACDOCA-HSL. "- 예: 기말장부가액.
WHEN LT_VIEW-HSL_DIV_02.
GT_LIST-HSL_02 = LT_ACDOCA-HSL. "- 예: 기초상각누계액.
GT_LIST-HSL_81 = LT_ACDOCA-HSL. "- 예: 기초장부가액.
GT_LIST-HSL_41 = LT_ACDOCA-HSL. "- 예: 기말장부가액.
WHEN LT_VIEW-HSL_DIV_03.
GT_LIST-HSL_03 = LT_ACDOCA-HSL. "- 예: 당기취득가액증가.
GT_LIST-HSL_41 = LT_ACDOCA-HSL. "- 예: 기말장부가액.
ENDCASE.
COLLECT GT_LIST.
CLEAR GT_LIST.
ENDLOOP.
*- 자산정보채우기.
LOOP AT GT_LIST.
READ TABLE LT_ANLA WITH KEY ANLN1 = GT_LIST-ANLN1
ANLN2 = GT_LIST-ANLN2.
GT_LIST-AKTIV = LT_ANLA-AKTIV.
MODIFY GT_LIST.
ENDLOOP.
ANBWA와 SLALITTYPE의 조합의 경우 각 회사에 맞게 설정해야 함
내가 진행한 회사의 경우 아래와 같이 정리가 되었음
회사에 따라 다를 수도 있고 ANBWA와 SLALITTYPE의 조합만으로는 어려운 경우가 있을지도 모르겠음.
끝.