Abap 尽管提交,数据似乎在更新和读取之间未更新
我正在使用PSM BAPI编制ABAP报告Abap 尽管提交,数据似乎在更新和读取之间未更新,abap,sap-erp,Abap,Sap Erp,我正在使用PSM BAPI编制ABAP报告 FM\u资金\u中心\u变更\u否\u屏幕 调频FICTR读单频 在一段时间内。。。一会儿 在第一次迭代中,我使用BAPI(1)更新资金中心。在以后的迭代中,我需要使用BAPI(2)再次读取资金中心 问题是:在以后的迭代中,我仍然得到资金中心的旧数据。不考虑使用BAPI(1)更改的数据。一旦程序完成,数据将正确更新-在以后的程序执行中,更新的数据将出现。我尝试了在两个BAPI之间提交的几种选项: 使用BAPI参数i_flg_commit(在BAPI调
- 使用BAPI参数i_flg_commit(在BAPI调用之前还使用“SET UPDATE TASK LOCAL”)
- 投入工作
- 埋头苦干
- 功能模块BAPI\u事务提交
- 提交工作,然后最多等待10秒
" 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如我所见,FM\u FICTR\u READ\u SINGLE将读取的数据以静态方式存储在表单中。我看不到可用的刷新、清除方法,这意味着一旦读取,它在程序运行中不会被更改 查看函数组,我看到那里有
FM\u FICTR\u READ\u MULTIPLE
FM。在那里我没有看到缓存,您可以尝试,在参数中只传递一个对象
在我检查的地方,EA-PS是617/05版本。请注意,这些功能模块显然不是BAPI,因为它们的名称没有前缀“BAPI”。