> 선급비용 마스터 생성 (Manual Accrual) <
선급비용 마스터를 생성하는 로직을 만들어봄 (ECC 또는 S4HANA 초기버전)
DATA: LS_ASSIGN TYPE ACE_ASSIGNMENTS,
LT_ACCOUNT TYPE ACEDS_ACCOUNTS_T,
LS_ACCOUNT TYPE ACEDS_ACCOUNTS,
LV_EFFDATE TYPE ACE_EFFDATE,
LS_HEADER TYPE ACAC_OBJECT_HEADER_EXT,
LT_ITEMS TYPE ACEDS_ITEMS_T,
LS_ITEMS TYPE ACEDS_ITEMS,
LV_CREATED TYPE FLAG,
LT_RETURN TYPE BAPIRET2_T.
CLEAR: LS_ASSIGN, LS_ACCOUNT, LT_ACCOUNT[], LV_EFFDATE,
LS_HEADER, LS_ITEMS, LT_ITEMS[],
LV_CREATED, LT_RETURN[].
"-- 헤더데이터.
LS_HEADER-BUKRS = '1000'. "- 회사코드.
LS_HEADER-ACAC_OBJTYPE = 'INSU_001'. "- 발생오브젝트범주.
LS_HEADER-TEXT = 'TITLE'. "- 텍스트(명칭).
LS_HEADER-ACAC_RESPERSON = 'RESPERSON'. "- 책임자.
LS_HEADER-VALITY_FROM = '20260101'. "- 기간시작.
LS_HEADER-VALITY_TO = '20261231'. "- 기간종료.
"-- 기준일.
LV_EFFDATE = '20260101'.
"-- 계정지정.
LS_ASSIGN-BUS_AREA = '0001'. "- 사업영역.
LS_ASSIGN-COSTCENTER = '0000111111'. "- 코스트센터.
"-- 항목데이터.
LS_ITEMS-ACRTYPE = 'COSTSP'. "- 발생유형.
LS_ITEMS-ACCRULE = 'GAAP'. "- 회계기준.
LS_ITEMS-AMOUNT = 10000. "- 총금액.
LS_ITEMS-CURRENCY = 'KRW'. "- 통화.
LS_ITEMS-ACRMETHOD = 'LINEDAY'. "- 발생처리방법.
APPEND LS_ITEMS TO LT_ITEMS.
CLEAR LS_ITEMS.
"-- 계정설정.
LS_ACCOUNT-ACRTYPE = 'COSTSP'. "- 발생유형.
LS_ACCOUNT-ACCRULE = 'GAAP'. "- 회계기준.
LS_ACCOUNT-PER_START_ACCNT = '0011052020'. "- 선급비용계정.
LS_ACCOUNT-PER_TARGET_ACCNT = '0061116140'. "- 비용계정.
LS_ACCOUNT-PER_DOC_TYPE = 'SA'. "- 전표유형.
APPEND LS_ACCOUNT TO LT_ACCOUNT.
CLEAR LS_ACCOUNT.
"-- Object 생성.
CALL FUNCTION 'ACAC_OBJECT_MODIFY_EXT'
EXPORTING
IS_ASSIGNMENTS = LS_ASSIGN
IT_ACCOUNTS = LT_ACCOUNT
ID_EFFDATE = LV_EFFDATE
ID_TESTRUN = ''
IMPORTING
ED_DATA_CREATED = LV_CREATED
ET_RETURN = LT_RETURN
CHANGING
CS_OBJECT = LS_HEADER
CT_OBJECT_ITEMS = LT_ITEMS.
IF LV_CREATED = 'X'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
MESSAGE S000 WITH 'Success'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
READ TABLE LT_RETURN INTO DATA(LS_RETURN) WITH KEY TYPE = 'E'.
MESSAGE S000 WITH LS_RETURN-MESSAGE DISPLAY LIKE 'E'.
ENDIF.
끝.


