티스토리 뷰

BDC 프로그램 개발을 하는 중에 Work Order 를 수정하는 프로그램에서 동일한 Work Order 를 두번 연속 수정을 하면 두번째 Work Order가 수정이 안되는 현상이 발견되었다. 문제는 Background 모드를 사용하면 두번째 실행한 것이 저장이 안 되는 문제이다. 그러나 Foreground 로 실행을 하면 문제 없이 두 건 모두 저장이 되었다. 


이 문제는 특별한 오류가 있어서 생기는 것은 아니지만 첫 번째 BDC를 처리하고 나서 완료가 되기 전에(짧은 시간이지만) 두 번째 Work Order를 처리하려고 하기 때문에 발생하는 문제 인 듯하다. 


그래서 이 경우를 해결하기 위해서는 첫번째 BDC 를 실행 후 몇초간의 시간 텀을 두거나 아니면 BDC 실행시 Update Mode 를 Asynchronous 에서 Synchronous 로 변경을 하면 된다.


[ 추천방안 ]

1. BDC 수행 이후에 WAIT UP TO XX SECONDS 를 이용하여 시간차를 준다.

2. BDC 수행 옵션에서 CTU_PARAMS-UPDATE_MODE = 'S' 옵션을 사용한다.





댓글
댓글쓰기 폼
글 보관함
Total
383,756
Today
6
Yesterday
76