0
点赞
收藏
分享

微信扫一扫

Debug系列九:QRFC队列debug_SAP刘梦_新浪博客


ECC跟EWM集成,EWM触发ECC:

/SPE/INB_DELIVERY_CONFIRM_DEC


EWM显示成功了,ECC却没成功。


然后找原因。


1)SMQ2 查看Qrfc的执行队列。找找刚才那条数据的执行信息:

​​

Debug系列九:QRFC队列debug_SAP刘梦_新浪博客_java

​​​找到需要的这行。
​​

Debug系列九:QRFC队列debug_SAP刘梦_新浪博客_数据库_02

​​

双击进入下一层:





​​

Debug系列九:QRFC队列debug_SAP刘梦_新浪博客_java_03

​​​找到当天的,再双击进入下一层:
​​

Debug系列九:QRFC队列debug_SAP刘梦_新浪博客_python_04

​​

这一层可以看到调用了哪个ecc的 function,还有报错描述信息。


还可以双击报错描述进入下一层,看细节:

​​

Debug系列九:QRFC队列debug_SAP刘梦_新浪博客_数据库_05

​​​如果需要debug,可以直接选中该行,然后点调试按钮:
​​

Debug系列九:QRFC队列debug_SAP刘梦_新浪博客_linux_06

​​点完调试按钮一般先进入下面界面:
​​

Debug系列九:QRFC队列debug_SAP刘梦_新浪博客_linux_07

​​

然后按F7:

就会跳转到对应的那个function里面。

​​

Debug系列九:QRFC队列debug_SAP刘梦_新浪博客_数据库_08

​​​这个时候你看本地参数:
​​

Debug系列九:QRFC队列debug_SAP刘梦_新浪博客_linux_09

​​

原来执行时候的参数都有,可以直接用,

你也可以在参数区右键,把参数保存成变式,方便测试使用。

​​

Debug系列九:QRFC队列debug_SAP刘梦_新浪博客_linux_10

​​​然后SE37执行该函数,选中变式即可:
​​

Debug系列九:QRFC队列debug_SAP刘梦_新浪博客_队列_11

​​

BAPI一般都是需要显示提交才能提交数据库,就是调用commit work。

所以这样测试一般不会提交数据库,数据可以多次使用。



这里先对RFC进行几次简单介绍:

同步RFC:sRFC

同步RFC(Synchronous RFC,sRFC)是最基本的RFC形式。在sRFC调用中,调用者会等待远程被调用者的处理过程。

异步RFC:aRFC

异步RFC(Asynchronous RFC,aRFC)类似与tRFC,用户在继续调用会话之前,不需要等待它们的完成。


事务RFC:tRFC

在使用事务RFC( transactional RFC,tRFC)的时候,被调用的函数模块在被调用系统中正好运行一次(Exactly Once)。

远端系统不需要在RFC客户端程序运行tRFC的时候可用。tRFC组件将被调用的RFC函数和相关数据存储在SAP系统的数据库里,包含一个唯一的事务标识符(transaction identifier,TID)。

如果调用发送了,接收系统却是宕机状态,调用会保留在本地队列中一段时间。调用对话程序可以在不等待远程调用成功/失败的情况下继续运行。如果接收系统在一段时间后仍然不可用,调用将被计划为后台作业运行。

队列RFC:qRFC

队列RFC(queued Remote Function Call,qRFC)是tRFC的一个扩展。它允许你将多个tRFC调用序列化为一个队列。

qRFC调用会首先被函数模块TRFC_SET_QUEUE_NAME进行序列化处理,然后这些调用被一个tRFC进行实际上的dispatch。

qRFC可以作为外向队列(由调用系统序列化)处理,或者是内向队列(由被调用系统序列化)。



QQ群 :SAP干货铺,  群号:775662808

所有群管理严格,严格禁止一切外来链接、招聘、广告等垃圾信息!
​​​


​​

举报

相关推荐

0 条评论