最近呀,写一个使用BDC批量导入数据到MIRO的程序,遇到一个很有意思的问题,愣是折腾了半天才找到原因,具体是啥问题呢,且听我细细道来。 Debug的时候发现,执行完CALLTRANSACTION 'MIRO'后,没有任何错误消息和成功的消息,MESSTAB里啥都没有。同样的数据在前台做一次就能有结果。(问题在系统已经修复,所以这里就不截图了) 后来追踪到的结果是,有同事正好在使用到的1120的BTE增强点里写了COMMIT WORK语句。( ※ 增强里禁用COMMIT WORK或者ROLLBACK操作 )
当然,修改增强代码,去掉COMMIT WORK是正解。但是万一以后还发生这种增强里出现COMMIT WORK的情况呢,那到时候过增强点的BDC程序是不是就会出现问题?所以,我们还得来个双保险。
CLEAR: gs_options. gs_options-dismode = 'N'. " 后台模式 gs_options-updmode = 'S'. "同步更新 gs_options-cattmode = ''. gs_options-defsize = ''.