我正在使用PSM BAPI开发ABAP报告
在第一次迭代中,我使用BAPI(1)更新资金中心。在稍后的迭代中,我需要使用BAPI(2)再次阅读基金中心。
问题是:在后来的迭代中,我仍然得到基金中心的旧数据。使用BAPI(1)更改的数据不予考虑。程序完成后,数据会正确更新 - 在以后的程序执行中,会出现更新的数据。我在两个BAPI之间尝试了几种提交方式:
不幸的是,这些命令都没有帮助。我也尝试了几种组合。有谁有想法,为什么会出现这个问题?
这是一段代码:
" 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
[...]
.
提前谢谢! 乔纳森
答案 0 :(得分:3)
我看到" "
将读取数据存储在表单内的静态中。我看不到可用的刷新清除方法,这意味着如果一旦读取它就不会在程序运行中被更改。
查看功能组,我看到=IF(ISNUMBER(SEARCH(substring;"WOW")); "Yes"; "No")
FM。在那里我看不到缓存,你可以试试,只在参数中传递一个对象。
我查看的地方,EA-PS的版本是617/05。