我是在做物料凭证保存增强时,在RFC函数里面使用了COMMIT WORK,结果发生了DUMP:
DUMP截图:
后来我把COMMIT WORK注释掉,就没有DUMP了,这好像告诉我在这个增强里面不能使用COMMIT WORK,仔细看他的报错消息,意思我这样会影响到数据的一致性,也影响到数据库的更新,但是我又必须得提交数据怎么办呢?
直接上代码:
DATA lv_task TYPE char32.
lv_task = 'ZRES_DELIVERY' && sy-uzeit.
CALL FUNCTION 'ZFM_IF_QUERY_RESERVATION' STARTING NEW TASK lv_task
TABLES
xmkpf = xmkpf
xmseg = xmseg.
我把RFC函数改成了异步处理函数,这里做得好处是,函数不会影响MIGO标准程序的执行,包括更新数据库操作,这里标准程序就像一个过客一样,把数据传给我就走了,不会在我这里停留一刻,然后我函数里面的逻辑在自己走,这样就做到了互不干扰,我COMMIT WORK也不会发生DUMP了。