RFC 同步异步调用实例
2007-06-05 13:57
316 查看
CALL RFC synchronize and asychronize Examples
同步调用RFC 示例
*&---------------------------------------------------------------------*
*& Report sapbc415_rfcsync_s1 *
*& *
*&---------------------------------------------------------------------*
REPORT SAPBC415_RFCSYNC_S1 MESSAGE-ID BC415.
TABLES SPFLI.
PARAMETERS: ICARR LIKE SFLIGHT-CARRID DEFAULT 'LH',
ICONN LIKE SFLIGHT-CONNID DEFAULT '0400',
DEST LIKE RFCDES-RFCDEST DEFAULT 'NONE'.
DATA: SYSID LIKE SY-SYSID,
MESS(80).
CALL FUNCTION 'BC415_RFC_READ_SPFLI'
DESTINATION DEST
EXPORTING
CARRID = ICARR
CONNID = ICONN
IMPORTING
EX_SPFLI = SPFLI
SYS = SYSID
EXCEPTIONS
INVALID_DATA = 1
COMMUNICATION_FAILURE = 2 MESSAGE MESS
SYSTEM_FAILURE = 3 MESSAGE MESS.
CASE SY-SUBRC.
WHEN 1.
WRITE: / TEXT-001.
EXIT.
WHEN 2.
WRITE: / MESS.
EXIT.
WHEN 3.
WRITE: / MESS.
EXIT.
ENDCASE.
WRITE: / TEXT-004, SYSID COLOR 5.
SKIP.
WRITE: SPFLI-CARRID, SPFLI-CONNID, SPFLI-CITYFROM, SPFLI-CITYTO.
异步调用RFC示例
*&---------------------------------------------------------------------*
*& *
*& Report sapbc415_rfcasync_s1 *
*& *
*&---------------------------------------------------------------------*
REPORT SAPBC415_RFCASYNC_S1 MESSAGE-ID BC415.
TABLES SPFLI.
PARAMETERS: ICARR LIKE SFLIGHT-CARRID DEFAULT 'LH',
ICONN LIKE SFLIGHT-CONNID DEFAULT '0400',
DEST LIKE RFCDES-RFCDEST DEFAULT 'NONE'.
DATA: SYSID LIKE SY-SYSID,
MESS(80),
FLAG,
RETCODE LIKE SY-SUBRC.
CALL FUNCTION 'BC415_RFC_READ_SPFLI'
DESTINATION DEST
STARTING NEW TASK 'T1'
PERFORMING BACK ON END OF TASK
EXPORTING
CARRID = ICARR
CONNID = ICONN
EXCEPTIONS
COMMUNICATION_FAILURE = 2 MESSAGE MESS
SYSTEM_FAILURE = 3 MESSAGE MESS.
CASE SY-SUBRC.
WHEN 2.
WRITE: / MESS.
EXIT.
WHEN 3.
WRITE: / MESS.
EXIT.
ENDCASE.
WAIT UNTIL FLAG = 'X'.
CASE RETCODE.
WHEN 0.
WRITE: / TEXT-004, SYSID COLOR 5.
SKIP.
WRITE: SPFLI-CARRID, SPFLI-CONNID, SPFLI-CITYFROM, SPFLI-CITYTO.
WHEN 1.
WRITE: / TEXT-001, / TEXT-002.
WHEN 2 OR 3.
WRITE MESS.
ENDCASE.
*---------------------------------------------------------------------*
* FORM BACK *
*---------------------------------------------------------------------*
* --> T *
*---------------------------------------------------------------------*
FORM BACK USING T.
RECEIVE RESULTS FROM FUNCTION 'BC415_RFC_READ_SPFLI'
IMPORTING
EX_SPFLI = SPFLI
SYS = SYSID
EXCEPTIONS
INVALID_DATA = 1
COMMUNICATION_FAILURE = 2 MESSAGE MESS
SYSTEM_FAILURE = 3 MESSAGE MESS.
RETCODE = SY-SUBRC.
FLAG = 'X'.
ENDFORM.
RFC函数原型
FUNCTION BC415_RFC_READ_SPFLI.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(CARRID) LIKE SFLIGHT-CARRID OPTIONAL
*" VALUE(CONNID) LIKE SFLIGHT-CONNID OPTIONAL
*" EXPORTING
*" VALUE(EX_SPFLI) LIKE SPFLI STRUCTURE SPFLI
*" VALUE(SYS) LIKE SY-SYSID
*" EXCEPTIONS
*" INVALID_DATA
*"----------------------------------------------------------------------
SELECT SINGLE * FROM SPFLI INTO SPFLI_WORKAREA
WHERE CARRID = CARRID
AND CONNID = CONNID.
IF SY-SUBRC EQ 0.
EX_SPFLI = SPFLI_WORKAREA.
ELSE.
MESSAGE E007 RAISING INVALID_DATA.
ENDIF.
SYS = SY-SYSID.
ENDFUNCTION.
同步调用RFC 示例
*&---------------------------------------------------------------------*
*& Report sapbc415_rfcsync_s1 *
*& *
*&---------------------------------------------------------------------*
REPORT SAPBC415_RFCSYNC_S1 MESSAGE-ID BC415.
TABLES SPFLI.
PARAMETERS: ICARR LIKE SFLIGHT-CARRID DEFAULT 'LH',
ICONN LIKE SFLIGHT-CONNID DEFAULT '0400',
DEST LIKE RFCDES-RFCDEST DEFAULT 'NONE'.
DATA: SYSID LIKE SY-SYSID,
MESS(80).
CALL FUNCTION 'BC415_RFC_READ_SPFLI'
DESTINATION DEST
EXPORTING
CARRID = ICARR
CONNID = ICONN
IMPORTING
EX_SPFLI = SPFLI
SYS = SYSID
EXCEPTIONS
INVALID_DATA = 1
COMMUNICATION_FAILURE = 2 MESSAGE MESS
SYSTEM_FAILURE = 3 MESSAGE MESS.
CASE SY-SUBRC.
WHEN 1.
WRITE: / TEXT-001.
EXIT.
WHEN 2.
WRITE: / MESS.
EXIT.
WHEN 3.
WRITE: / MESS.
EXIT.
ENDCASE.
WRITE: / TEXT-004, SYSID COLOR 5.
SKIP.
WRITE: SPFLI-CARRID, SPFLI-CONNID, SPFLI-CITYFROM, SPFLI-CITYTO.
异步调用RFC示例
*&---------------------------------------------------------------------*
*& *
*& Report sapbc415_rfcasync_s1 *
*& *
*&---------------------------------------------------------------------*
REPORT SAPBC415_RFCASYNC_S1 MESSAGE-ID BC415.
TABLES SPFLI.
PARAMETERS: ICARR LIKE SFLIGHT-CARRID DEFAULT 'LH',
ICONN LIKE SFLIGHT-CONNID DEFAULT '0400',
DEST LIKE RFCDES-RFCDEST DEFAULT 'NONE'.
DATA: SYSID LIKE SY-SYSID,
MESS(80),
FLAG,
RETCODE LIKE SY-SUBRC.
CALL FUNCTION 'BC415_RFC_READ_SPFLI'
DESTINATION DEST
STARTING NEW TASK 'T1'
PERFORMING BACK ON END OF TASK
EXPORTING
CARRID = ICARR
CONNID = ICONN
EXCEPTIONS
COMMUNICATION_FAILURE = 2 MESSAGE MESS
SYSTEM_FAILURE = 3 MESSAGE MESS.
CASE SY-SUBRC.
WHEN 2.
WRITE: / MESS.
EXIT.
WHEN 3.
WRITE: / MESS.
EXIT.
ENDCASE.
WAIT UNTIL FLAG = 'X'.
CASE RETCODE.
WHEN 0.
WRITE: / TEXT-004, SYSID COLOR 5.
SKIP.
WRITE: SPFLI-CARRID, SPFLI-CONNID, SPFLI-CITYFROM, SPFLI-CITYTO.
WHEN 1.
WRITE: / TEXT-001, / TEXT-002.
WHEN 2 OR 3.
WRITE MESS.
ENDCASE.
*---------------------------------------------------------------------*
* FORM BACK *
*---------------------------------------------------------------------*
* --> T *
*---------------------------------------------------------------------*
FORM BACK USING T.
RECEIVE RESULTS FROM FUNCTION 'BC415_RFC_READ_SPFLI'
IMPORTING
EX_SPFLI = SPFLI
SYS = SYSID
EXCEPTIONS
INVALID_DATA = 1
COMMUNICATION_FAILURE = 2 MESSAGE MESS
SYSTEM_FAILURE = 3 MESSAGE MESS.
RETCODE = SY-SUBRC.
FLAG = 'X'.
ENDFORM.
RFC函数原型
FUNCTION BC415_RFC_READ_SPFLI.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(CARRID) LIKE SFLIGHT-CARRID OPTIONAL
*" VALUE(CONNID) LIKE SFLIGHT-CONNID OPTIONAL
*" EXPORTING
*" VALUE(EX_SPFLI) LIKE SPFLI STRUCTURE SPFLI
*" VALUE(SYS) LIKE SY-SYSID
*" EXCEPTIONS
*" INVALID_DATA
*"----------------------------------------------------------------------
SELECT SINGLE * FROM SPFLI INTO SPFLI_WORKAREA
WHERE CARRID = CARRID
AND CONNID = CONNID.
IF SY-SUBRC EQ 0.
EX_SPFLI = SPFLI_WORKAREA.
ELSE.
MESSAGE E007 RAISING INVALID_DATA.
ENDIF.
SYS = SY-SYSID.
ENDFUNCTION.
相关文章推荐
- C#同步和异步调用方法实例
- 使用异步方式调用同步方法(实例详解)
- 异步调用RFC开发实例
- thrift java多线程非阻塞同步/异步调用实例
- WCF同步和异步调用实例
- Jquery Ajax解析XML数据(同步及异步调用)简单实例
- jms异步转同步调用实例
- Jquery Ajax解析XML数据(同步及异步调用)简单实例
- PHP异步调用socket简单实例
- JAVA 同步异步简单实例
- .Net智遥工作流中调用SAP RFC实例演示
- Swoole+Lumen:同步编程风格调用MySQL异步查询
- Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
- Symbian编程总结-基础篇-活动对象正解(4)-异步函数的同步调用
- AJAX同步调用与异步调用的选择
- C# 委托的三种调用示例(同步调用 异步调用 异步回调)
- Axis2 创建 web service (2) : 同步异步调用
- Zookeeper的API调用的同步和异步机制以及watcher机制总结
- C#(同步调用、异步调用、异步回调)
- 异步函数的同步调用(转载)