SAP/FI

(FI) S4HANA에서 ACDOCA로 고정자산명세서 만들기 Ver 2

Gomtui 2024. 10. 21. 16:41
728x90

 

> 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의 조합만으로는 어려운 경우가 있을지도 모르겠음.

 

끝.

 

 

반응형