点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好!
我对事务调用中的参数出了什么问题的想法不多了。
首先,我建立了BDC数据:
wa_bdc-program ='RFEBKA00'。 wa_bdc-dynpro ='1000'。 wa_bdc-dynbegin ='X'。 将wa_bdc附加到it_bdc。 清除wa_bdc。 wa_bdc-fnam ='EINLESEN'。 wa_bdc-fval ='X'。 将wa_bdc附加到it_bdc。 清除wa_bdc。 wa_bdc-fnam ='FORMAT'。 wa_bdc-fval ='X'。 将wa_bdc附加到it_bdc。 清除wa_bdc。 wa_bdc-fnam ='BDC_OKCODE'。 wa_bdc-fval ='/00'。 将wa_bdc附加到it_bdc。 将wa_bdc附加到it_bdc。 清除wa_bdc。 wa_bdc-program ='RFEBKA00'。 wa_bdc-dynpro ='1000'。 wa_bdc-dynbegin ='X'。 将wa_bdc附加到it_bdc。 清除wa_bdc。 wa_bdc-fnam ='X_FORMAT'。 wa_bdc-fval ='CAMT.054.001.02'。 将wa_bdc附加到it_bdc。 清除wa_bdc。 wa_bdc-fnam ='BDC_OKCODE'。 wa_bdc-fval ='/00'。 将wa_bdc附加到it_bdc。 将wa_bdc附加到it_bdc。 清除wa_bdc。 wa_bdc-fnam ='AUSZFILE'。 wa_bdc-fval = temp_file。 将wa_bdc附加到it_bdc。 清除wa_bdc。 wa_bdc-fnam ='PCUPLOAD'。 wa_bdc-fval =''。 将wa_bdc附加到it_bdc。 清除wa_bdc。 wa_bdc-fnam ='PA_XCALL'。 wa_bdc-fval ='X'。 将wa_bdc附加到it_bdc。 清除wa_bdc。 wa_bdc-fnam ='MREGEL'。 wa_bdc-fval ='1'。 将wa_bdc附加到it_bdc。 清除wa_bdc。 wa_bdc-fnam ='VALUT_ON'。 wa_bdc-fval ='X'。 将wa_bdc附加到it_bdc。 清除wa_bdc。 wa_bdc-fnam ='BDC_OKCODE'。 wa_bdc-fval ='= ONLI'。 将wa_bdc附加到it_bdc。 清除wa_bdc。
然后我像这样运行事务:
数据:mess_tab类型为bdcdata_tab。 使用it_bdc模式" N"将消息交易" FF_5"发送到mess_tab。
我们有一个Web服务,该服务接收camt.054文件,然后对该文件执行FF_5。 我们从" mess_tab"中读取交易消息,如下所示:
LOOP AT mess_tab进入混乱状态。 通话功能'Z_WRITE_SERVICE_LOG' 出口 消息=一团糟。 ENDLOOP。
但是问题是,每次我们收到错误消息:
00 344 RFEBKA00 1000"屏幕RFEBKA00 1000没有批输入数据"
我不知道这是否应该在每次处理FF_5处理语句文件时发生,还是我在这里遗漏了一些关键内容。
00->消息ID
344->消息号
和另外两个值对应于消息的&1&2
消息 可能在事务SE91中看到了蜜蜂
,这是因为您忘记为dynpro/screen 1000设置数据
切换到模式E->错误,您会看到女巫屏幕
此错误与批量输入相关,并且独立于FF_5。 您确定在调用FF_5时是否存在表中的数据?
此外,变量MESS_TAB的行类型应为BDCMSGCOLL。
现在我已经 一直在使用SHDB选项。 我填写参数并保存记录。 之后,我在未选中模式" A"和"模拟背景模式"的情况下在前台处理记录。 屏幕弹出包含正确的OKCODE的屏幕,我按"继续"并继续,并且基于camt.054语句发布了文档。
然后,我切换到" N"模式,并且仍未选中"模拟背景模式"。 然后,同一记录使我得到消息"屏幕RFEBKA00 1000'没有批输入数据。
然后我再检查一次模式" N"和"模拟背景模式",再尝试一次。 现在这很奇怪,因为我看到一个在运行之前和之后都未见过的错误,我看到模式显示为" Q"。 进行了一点点谷歌搜索,结果发现没有记录" Q"模式,这意味着该过程以" N"模式执行,并且"模拟后台模式"在以下位置执行:
BT 801 S"无法确定运行时信息"
BT 645 S
00 341'发生了运行时错误RAISE_EXCEPTION'
在ST22中,我在程序RFEBBU01中看到转储NO_RUNTIME_INFO。 在这一点上,我对为什么后台处理如此挑剔感到困惑。
我已经使用调试器确保数据确实在bdc数据选项卡中。
我在写这篇文章时也打错了字。 mess_tab的实际数据类型是:
我不会发布转储,因为我终于找到了解决此烦恼的方法。
事实证明,当您在"联机"模式和"后台"模式下运行某些事务时,它们的行为方式不同。 FF_5是这些事务之一,为了获得相同的行为,SHDB有一个复选框" Not a batch input session"。 此复选框告诉事务即使在"后台"运行时也要模仿"在线"模式。 记录参数的这种变化产生了不同的结果,为屏幕1000 RFEBKA00添加了一个附加条目(下图中的第27-29行)。 我想先前在持续错误消息中提到的缺少输入数据就是在谈论这个确切的附加屏幕。
我想出的最终BDC_DATA表如下:
仅当您要为FEBA生成过帐日志时,才需要行24-26。
我将该行的表行转换为bdc_data,一切似乎都应该正常工作。
我还修改了CALL TRANSACTION语句,使其看起来像这样:
一周热门 更多>