尽管提交,但在更新和阅读之间似乎没有更新数据



我正在使用PSM Bapis

开发ABAP报告
  1. fm_funds_ctr_change_no_screen
  2. fm_fictr_read_single

在做一个...

在第一次迭代中,我使用BAPI(1(更新基金中心。在以后的迭代中,我需要使用BAPI再次阅读资金中心(2(。

问题是:在后来的迭代中,我仍然获得了基金中心的旧数据。使用BAPI(1(更改数据。程序完成后,数据将正确更新 - 在以后的程序执行中,存在更新的数据。我尝试了两个Bapis之间的几个选择:

  • 使用BAPI参数I_FLG_COMMIT(在BAPI调用之前,还使用"设置更新任务local"
  • 提交工作
  • 提交工作并等待
  • 功能模块bapi_transaction_commit
  • 提交工作,然后等待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
    [...]
.

预先感谢您!乔纳森

我看到的FM_FICTR_READ_SINGLE将读取数据存储在表单内的静态数据中。我看不到可用的清理方法,这意味着如果一旦阅读,它就不会在程序运行中更改。

查看了功能组,我在那里看到FM_FICTR_READ_MULTIPLE FM。在那里,我看到没有缓存,您可以尝试,只通过一个参数传递一个对象。

我检查的地方,EA-PS在617/05版本上。

相关内容

  • 没有找到相关文章

最新更新