> (ABAP-FI) SUBMIT FAGLB03 on S4HANA <
S4HANA에서 FAGLB03을 SUBMIT하는 로직
DATA: LT_TRANGE TYPE RSDS_TRANGE,
LS_RANGE TYPE RSDS_RANGE,
LS_FRANGE TYPE RSDS_FRANGE,
LS_SELOPT TYPE RSDSSELOPT,
LT_TEXPR TYPE RSDS_TEXPR,
LS_DYNS TYPE RSDS_TYPE.
RANGES: LR_RACCT FOR FAGLFLEXT-RACCT,
LR_RBUKRS FOR BKPF-BUKRS.
*-- G/L계정.
LR_RACCT-SIGN = 'I'.
LR_RACCT-OPTION = 'EQ'.
LR_RACCT-LOW = PV_HKONT.
APPEND LR_RACCT.
*-- 회사코드.
LR_RBUKRS-SIGN = 'I'.
LR_RBUKRS-OPTION = 'EQ'.
LR_RBUKRS-LOW = PV_BUKRS.
APPEND LR_RBUKRS.
*-- 동적선택(임의선택).
IF PV_RFAREA IS NOT INITIAL.
*-- 대상테이블.
LS_RANGE-TABLENAME = 'ACDOCA'.
*-- 대상필드.
LS_FRANGE-FIELDNAME = 'RFAREA'.
*-- 필드조건.
LS_SELOPT-SIGN = 'I'.
LS_SELOPT-OPTION = 'EQ'.
LS_SELOPT-LOW = PV_RFAREA.
APPEND LS_SELOPT TO LS_FRANGE-SELOPT_T.
CLEAR LS_SELOPT.
*-- 1번째 필드를 조건에 적용.
APPEND LS_FRANGE TO LS_RANGE-FRANGE_T.
*-- 2번째 필드.
CLEAR LS_FRANGE.
LS_FRANGE-FIELDNAME = '...'.
LS_SELOPT-SIGN = '...'.
....
APPEND LS_SELOPT TO LS_FRANGE-SELOPT_T.
*-- 2번째 필드를 조건에 적용.
APPEND LS_FRANGE TO LS_RANGE-FRANGE_T.
*-- 1번째 테이블을 조건에 적용.
APPEND LS_RANGE TO LT_TRANGE.
*-- 2번째 테이블.
CLEAR LS_RANGE.
LS_RANGE-TABLENAME = '...'.
....
*-- 2번째 테이블을 조건에 적용.
APPEND LS_RANGE TO LT_TRANGE.
*-- 변환.
CALL FUNCTION 'FREE_SELECTIONS_RANGE_2_EX'
EXPORTING
FIELD_RANGES = LT_TRANGE
IMPORTING
EXPRESSIONS = LT_TEXPR.
*-- FAGLB03에 넘기기 위한 변수에 담기.
LS_DYNS-TEXPR = LT_TEXPR.
LS_DYNS-TRANGE = LT_TRANGE.
ENDIF.
SUBMIT FAGL_ACCOUNT_BALANCE
WITH RACCT IN LR_RACCT "-- G/L계정.
WITH RBUKRS IN LR_RBUKRS "-- 회사코드.
WITH RYEAR EQ PV_GJAHR "-- 회계연도.
WITH FS_DYNS EQ LS_DYNS "-- 동적선택.
AND RETURN.
끝.