因增强导致BDC录屏执行异常的梗

在编写程序使用BDC批量导入数据到MIRO时,遇到一个问题:CALLTRANSACTION 'MIRO'执行后没有返回错误或成功消息。调试发现是由于1120的BTE增强点中存在COMMITWORK语句导致。为避免此类问题,通过设置BDC OPTIONS的RACOMMIT参数为'X',即使增强中有COMMITWORK,也能确保流程不中断。此外,调整增强代码,移除COMMITWORK作为额外保障。
摘要由CSDN通过智能技术生成

最近呀,写一个使用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   = ''.
  gs_options-racommit  = 'X'.                   " 忽略增强提交动作                
  gs_options-nobinpt   = ''.
  gs_options-nobiend   = ''.
  
  …………
  
      " 调用miro
    CALL TRANSACTION 'MIRO' USING bdcdata
                            OPTIONS FROM gs_options
                            MESSAGES INTO messtab.

就是使用BDC时OPTIONS的参数RACOMMIT给打上标记就可以了,这样即使有COMMIT WORK,它也不会中断流程,详见F1说明:

往期推荐

S4系统中如何锁定事务代码

ERP:自开发程序涉及权限问题处理-Tcode权限和数据管理

Script form打印Logo问题

SAP:清除系统缓存/快捷退出debug

SAP:解决SMARTFORM中因‘-’导致字符串折行的问题

STRANS高效导出数据到WORD/EXCEL

运行MRP(MD01)屏幕不可编辑增强

smartforms以PDF打印预览

运行MRP(MD01)用户出口增强

SAP通过函数READ_TEXT读取长文本

财务开发必备ABAP语法之 DO VARYING

SAP选择屏幕设置变式实现动态日期

你不知道的视图事件增强

释放的TR自动接收

销售订单——抬头出具发票计划状态计算逻辑

批次特性类里的增强

CI_COBL结构激活不一致问题

数据表的代理对象引发的取数问题

凭证预制时行项目增加成本中心描述列

采购订单增强未生效问题

根据结构动态生成内表的梗

range table取数一步到位法

数据存在性校验小记

打不开soamanager,快看这!!!

小手点一点关注,顾问路上不迷路!

扫描二维码

获取更多精彩

菜鸟家园

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值