지금 프로그램을 짜는데
막 돌더니
Short text
Time limit exceeded.
What happened?
The program "SAPLRPPA" has exceeded the maximum permitte
interruption and has therefore been terminated.
이런 덤프에러가 떨어졌습니다.
그래서 디버깅을 해보았는데..
아래 loop문에서 딱 막힙니다.
LT_TEMP는 10230 건이있네요.
질문,
(1)LOOP는 1만건 이상의 Internal Table에서는 돌릴수 없는건가요?
(2)1만건도 상관없다면, 이 loop로직이 잘못된건지 확인부탁드립니다.
"사업장기준정보 채우기
LOOP AT LT_TEMP.
IF LT_TEMP-KVGR4 LT GV_CUR_TO_DT+6(2). "결산일이 월말일보다 작으면 다시 전월,당월,차월을 다시 구해야함.
CONCATENATE P_SPMON LT_TEMP-KVGR4 INTO LT_TEMP-CUR_TO_DT.
LT_TEMP-CUR_FROM_DT = GV_CUR_FROM_DT.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL' "차월시작일구하기
EXPORTING
DATE = LT_TEMP-CUR_TO_DT
DAYS = '1'
MONTHS = '0'
SIGNUM = '+'
YEARS = '0'
IMPORTING
CALC_DATE = LT_TEMP-AFT_FROM_DT.
LT_TEMP-AFT_TO_DT = LV_TO_DT. "차월종료일구하기
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL' "전월시작일구하기
EXPORTING
DATE = LT_TEMP-AFT_FROM_DT
DAYS = '0'
MONTHS = '1'
SIGNUM = '-'
YEARS = '0'
IMPORTING
CALC_DATE = LT_TEMP-PRE_FROM_DT.
CALL FUNCTION 'LAST_DAY_OF_MONTHS' "전월종료일구하기
EXPORTING
DAY_IN = LT_TEMP-PRE_FROM_DT
IMPORTING
LAST_DAY_OF_MONTH = LT_TEMP-PRE_TO_DT.
ELSE. "결산일이 월말이거나, 예외처리.즉 99나 32이 이상의 것들이 있으면 그냥 당월로 처리한다.
LT_TEMP-CUR_FROM_DT = GV_CUR_FROM_DT.
LT_TEMP-CUR_TO_DT = GV_CUR_TO_DT.
"전월 차월은 그냥 빈값으로 놔둔다. 자료를 구하지 않기 위해...
ENDIF.
MODIFY LT_TEMP.
CLEAR LT_TEMP.
ENDLOOP.
* e-abap님에 의해서 게시물 복사되었습니다 (2010-01-09 13:45)
* e-abap님에 의해서 게시물 이동되었습니다 (2010-01-09 13:54)
BC 에서 일정시간 이상 프로그램 실행되면 중지하도록 설정한 것 같네요.
프로그램에 특별히 이상한 점은 보이지 않네요.
loop 때문이 아니라 프로그램 시작해서 지정된 시간이 되어
멈춘곳이 loop 문장인것 같습니다.
프로그램에 대한 performance tunning 을 해보시는 것이 좋을 것 같습니다.