을 나는 DO ... WHILE 내 ABAP은 : Update- 사이에 커밋 및 읽기 BAPI
-
PSM을 BAPI를
를 사용하여 ABAP 보고서를 개발하고있다.
- 을 COMMIT WORK 내용을 커밋하고 기다립니다 BAPI 전화
- 전에 또한 "UPDATE TASK LOCAL 설정"을 BAPI 매개 변수 i_flg_commit를 (사용
- 을
- 기능 모듈 BAPI_TRANSACTION_COMMIT
- 작업을 COMMIT, 다음 10 초 불행하게도
, 이러한 공동 중에 기다려 도움이되었습니다. 나는 그 (것)들의 몇몇 조합을 또한 시도했다. 누구에게이 아이디어가 나타나는 이유가 있습니까?
첫 번째 반복에서는 BAPI (1)를 사용하여 자금 센터를 업데이트합니다. 나중에 반복 할 때 BAPI (2)를 사용하여 자금 센터를 다시 읽어야합니다.
문제는 다음과 같습니다. 나중에 자금 센터의 이전 데이터를 얻습니다. BAPI (1)를 사용하여 변경된 데이터는 고려되지 않습니다. 프로그램이 완료되면 데이터가 올바르게 업데이트됩니다. 나중에 프로그램을 실행하면 업데이트 된 데이터가 나타납니다. 나는 두 BAPI를 사이에 짓는 몇 가지 옵션 시도 : WORK에게
" Tried with and without this one
" SET UPDATE TASK LOCAL.
CALL FUNCTION 'FM_FUNDS_CTR_CHANGE_NO_SCREEN'
EXPORTING
I_FIKRS = gv_fikrs
I_FISTL = gv_fictr
IT_FUNDS_CTR = lt_fistl
IT_FUNDS_CTR_TEXT = lt_fistl_t
IT_FUNDS_CTR_HISV = lt_fistl_h
I_FLG_TEST = pa_test
I_FLG_COMMIT = 'X' "Tried with and without this one
IMPORTING
ET_MESSAGES = lt_return
EXCEPTIONS
[...]
.
" Several commit options tried
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
" COMMIT WORK.
" COMMIT WORK AND WAIT.
" WAIT UP TO 10 SECONDS.
CALL FUNCTION 'FM_FICTR_READ_SINGLE'
EXPORTING
I_FIKRS = gv_fikrs
I_FICTR = gv_fictr
I_FLAG_TEXT = 'X'
I_FLAG_HIER = 'X'
I_LANGUAGE = c_spras
I_DATE = sy-datum
IMPORTING
E_F_FMFCTR = ls_current_fistl
E_F_FMFCTRT = ls_current_fistl_t
E_F_FMHISV = ls_current_fistl_h
EXCEPTIONS
[...]
.
사전에 감사 : 여기에 코드
! 조나단
감사합니다. 그게 도움이! – Jonathan