王家屋场


记录点滴!
<不要退缩,要勇往直前。作为一个男人,要拿出男人的勇气和豪情,学会挑战陌生和困难,挺过去你就是专家。>
  首页  :: 新随笔  :: 联系 :: 管理

RFC学习笔记

Posted on 2009-05-18 23:38  Flying in sky  阅读(697)  评论(0编辑  收藏  举报
 

      前面时间看了一下黄佳先生的《SAP高级应用开发》,总体来说,我认为该书写的一般,当然我做了一些笔记,权当作是复习,先记录如下:

1 RFM: Remote Function Model

2,   RFC的通信模式:同步通信和异步通信

3 RFC的模式:sRFC,synchronous RFC
                 aRFC,asynchronous RFC
                 tRFC,transaction RFC
                 qRFC,queued RFC
                 pRFC,parrodel FRC

4, FRM: a 参数申明:必须在参数定义是申明<passed valued>
b
格式转化:实参长度不能大于被调用形参的长度
C
异常处理:raise exception

5 调用RFM Call Function rfm_name
 Destination dest
 parameter list
其中Destination dest SM59 中定义

       FMSXPG_COMMAND_EXECUTE用于执行服务器的系统命令
Call Function –Destination sRFC
Call Function –Starting new Task aRFC
Call Function –In Background Task tRFC

6 , RFC上下文

       A 本地正常调用:在跳用程序的work process

       B 远程调用:独立的工作进程

       C 所有的远程调用都在目标系统中存在一个独立的 RFC上下文即RFC Context

       D 通常情况下,功能模块调用和主程序位于相同的LUW中,不会触发Commit/Rollback,需显示执行。但 SRFCaRFC调用中的每一个FM都拥有自己的 LUW,即每次调用是都将隐式触发提交

7 sRFCaRFC中可以存在dialog过程,如call screen, call transcation等。尽管RFC可以在后台处理,但如果在后台处理,RFC的对话将引起system_failture.

8, RFC的调式:对于aRFC,将打开新的会话进行远程调式

9, sRFC的调用:调用程序将等待返回。

10 aRFC:被调用的功能模块立即执行,调用程序不等待结果<Strating New Task>

      A: 不能指定Importing 参数

      B:对话处理和调式:打开新的会话并可以来回切换,打开新的会话:调式窗口

      CaRFC调用时的结果接收

           Performing return_Form on end of Task

           Form return_form using taskname
… receive results from funcation rfc_name

           EndForm.

           一般情况下会在rerun_form中设置set user_command ‘OKCD’,然后在主程序中使用AT user_Command.

       D: 异步调用的等待

           Wait until 必须与Performing同时使用

           Wait until log_exp[up to sec seconds]可以在return_form中对log_exp中的条件赋值,从而达到等待RFC返回结果的目的。

11 tRFC:将多个逻辑上相关的远程调用绑定至同一个LUW上,并按照调用顺序执行,在到达 commit work 时执行所有计划的更新。

                   <In background task ….Commit work>

        A: tRFC部要求被调用时立即执行,如果远程系统不可用将保存在本地队列中,如果在设定时间内,远程系统仍不可用,将自动设置为后台作业

        B 不能返回结果,不允许交互性对话、调试

        C FM中不能存在Export的参数,Call Funcation 不能指定improting

        D:  事务ID : aRFCState: LUW执行状态

                         aRFCSdate:输入的数据

                      SM58查看并重启出错的RFM

         E: RFC处理:多个 RFC针对不同的目标

         F:出错:系统报表RSAFCSE重新执行。