CO10 BDC 报错 “No batch input data for dynpro SAPLCOKO1 0115”

在一次升级项目中碰到一个很奇怪的问题,一个CO10的bdc fm用in background task 就报错“No batch input data for dynpro SAPLCOKO1 0115”,但是去掉in background task 就不报错,非常奇怪,从本次解决的问题来总结此问题如果不是屏幕字段发生变化,或由于断点的什么原因,大概率是由于in background 和非background的模式下有弹出选择框的差异,就是background下可能没有某个选择框但非background有,而BDC又是在非background模式下录的导致了此错误,所以解决此问题的思路就是比较background和非background的录屏差异。下面是我分析问题的一些过程。

1.首先肯定是debug后台模式和非后台模式

为了分析问题我调式了后台模式的BDC:(后台模式调式--先在调用处打个断点,然后再debug模式下点击 设置--更改调式参数文件/设置,选中TRFC(在后台任务中)块发送)

直接F8执行完,然后SM58去调式后台程序,

然后进入BDC,修改dismode为A一步步调式,可以大概确定在那个步骤,屏幕停了,没有命令继续了,记住这个大概的位置,但由于可以手工继续,所以可以全部执行完成,

然后再直接用N模式,直接执行,查看messtab与非后台模式的messtab比较也可以知道个大概的位置,这个调式过程就不截图了,下面是后台模式与非后台模式messtab比较

可以看到后台模式在消息C2 195之后就报错了,所以大概率是在这个消息之前后之后有个录屏不对,最后我们就是通过SHDB分别录制模拟后台模式及非后台模式的来比较:

后台模式录制,这里就不详细截图,我们主要看最后的BDC代码:

通过比较很容易发现非background模式比background模式多了如下这个弹出窗,

也就是这段代码

所以问题就是再background的非background需要区分的是否加这段bdc代码,最后问题也得以解决。

最后想说的是,此问题的分析解决其实花费很多时间和精力,并不是入文章一样如此直接的找到了问题的原因,此问题也查了很久的资料,但没有一个比较明确的解决方案,所以记录下此问题,希望可以方便到同行解决此类问题。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值