登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

原来为了你

我的人生就是要一次次的超越

 
 
 

日志

 
 
 
 

[转]动态生成和检查Report  

2011-07-01 15:55:00|  分类: ABAP基础知识 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

*&---------------------------------------------------------------------*
*& Report  ZTEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  z_barry_up_down_request                 .
TYPE-POOLStrwbostms.
DATA:
    es_selected_request 
TYPE trwbo_request_header,
    es_selected_task 
TYPE trwbo_request_header,
    iv_organizer_type 
TYPE trwbo_calling_organizer,
    is_selection 
TYPE trwbo_selection.
DATAfolder TYPE string ,
      flag 
TYPE c        ,
      dir_trans 
TYPE text255  ,
      path2 
TYPE text255 ,
      localfolder
(128TYPE c ,
      upfilename
(11TYPE c.
DATA:
  lt_request 
TYPE stms_tr_requests,
  lt_tp_maintain 
TYPE stms_tp_maintains.
DATA:
  et_request_infos 
TYPE stms_wbo_requests,
  request_info 
TYPE stms_wbo_request,
  request 
LIKE e070-trkorr.
DATABEGIN OF it_memo OCCURS ,
        
line(255TYPE c,
      
END OF it_memo.
DATAerror LIKE boole-boole ,
      err_txt
(100TYPE c .

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE t1.
PARAMETERSdownload RADIOBUTTON GROUP typ USER-COMMAND sele DEFAULT 'X'.
PARAMETERSupload RADIOBUTTON GROUP typ.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE t2.
PARAMETERS:  p_file(255TYPE c LOWER CASE MODIF ID m2,
             p_client 
LIKE tmsbuffer-tarcli DEFAULT sy-mandt
                           
MATCHCODE OBJECT h_t000 MODIF ID m2.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE t3.
PARAMETERS:p_reqnum TYPE trkorr MODIF ID m3,
           p_folder 
LIKE rlgrap-filename DEFAULT 'C:\' LOWER CASE MODIF ID m3 ,
           p_memo
(255TYPE c MODIF ID m3.
SELECTION-SCREEN END OF BLOCK b3.
INITIALIZATION.
  t1 
'选择功能'.
  t2 
'上传参数'.
  t3 
'下载参数'.
  
IF sy-opsys 'Windows NT'.
    flag 
'\'.
  
ELSE.
    flag 
'/'.
  
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_reqnum.
  iv_organizer_type 
'W'.
  is_selection
-reqstatus 'R'.
  
CALL FUNCTION 'TR_PRESENT_REQUESTS_SEL_POPUP'
    
EXPORTING
      iv_organizer_type   
iv_organizer_type
      is_selection        
is_selection
    
IMPORTING
      es_selected_request 
es_selected_request
      es_selected_task    
es_selected_task.
  p_reqnum 
es_selected_request-trkorr.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_folder.
  
CALL METHOD cl_gui_frontend_services=>directory_browse
    
CHANGING
      selected_folder 
folder
    
EXCEPTIONS
      cntl_error      
1
      error_no_gui    
2
      
OTHERS          3.
  p_folder 
folder.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  
DATA:
    file 
TYPE file_table,
    rc 
TYPE i,
    file_table 
TYPE filetable,
    file_filter 
TYPE string VALUE '(K*.*)|K*.*||'.
  
CALL METHOD cl_gui_frontend_services=>file_open_dialog
    
EXPORTING
      file_filter             
file_filter
    
CHANGING
      file_table              
file_table
      rc                      
rc
    
EXCEPTIONS
      file_open_dialog_failed 
1
      cntl_error              
2
      error_no_gui            
3
      not_supported_by_gui    
4
      
OTHERS                  5.
  
IF sy-subrc <> 0.
    
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  
ENDIF.
  
READ TABLE file_table INTO file INDEX 1.
  p_file 
file.
AT SELECTION-SCREEN OUTPUT.
  
LOOP AT SCREEN.
    
CASE screen-group1.
      
WHEN 'M2'.
        
IF download 'X'.
          
screen-active '0'.
        
ELSE.
          
screen-active '1'.
        
ENDIF.
      
WHEN 'M3'.
        
IF download 'X'.
          
screen-active '1'.
        
ELSE.
          
screen-active '0'.
        
ENDIF.
    
ENDCASE.
    
MODIFY SCREEN.
  
ENDLOOP.
START
-OF-SELECTION.
  
CALL FUNCTION 'RSPO_R_SAPGPARAM'
    
EXPORTING
      name   
'DIR_TRANS'
    
IMPORTING
      
value  dir_trans
    
EXCEPTIONS
      error  
0
      
OTHERS 0.
  
IF download 'X'.
    
IF p_reqnum '' OR p_folder ''.
      
MESSAGE '必须输入请求号和地址TYPE 'I'.
      
EXIT.
    
ENDIF.
    
PERFORM downloadrequest.
  
ELSE.
    
IF p_client '' OR p_file '' .
      
MESSAGE '必须输入文件名和Client' TYPE 'I'.
      
EXIT.
    
ENDIF.
    
PERFORM uploadrequest.
    
PERFORM addrequest.
  
ENDIF.
*&---------------------------------------------------------------------*
*&      Form  DOWNLOADREQUEST
*&---------------------------------------------------------------------*
FORM downloadrequest .
  
CONCATENATE p_reqnum+3(7'.' p_reqnum(3INTO p_reqnum.
  
CONCATENATE dir_trans 'cofiles' p_reqnum INTO path2 SEPARATED BY flag.
  
CONCATENATE p_folder '\' p_reqnum INTO localfolder.
  
PERFORM down_file USING path2
                          localfolder 
.
  p_reqnum
(1) = 'R'.
  
CONCATENATE dir_trans 'data' p_reqnum INTO path2 SEPARATED BY flag.
  
CONCATENATE p_folder '\' p_reqnum INTO localfolder.
  
PERFORM down_file USING path2
                          localfolder 
.
  
IF p_memo <> ''.
    
DATA str TYPE string.
    it_memo
-line p_memo.
    
APPEND it_memo.
    p_reqnum
(1) = 'K'.
    p_reqnum+8
(3) = 'TXT'.
    
CONCATENATE p_folder '\' p_reqnum INTO localfolder.
    str 
localfolder .
    
CALL FUNCTION 'GUI_DOWNLOAD'
      
EXPORTING
        filename 
str
      
TABLES
        data_tab 
it_memo.
  
ENDIF.
  
MESSAGE '成功下载!' TYPE 'I'.
ENDFORM.                    " DOWNLOADREQUEST
*&--------------------------------------------------------------------*
*&      Form  DOWN_FILE
*&--------------------------------------------------------------------*
FORM down_file USING    p_path
                        file_name 
.
  
DATApath LIKE rcgfiletr-ftappl .
  
DATAlocalfile LIKE rcgfiletr-ftfront.
  path 
p_path .
  localfile 
file_name .
  
CLEAR:error,err_txt.
  
CALL FUNCTION 'C13Z_FILE_DOWNLOAD_BINARY'
    
EXPORTING
      i_file_front_end    
localfile
      i_file_appl         
path
      i_file_overwrite    
'X'
    
IMPORTING
      e_flg_open_error    
error
      e_os_message        
err_txt
    
EXCEPTIONS
      fe_file_open_error  
1
      fe_file_exists      
2
      fe_file_write_error 
3
      ap_no_authority     
4
      ap_file_open_error  
5
      ap_file_empty       
6
      
OTHERS              7.
  
IF sy-subrc <> 0.
    
IF sy-msgty '' .
      sy
-msgty 'E' .
    
ENDIF .
    
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  
ENDIF.
  
IF error 'X'.
    
MESSAGE err_txt TYPE 'I'.
    
STOP.
  
ENDIF.
ENDFORM.                               " DOWN_FILE
*&--------------------------------------------------------------------*
*&      Form  UP_FILE
*&--------------------------------------------------------------------*
FORM up_file USING      p_path
                        file_name 
.
  
DATApath LIKE rcgfiletr-ftappl .
  
DATAlocalfile LIKE rcgfiletr-ftfront.
  path 
p_path .
  localfile 
file_name .
  
CLEAR:error,err_txt.
  
CALL FUNCTION 'C13Z_FILE_UPLOAD_BINARY'
    
EXPORTING
      i_file_front_end   
localfile
      i_file_appl        
path
      i_file_overwrite   
'X'
    
IMPORTING
      e_flg_open_error   
error
      e_os_message       
err_txt
    
EXCEPTIONS
      fe_file_not_exists 
1
      fe_file_read_error 
2
      ap_no_authority    
3
      ap_file_open_error 
4
      ap_file_exists     
5
      
OTHERS             6.
  
IF sy-subrc <> 0.
    
IF sy-msgty '' .
      sy
-msgty 'E' .
    
ENDIF .
    
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  
ENDIF.
  
IF error 'X'.
    
MESSAGE err_txt TYPE 'I'.
    
STOP.
  
ENDIF.
*  IF sy-subrc <> 0.
*    CASE sy-subrc  .
*      WHEN 1 .
*        MESSAGE '本地文件不存在!' TYPE 'I' .
*      WHEN 2 .
*        MESSAGE '读取本地文件出错!' TYPE 'I' .
*      WHEN 3 .
*        MESSAGE '服务器权限错误!' TYPE 'I' .
*      WHEN 4 .
*        MESSAGE '服务器文件打开错误!' TYPE 'I' .
*      WHEN 5 .
*        MESSAGE '服务器文件已经存在!' TYPE 'I' .
*      WHEN 6 .
*        MESSAGE '其他错误!' TYPE 'I' .
*    ENDCASE .
*  ENDIF.
ENDFORM.                    "UP_FILE
*&---------------------------------------------------------------------*
*&      Form  UPLOADREQUEST
*&---------------------------------------------------------------------*
FORM uploadrequest .
  
DATA:
      filename 
LIKE sdbah-actid ,
      extension 
LIKE sdbad-funct,
      n 
TYPE i ,
      
m TYPE i .
  
CALL FUNCTION 'SPLIT_FILENAME'
    
EXPORTING
      long_filename  
p_file
    
IMPORTING
      pure_filename  
filename
      pure_extension 
extension.
  
CONCATENATE filename '.' extension INTO upfilename .
  
CONCATENATE extension filename INTO request.
  
CONCATENATE dir_trans 'cofiles' upfilename INTO path2 SEPARATED BY flag.
  
PERFORM up_file USING path2
                        p_file 
.
  upfilename
(1) = 'R'.
  
CONCATENATE dir_trans 'data' upfilename INTO path2 SEPARATED BY flag.
  n 
STRLENp_file ).
  
11 .
  p_file+m
(1) = 'R'.
  
PERFORM up_file USING path2
                        p_file 
.
ENDFORM.                    " UPLOADREQUEST
*&---------------------------------------------------------------------*
*&      Form  addrequest
*&---------------------------------------------------------------------*
FORM addrequest .
  
DATA system LIKE tmscsys-sysnam .
  system 
sy-sysid.
  
CALL FUNCTION 'TR_AUTHORITY_CHECK_ADMIN'
    
EXPORTING
      iv_adminfunction 
'TADD'
    
EXCEPTIONS
      e_no_authority   
1
      e_invalid_user   
2
      
OTHERS           3.
  
IF sy-subrc <> 0.
    
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    
EXIT.
  
ENDIF.
  
CALL FUNCTION 'TMS_UI_APPEND_TR_REQUEST'
    
EXPORTING
      iv_system             
system
      iv_request            
request
      iv_expert_mode        
'X'
      iv_ctc_active         
'X'
    
EXCEPTIONS
      cancelled_by_user     
1
      append_request_failed 
2
      
OTHERS                3.
  
CHECK sy-subrc 0.
  
CALL FUNCTION 'TMS_MGR_READ_TRANSPORT_REQUEST'
    
EXPORTING
      iv_request                 
request
      iv_target_system           
system
    
IMPORTING
      et_request_infos           
et_request_infos
    
EXCEPTIONS
      read_config_failed         
1
      table_of_requests_is_empty 
2
      system_not_available       
3
      
OTHERS                     4.
  
CLEAR request_info.
  
READ TABLE et_request_infos INTO request_info INDEX 1.
  
IF request_info-e070-korrdev 'CUST' AND NOT p_client IS INITIAL.
    
CALL FUNCTION 'TMS_MGR_MAINTAIN_TR_QUEUE'
      
EXPORTING
        iv_command                 
'FILLCLIENT'
        iv_system                  
system
        iv_request                 
request
        iv_tarcli                  
p_client
        iv_monitor                 
'X'
        iv_verbose                 
'X'
      
IMPORTING
        et_tp_maintains            
lt_tp_maintain
      
EXCEPTIONS
        read_config_failed         
1
        table_of_requests_is_empty 
2
        
OTHERS                     3.
    
IF sy-subrc <> 0.
      
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
      
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      
EXIT.
    
ENDIF.
  
ENDIF.
  
CALL FUNCTION 'TR_AUTHORITY_CHECK_ADMIN'
    
EXPORTING
      iv_adminfunction 
'IMPS'
    
EXCEPTIONS
      e_no_authority   
1
      e_invalid_user   
2
      
OTHERS           3.
  
IF sy-subrc <> 0.
    
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    
EXIT.
  
ENDIF.
  
CALL FUNCTION 'TMS_UI_IMPORT_TR_REQUEST'
    
EXPORTING
      iv_system             
system
      iv_request            
request
      iv_tarcli             
p_client
      iv_some_active        
space
    
EXCEPTIONS
      cancelled_by_user     
1
      import_request_denied 
2
      import_request_failed 
3
      
OTHERS                4.
ENDFORM.                    " addrequest 

  评论这张
 
阅读(658)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018