2020-08-30 09:20发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,请您帮忙
我要在创建发票后更新一些Z表。
为此,我在MF RV_INVOICE_DOCUMENT_ADD末尾创建了一个增强功能
当我在调试时,数据在Z表中更新,但是当我不在调试中时,则没有任何更新。
我以为调试会提交,因此我在代码中添加了COMMIT WORK,但存在相同的问题:-在调试中确定-KO而没有调试
预先感谢您的宝贵帮助
已解决。
在MF REFRESH_DOCUMENT中完成提交。
所以我在调用REFRESH_DOCUMENT之前先打了MF
我的问题是关于未经调试是否调用了FM的?
也许您的代码需要在数据库中已经有发票,但是没有调试的功能运行很快。
您能否共享Z_MRO_TRK ...的代码?
嗨,
COMMIT Work在增强功能的中间将无法正常工作。 您应该在更新任务中调用Ztable修改。 请查看下面的链接,它将帮助您找到正确的位置来插入代码。
RV_INVOICE_DOCUMENT_ADD
功能z_mro_trk_invoice_save。
*" ------------------------------------------------- ------------------------- *" *"更新功能模块: *" *" *"本地接口 : *"导入 *" VALUE(I_VBRK)类型VBRKVB *" --------------------------- ------------------------------------------- *程序ID: Z_MRO_TRK_INVOICE_SAVE *说明:保存发票时在跟踪工具中记录事件的功能 *日期:20.09.19 * -------------- *功能数据 * -------------- * 数据:w_daten类型yuet001-daten, ws_trk_fields类型zmrot_trk_fields, w_date类型sy-datlo, w_time TYPE sy-timlo, w_fieldname TYPE char255, w_h_fieldname TYPE char255, w_exit_key TYPE zmro_trk_exit_key, w_objkey TYPE objkey。 FIELD-SYMBOLS: TYPE ANY,< br> TYPE ANY, TYPE ANY。 * -------------------- *检查创建 模式 * -------------------- IF i_vbrk-updkz <>'I'。返回。 ENDIF。 * ----------------------- - *检索要跟踪的字段 * ------------------------ 选择*从zmrot_trk_fields最多1行INTO ws_trk_fields objtype ='VBRK' AND过滤器= i_vbrk-fkart AND dispcre ='X'。 ENDSELECT。如果sy-subrc <> 0. 返回。< br> ENDIF。 *获取日期字段名称将sy-datum移至w_date。 *获取时间字段名称 MOVE sy-uzeit移至w_time。 *获取退出键连接i_vbrk-fkart'/VBRK-'ws_trk_fields-fieldname INTO w_exit_key。将i_vbrk-vbeln移至w_objkey。 * -------- ------------- *启动跟踪工具 * --------------------- 调用功能 'Z_MRO_TRK_LOG_ON_EXIT'导出 l_objkey = w_objkey l_exit ='003' l_exit_key = w_exit_key l_date = w_date l_time = w_time。 ENDFUNCTION。 p>
我创建了一个MF,在其中插入了代码以更新Ztables
我也尝试在更新任务->相同问题中称呼此MF
我尝试了模式:为我的MF更新模块->同样的问题
您的代码看起来很干净
,并且没有调试,如果您使用ST05设置了跟踪, 您在zmrot_trk_fields上显示SELECT语句?
在我的函数RV_INVOICE_DOCUMENT_PREPARE中,我没有执行此操作(userexit_save_document_prepare)。
最多设置5个标签!
已解决。
在MF REFRESH_DOCUMENT中完成提交。
所以我在调用REFRESH_DOCUMENT之前先打了MF
我的问题是关于未经调试是否调用了FM的?
也许您的代码需要在数据库中已经有发票,但是没有调试的功能运行很快。
您能否共享Z_MRO_TRK ...的代码?
嗨,
COMMIT Work在增强功能的中间将无法正常工作。 您应该在更新任务中调用Ztable修改。 请查看下面的链接,它将帮助您找到正确的位置来插入代码。
RV_INVOICE_DOCUMENT_ADD
功能z_mro_trk_invoice_save。
*" ------------------------------------------------- -------------------------
TYPE ANY,< br> TYPE ANY,
TYPE ANY。
*" *"更新功能模块:
*"
*" *"本地接口 :
*"导入
*" VALUE(I_VBRK)类型VBRKVB
*" --------------------------- -------------------------------------------
*程序ID: Z_MRO_TRK_INVOICE_SAVE
*说明:保存发票时在跟踪工具中记录事件的功能
*日期:20.09.19
* --------------
*功能数据
* -------------- *
数据:w_daten类型yuet001-daten,
ws_trk_fields类型zmrot_trk_fields,
w_date类型sy-datlo,
w_time TYPE sy-timlo,
w_fieldname TYPE char255,
w_h_fieldname TYPE char255,
w_exit_key TYPE zmro_trk_exit_key,
w_objkey TYPE objkey。
FIELD-SYMBOLS:
* --------------------
*检查创建 模式
* --------------------
IF i_vbrk-updkz <>'I'。
返回。
ENDIF。
* ----------------------- -
*检索要跟踪的字段
* ------------------------
选择*从zmrot_trk_fields最多1行INTO ws_trk_fields
objtype ='VBRK'
AND过滤器= i_vbrk-fkart
AND dispcre ='X'。
ENDSELECT。
如果sy-subrc <> 0.
返回。< br> ENDIF。
*获取日期字段名称
将sy-datum移至w_date。
*获取时间字段名称
MOVE sy-uzeit移至w_time。
*获取退出键
连接i_vbrk-fkart'/VBRK-'ws_trk_fields-fieldname INTO w_exit_key。
将i_vbrk-vbeln移至w_objkey。
* -------- -------------
*启动跟踪工具
* ---------------------
调用功能 'Z_MRO_TRK_LOG_ON_EXIT'
导出
l_objkey = w_objkey
l_exit ='003'
l_exit_key = w_exit_key
l_date = w_date
l_time = w_time。
ENDFUNCTION。 p>
嗨,
我创建了一个MF,在其中插入了代码以更新Ztables
我也尝试在更新任务->相同问题中称呼此MF
我尝试了模式:为我的MF更新模块->同样的问题
您的代码看起来很干净
,并且没有调试,如果您使用ST05设置了跟踪, 您在zmrot_trk_fields上显示SELECT语句?
嗨,
在我的函数RV_INVOICE_DOCUMENT_PREPARE中,我没有执行此操作(userexit_save_document_prepare)。
一周热门 更多>