300x250

SAP BDC, BAPI, Update, Delete 등등


SAP 개발을 하면서 알 수 없는 오류들이 발생할 수 있다.

 

 

예를 들어 

- 로직은 전혀 문제가 없는데 기능이 제대로 실행이 안 돼서 
디버깅을 통해서 프로그램을 실행했는데 동작이 되는 경우 

- BDC을 통해서 테이블에 업데이트하는데 정상적으로 동작 못 하는 경우

- BAPI을 통해서 무언가를 하는데 동작을 못 하는 경우 

 

 

이유


대부분 대용량 데이터를 다룰 때 발생하는 경우가 종종 있다. 

데이터베이스에 대용량 데이터를 저장하고 있는 도중해당하는 테이블SQL 하기 때문에 저장했던 데이터들을 가져오지 못하기 때문에 제대로 동작을 안 하는 것이다.

 

BAPI 또한 비즈니스 로직을 타면서 시간을 줘야 하는데 바로 넘어가버리고 SQL을 타게 되면 동작을 제대로 안 한다.

 

 

해결방법( WAIT문 )


그래서 WAIT이라는 구문을 사용해서 SYSTEM 진행을 잠시 멈추게 해줘야 한다. 

# 프로그램에 여유 시간을 주는 것이다.

 

1. WAIT UP TO n SECONDS : 프로그램 실행은 n 초 동안 중단이 되고 이 기간이 지나면 프로그램 처리가 재개된다.

 

예를 들어)

10초를 기다리게 한다.

이런 식으로 사용하면 된다.

 

WAIT 로직 말고도 Function Module이 있다.

이런 방법도 있다. 

2. WAIT UNTIL logexp. : 조건이 만족될 때까지 Wait 하거나 비동기 호출이 없을 때까지 대기한다. 

예를 들어)

X가 될 때까지 기다린다

이런 식으로 사용하면 된다.

 

 

SY-SUBRC


SY-SUBRC = 0 : logexp의 조건이 충족되었습니다.(예: 서브루틴 호출).

 

SY-SUBRC = 4 : 비동기 호출이 없습니다.

 

SY-SUBRC = 8 : 추가 UP TO 시간 SECONDS에 지정된 시간제한을 초과했습니다.

 

참고.



도움이 되셨으면 하단에 있는 광고 한번씩 눌러주세유!!

 

728x90