REPORT zr_db2.
DATA wa TYPE zspfli_00.
wa-carrid = 'AA'.
wa-connid = '0017'.
PERFORM save1 ON COMMIT.
wa-carrid = 'AA'.
wa-connid = '0064'.
PERFORM save2 ON COMMIT.
COMMIT WORK AND WAIT.
*INSERT zspfli_00 FROM wa.
*IF sy-subrc <> 0.
* ROLLBACK WORK.
*ELSE.
* COMMIT WORK.
*ENDIF.
WRITE 'text'.
*&---------------------------------------------------------------------*
*& Form SAVE1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM save1 .
INSERT zspfli_00 FROM wa.
IF sy-subrc <> 0.
MESSAGE a016(pn) WITH 'Fail'.
ENDIF.
ENDFORM. " SAVE1
*&---------------------------------------------------------------------*
*& Form SAVE2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM save2 .
INSERT zspfli_00 FROM wa.
IF sy-subrc <> 0.
MESSAGE a016(pn) WITH 'Fail'.
ENDIF.
ENDFORM.
댓글 9
-
MadMax
2012.09.03 17:50
-
버미!
2012.09.03 17:57
POC가 근데 뭐죠?...첨 듣는데..무슨 약자 인가?
-
MadMax
2012.09.03 20:27
Perform On Commit 을 지징하는듯... ㅎㅎ..
-
형지
2012.09.18 00:28
감사합니다.^^
-
마크
2012.09.27 02:13
감사합니다.
-
beob
2012.09.28 20:40
감사합니다
-
꿀돼지
2012.11.13 20:18
감사합니다 .
-
병으니
2013.06.24 22:27
감사합니다.
-
jiangtairi
2013.07.17 20:31
감사합니다.
Commit work 문장을 만나면 perform save1, save2 를 수행 합니다. 위 문장에서 save 1, save2 전에 wa 값을 assign 해도 유효한 것은 save2
전에 assign 된 wa 이므로 save1, save2 둘다 aa,0064 를 insert 하므로 save2 는 insert fail 이 됩니다.
참고하세요.