arfc:异步rfc,立即执行

语法如下

CALL FUNCTION 'ZTEST1' STARTING NEW TASK 'TEST1' DESTINATION 'aa'

rfc不通,rfc不存在,当前程序立即报错。

可以如下

CALL FUNCTION 'ZTEST1' STARTING NEW TASK 'TEST1' DESTINATION 'aa'
EXCEPTIONS
  OTHERS = 1.

解决本系统的报错。

在对方系统中rfc运行出错的话,部分报错可以在对方st22中直接查询,有些查询不到。具体还不详。

 

trfc:事务码rfc,commit work时才执行,有重发机制。默认配置是发送30次,间隔15分钟。sm58查看错误的trfc记录。

语法如下

CALL FUNCTION 'ZTEST1' IN BACKGROUND TASK DESTINATION 'aa'.

commit work.

rfc只注册未执行,rfc不通,rfc不存在,对方rfc运行出错,在调用方sm58中查询到所有信息。

可以在sm58中手动发送"发送失败"的rfc。

rfc成功执行,sm58中查询不到信息。

 

qrfc:出栈队列rfc,需要指定队列名,commit work时才执行,有重发机制。smq1查看错误的qrfc记录。

语法如下

CALL FUNCTION 'TRFC_SET_QUEUE_NAME'
  EXPORTING
    qname              'ZNAME1'
  EXCEPTIONS
    invalid_queue_name 1
    OTHERS             2.

CALL FUNCTION 'ZTEST1'
  IN BACKGROUND TASK
  DESTINATION 'test'.

 commit work.

 

rfc只注册未执行,rfc不通,rfc不存在,对方rfc运行出错,在调用方smq1中查询到所有信息。

可以在smq1中手动发送"发送失败"的rfc。

rfc成功执行,smq1中查询不到信息。

可以基于destination,queue进行关停,重发次数,间隔的配置。smq1操作。

队列名称不需要预先在smqs里进行配置。

bw系统使用了此种接口。

 

 

qrfc with inbound:入栈队列rfc,需要指定入栈队列名,commit work时才执行,有重发机制。smq1,smq2查看错误的qrfc记录。

入栈队列rfc依赖于出栈队列。

语法如下 

CALL FUNCTION 'TRFC_SET_QIN_PROPERTIES'
  EXPORTING
    qin_name           'ZNAME2'

    "qout_name          = 'ZNAME3' "出栈名不指定,则等于入栈名
  EXCEPTIONS
    invalid_queue_name 1
    OTHERS             2.

CALL FUNCTION 'ZTEST1'
  IN BACKGROUND TASK
  DESTINATION 'test'.

commit work.

rfc只注册未执行,rfc不通,在调用方smq1里查询日志。

rfc不存在,rfc执行出错,在对方smq2里查询日志。并且入栈队列需要预先在对方注册好才可正确执行。smqr设置

po的proxy接口使用此种接口。

 

bgrfc:没有研究。

posted on 2019-10-18 17:30  北上  阅读(1484)  评论(0)    收藏  举报