实例RFC-临时表的操作
+++++++++++++++++++++++ 实例RFC ++++++++++++++++++++++++++++++++++++++++++++++ 
*建立临时表ZTEST1,字段为: 
* ZUSERID CHAR 20 
* ZPASSWD CHAR 20 
*------------------------------------------------- 
FUNCTION ZRFC_01. 
*"---------------------------------------------------------------------- 
*"*"Local Interface: 
*"  IMPORTING 
*"     VALUE(ACTION) TYPE  /1SAP1/CL_ACH0001  传入参数ACTION,表示CREATE、EDIT、DELETE记录 
*"     VALUE(WHEREUSERID) TYPE  /GC1/DTE_MSG_TXT 传入参数WHEREUSERID,按照USERID来查找关键字 
*"  EXPORTING 
*"     VALUE(RETURN) TYPE  /AIN/ACT_PUB_PARAMNAME 传出参数RETURN,返回是否成功,空串表示成功,非空串表示未成功 
*"     VALUE(ERRNUM) TYPE  /AIN/ACTIVITY_COUNTER 传出参数ERRNUM,返回错误代码 
*"  TABLES 
*"      ZTEMPTABLE STRUCTURE  ZTEST1    传入、传出表,以表为参数 
*"---------------------------------------------------------------------- 
  
  TABLES:ZTEST1. 
  
  DATA: 
  WA_ZTEMPTABLE LIKE ZTEMPTABLE, 
  TRANSACTION_ID LIKE ARFCTID, 
  V_VAILD(1) TYPE C. 
  
  V_VAILD = 'X'. 
  
* OPEN A DATA TRANSACTION 
  CALL FUNCTION 'TRANSACTION_BEGIN' 
    IMPORTING 
      TRANSACTION_ID = TRANSACTION_ID. 
 
  CASE ACTION . 
  *按照关键字ZUSERID查询 
     WHEN 'QUERY'. 
      SELECT * FROM ZTEST1 INTO TABLE ZTEMPTABLE where ZUSERID = WHEREUSERID. 
        IF SY-SUBRC = 0. 
        ELSE. 
          V_VAILD = ''. 
          ERRNUM = SY-SUBRC. 
        ENDIF. 
       
  *选择所有的记录 
    WHEN 'SELECTALL'. 
      SELECT * FROM ZTEST1 INTO TABLE ZTEMPTABLE. 
        IF SY-SUBRC = 0. 
        ELSE. 
          V_VAILD = ''. 
          ERRNUM = SY-SUBRC. 
        ENDIF. 
       
*插入记录 
    WHEN 'CREATE'. 
  
      LOOP AT ZTEMPTABLE INTO WA_ZTEMPTABLE. 
        INSERT ZTEST1 FROM WA_ZTEMPTABLE. 
        IF SY-SUBRC = 0. 
        ELSE. 
          V_VAILD = ''. 
          ERRNUM = SY-SUBRC. 
        ENDIF. 
      ENDLOOP. 
  
*修改记录 
    WHEN 'EDIT'. 
  
      LOOP AT ZTEMPTABLE INTO WA_ZTEMPTABLE. 
        UPDATE ZTEST1 FROM WA_ZTEMPTABLE. 
        IF SY-SUBRC = 0. 
        ELSE. 
          V_VAILD = ''. 
          ERRNUM = SY-SUBRC. 
        ENDIF. 
      ENDLOOP. 
  
*删除记录 
    WHEN 'DELETE'. 
  
      LOOP AT ZTEMPTABLE INTO WA_ZTEMPTABLE. 
        DELETE ZTEST1 FROM WA_ZTEMPTABLE. 
        IF SY-SUBRC = 0. 
        ELSE. 
          V_VAILD = ''. 
          ERRNUM = SY-SUBRC. 
        ENDIF. 
      ENDLOOP. 
  
    WHEN OTHERS. 
  
  ENDCASE. 
  
  *如果V_VALID为X,则表示成功,否则表示失败,并返回RETURN错误代码 
  IF V_VAILD = 'X'. 
    CALL FUNCTION 'TRANSACTION_END' 
      EXPORTING 
        TRANSACTION_ID = TRANSACTION_ID. 
    RETURN = ''. 
  ELSE. 
    CALL FUNCTION 'TRANSACTION_ABORT' 
      EXPORTING 
        TRANSACTION_ID = TRANSACTION_ID. 
    RETURN = 'THE CURRENT ACTION IS FAILURE!'. 
 
  ENDIF. 
 
ENDFUNCTION
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号