(FI) 고정자산 잔존가액 확인 Function Module
> (FI) 고정자산 잔존가액 확인 Function Module <
자산 처분과 관련된 프로그램을 개발해야 하는데 여기저기 테이블에서 값을 가져와 계산하는게 귀찮아서 특정 시점의 잔존가액을 확인할 수 있는 Function Module이 있는지 찾아본 결과 알아낸 Function Module
FIAA_NBV_SHOW
아래와 같이 사용한다.
CALL FUNCTION 'FIAA_NBV_SHOW'
EXPORTING
I_BUKRS = C_BUKRS " 회사코드
I_AFABE = L_AFABE " 감가상각영역
I_BZDAT = L_BZDAT " 확인하고픈 시점
I_DIALOG = ''
I_ANLN1 = L_ANLN1 " 자산번호
I_ANLN2 = L_ANLN2 " 자산하위번호
IMPORTING
E_NBV = L_NBV " 잔존가액
EXCEPTIONS
BUKRS_NOT_DEFINED = 1
ASSET_NOT_DEFINED = 2
AREA_NOT_DEFINED = 3
BZDAT_MISSING = 4
NO_AUTHORITY = 5
AREA_NOT_VALID_FOR_ASSET = 6
INPUT_IS_INCOMPLETE = 7
BZDAT_PROBLEMS = 8
BZDAT_WRONG = 9
ERRORS_CALC_DETECTED = 10
AREA_IS_DERIVED = 11.
문제는 이 Function을 사용하면 Lock Entry에 해당 Asset이 잡혀버리는 현상이... ㅡㅡ;
조회하고 처분하려면 Lock 오류메시지가 나타난다.
그래서 아래와 같이 잔존가액 확인 후 Lock Entry를 삭제하도록 했더니 원하는대로 조회성공~~
DATA: L_GNAME LIKE SEQG3-GNAME,
L_GARG LIKE SEQG3-GARG,
L_SUBRC LIKE SY-SUBRC.
DATA: LT_ENQ TYPE TABLE OF SEQG3.
* Lock Entry 확인.
L_GNAME = 'ANLA'.
CONCATENATE SY-MANDT C_BUKRS P_ANLN1 P_ANLN2 INTO L_GARG.
CALL FUNCTION 'ENQUEUE_READ'
EXPORTING
GNAME = L_GNAME
GARG = L_GARG
TABLES
ENQ = LT_ENQ
EXCEPTIONS
OTHERS = 0.
DESCRIBE TABLE LT_ENQ LINES SY-TFILL.
CHECK SY-TFILL > 0.
* Lock Entry 삭제.
CALL FUNCTION 'ENQUE_DELETE'
EXPORTING
SUPPRESS_SYSLOG_ENTRY = 'X'
IMPORTING
SUBRC = L_SUBRC
TABLES
ENQ = LT_ENQ.
끝.