SAP 高级应用开发 学习笔记 1 -- RFC NO.7

队列RFC方式的RFM调用

l        确保事务性RFC调用中的LUW都按照其创建次序执行,需要使用队列RFC创建LUW序列。

l        队列RFC是事务性RFC的增强版本,用于SAP-SAPSAP-SAP系统间的连接

l        多个FM发送至目标系统中的三种可能情况(实际的连接过程仍然通过事务性RFC来实现,可以增加入站、出站队列),普通事务性RFC、含出站队列的队列RFC、含出入站队列的队列RFC,出站队列在队列RFC中是必须的

l        出站调度器用于控制其他逻辑目标系统中的LUW执行

l        入站调度器控制本地系统中的队列RFC执行(目标NONEIN BACKGROUND TASK实现为指定目标RFC

l        事务SMQS可以配置出战的队列RFC序列

l        事务SMQR可以配置入站的队列RFC序列

l        需要在普通事务性RFC调用之前使用功能模块TRFC_SET_QUEUE_NAME来指明后续的事务性RFC所要插入的出战队列

l        通过FM TRFC_SET_QIN_PROPERTIES来完成,入站队列

 

 

本地RFM调用和回调

l        通过DESTNATION附加项的两个特殊目标NONEBACK,可以进行RFM本地远程调用和回调

l        调用本地系统中的远程功能模块,即调用当前系统内部的RFM

l        CALL FUNCTION语句格式决定以远程调用、非远程调用方式运行

l        远程调用:

CALL FUNCTION rfm_name DESTINATION 'NONE' ... CALL FUNCTION ‘RFC_CUSTOMER_GET’ DESTINATION 'NONE' EXPORTING KUNNR = custno TABLES CUSTOMER_T = itab EXCEPTIONS NO_RECORD_FOUND = 01.

 

l        本地调用:call function 语句没有destinationstarting new taskin background task/unit任意出现,不在单独的内存滚动区中运行,若当调用没有指定某些必选exporting参数时,会引起系统异常终止

CALL FUNCTION ‘RFC_CUSTOMER_GET’ EXPORTING KUNNR = CUSTNO TABLES CUSTOMER_T = ITAB EXCEPTIONS NO_RECORD_FOUND = 01. CALL FUNCTION rfm_name DESTINATION SPACE.

远程回调:

l        在服务器执行远程功能时,该服务器可以调用客户中随调用程序载入内存的功能模块,称为回调

l        通过特殊目标BACK可以触发回调机制

CALL FUNCTION rfm_name

DESTINATION ‘BACK’

l        只有同步调用时,才可以在服务器中被调用功能模块中使用BACK功能

 

 

各种RFC调用总结:

l        同步RFC调用需要等待RFM返回结果;异步RFC不需要,但需要通过RECEVICE语句在回调子程序中接收结果;事务性RFM不能接收RFM返回值

l        同步异步RFC调用,服务器系统必须在调用时可用;事务性RFC无此限制

l        同步异步RFC调用过程,允许用户与远程系统进行交互对话;事务性RFC不允许

l        同步异步RFC调用过程,参数值将直接传输至支持远程调用的功能模块;事务性RFC,参数值暂时存储在数据库中

l        对于异步RFC,只适用于SAP系统内部或之间的调用,不能通过T类型目标连接至外部系统

l        事务性RFC、队列RFC支持状态查询

 

你可能感兴趣的:(数据库,properties,function,服务器,SAP,存储)