안녕하세요 초보 개발자입니다.
바로 아래 어느분이 비슷한 질문을 올렸는데 답변이 하나도 없네요..
고수분의 답볍을 기대하면 오늘도 도움을 요청하네요
제목에 나와있다시피...
Internal Table을 loop문을 돌면서
두번의 BDC를 수행합니다.
코스트센터 A에서 Plan amount를 빼서 - (1)
코스트센터 B의 Plan aomunt를 더하는 식입니다. - (2)
여기서 궁금한점은
두개의 BDC 모두 성공해야 실제로 DB에 반영되고
한개라도 실패하면 반영하지 않고 싶은데요... 방법이 있을까요?
R/3구조상... 로컬에만 저장하고 있다가... 일시에 서버에 반영할수 있을것 같은데...
내공이 부족하여... 알수가 없네요
고수님들의 많은 도움 부탁드립니다.
댓글 2
-
activeman
2008.12.18 22:02
-
Hyui
2008.12.20 03:28
SUBRC로 체크 로직 만드시고 그 안에서 BDC돌린후에 둘다 Sucesss(0값)가 떨어지면 COMMIT하시고요 하나라도 안되면
ROLLBACK 하도록 하시면 됩니다. 조금 구체적으로 말하면 BDC가 돌아갈시에 메세지 테이블을 보시면 에러가 떨어질때와
성공이 떨어질때의 ms-sid등의 스크린에 대한 고유 넘버가 있습니다. 이거 체크해주면 LOCK이 걸려서 정상수행이 안되거나
기타 성공이 안될때 체크를 하실수 있을겁니다.
bdc를 수행한다는 것은 스탠다드 화면을 이용하여 스탠다드 테이블에 자료를 저장하는 것일 겁니다.
그러니까 첫번째 bdc를 수행하고 나면 스탠다드 테이블에 자료가 저장이 된다는 것이지요..그럼..이테이블의 내용을 가져와서 성공여부를
체크하실 수 있을 겁니다.(물론 어느테이블에 저장되는지는 알고 계셔야 겠지요)..
이렇게 체크하셔서 두번째bdc의 수행여부를 체크하셔야 합니다.
즐밥하세요..