ABAP-银行主数据批导

*&---------------------------------------------------------------------*
*& Report ZFIR_031
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZFIR_031.

TABLES: SSCRFIELDS.
*----------------------------------------------------------------------*
*    TYPE-POOLS,TABLES
*----------------------------------------------------------------------*
TYPES:BEGIN OF TY_INPUT" import data structure type
        ACC_ID         TYPE C LENGTH 10,
        BANKS          TYPE C LENGTH 3,
        BANKL          TYPE C LENGTH 15,
        ACC_NUM        TYPE C LENGTH 40,
        REFZL          TYPE C LENGTH 27,
        ACC_TYPE_ID    TYPE C LENGTH 10,
        VALID_FROM     TYPE C LENGTH 12,
        VALID_TO       TYPE C LENGTH 12,
        STATUS         TYPE C LENGTH 2,
        BUKRS          TYPE C LENGTH 4,
        BENEFICIAL     TYPE C LENGTH 60,
        CREATED_BY     TYPE C LENGTH 20,
        OPENED_BY      TYPE C LENGTH 20,
        CREATED_AT_DAT TYPE C LENGTH 20,
        OPENED_AT_DAT  TYPE C LENGTH 20,
*        YBANK          TYPE C LENGTH 3,
*        YPRVN          TYPE C LENGTH 2,
*        YACTPT         TYPE C LENGTH 2,
*        YACTCG         TYPE C LENGTH 2,
*        LIFNR          TYPE C LENGTH 10,
*        YVLDDAT        TYPE C LENGTH 10,
*        YEPTDAT        TYPE C LENGTH 10,


        LANGU          TYPE C LENGTH 2,
        DESCRIPTION    TYPE C LENGTH 60,

        WAERS          TYPE C LENGTH 4,

        VALID_FROM1    TYPE C LENGTH 12,
        VALID_TO1      TYPE C LENGTH 12,
        BUKRS1         TYPE C LENGTH 4,
        HBKID          TYPE C LENGTH 10,
        HKTID          TYPE C LENGTH 10,
        BANKN          TYPE C LENGTH 20,
        HKONT          TYPE C LENGTH 10,

      END OF TY_INPUT.
*----------------------------------------------------------------------*
*    INTERNAL TABLE  WORK AREA
*----------------------------------------------------------------------*
DATA:GT_INPUT TYPE TABLE OF TY_INPUT,
     GS_INPUT TYPE          TY_INPUT.

DATA: GT_MSG         TYPE          CL_FCLM_BAM_UPLOAD_DOWNLOAD=>TY_T_UPLOAD_MESSAGE,
*       LT_MSG         TYPE          BAPIRETTAB,
      GS_MSG         TYPE LINE OF  CL_FCLM_BAM_UPLOAD_DOWNLOAD=>TY_T_UPLOAD_MESSAGE,
*       LS_MSG         TYPE LINE OF  BAPIRETTAB,
      GT_MSG_DISPLAY TYPE         CL_FCLM_BAM_UPLOAD_DOWNLOAD=>TY_T_UPLOAD_MESSAGE.
DATA: CL_FCLM_BAM_UPLOAD_DOWNLOAD TYPE REF TO CL_FCLM_BAM_UPLOAD_DOWNLOAD.

DATA: FUNCTXT TYPE SMP_DYNTXT.  "功能代码文本

DATA: T_FIELDCAT TYPE LVC_T_FCAT"字段目录内表
      W_FIELDCAT TYPE LVC_S_FCAT"字段目录工作区
      W_LAYOUT   TYPE LVC_S_LAYO"用于定义ALV表单的相关格式、属性
*----------------------------------------------------------------------*
*    VARIABLE  CONSTANTS
*----------------------------------------------------------------------*
DATA:G_FLAG.
*----------------------------------------------------------------------*
*    SELECTION-SCREEN
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-001.
PARAMETERS:P_FILE TYPE RLGRAP-FILENAME.
SELECTION-SCREEN COMMENT /2(50TEXT-004.
SELECTION-SCREEN END OF BLOCK BLK.
SELECTION-SCREENFUNCTION KEY 1.

*----------------------------------------------------------------------*
*    INITIALIZATION
*----------------------------------------------------------------------*
INITIALIZATION.
  FUNCTXT-ICON_ID   = ICON_EXPORT.
  FUNCTXT-QUICKINFO '下载导入模版'.
  FUNCTXT-ICON_TEXT '下载导入模版'.
  SSCRFIELDS-FUNCTXT_01 = FUNCTXT.

*----------------------------------------------------------------------*
*    AT SELECTION-SCREEN
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
  CASE SSCRFIELDS-UCOMM.
    WHEN 'FC01'.
      PERFORM FRM_DOWNLOAD_TEMPLATE.
  ENDCASE.
  "PERFORM FRM_BEFORE_UCOMM.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  PERFORM FRM_FILE_F4.
*----------------------------------------------------------------------*
*    START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.

  PERFORM FRM_GET_UPLOAD_DATA.      "get import data

  IF GT_INPUT IS NOT INITIAL OR GT_MSG_DISPLAY IS NOT INITIAL.
*设置输出格式
    PERFORM SET_FIELDCAT.
    "PERFORM FRM_CHECK_DATA.        "check data
    PERFORM FRM_CREATE_ACCOUNT_MAST."create mast data
  ELSE.
    MESSAGE TEXT-002 TYPE 'S' DISPLAY LIKE 'E'.
    RETURN.
  ENDIF.




*----------------------------------------------------------------------*
*    END-OF-SELECTION
*----------------------------------------------------------------------*
*  IF IT_LOG IS INITIAL.
*    "MESSAGE S011() DISPLAY LIKE 'E'.
*    RETURN.
*  ELSE.
*    PERFORM FRM_SET_LAYOUT.   "ALV##
*    PERFORM FRM_SET_FIELDCAT. "ALV##
*    PERFORM FRM_DISPLAY_ALV.  "ALV
*  ENDIF.

*&---------------------------------------------------------------------*
*&      Form  FRM_FILE_F4
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_FILE_F4 .
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      FIELD_NAME 'P_FILE'
    IMPORTING
      FILE_NAME  = P_FILE.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FRM_GET_UPLOAD_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_GET_UPLOAD_DATA .
  DATA: LT_INTERN      TYPE TABLE OF ALSMEX_TABLINE,
        LS_INTERN      TYPE          ALSMEX_TABLINE,
        LT_DB_AMD      TYPE         FCLM_BAM_T_DB_AMD,
        LS_DB_AMD      LIKE LINE OF LT_DB_AMD,
        LT_DB_AC_LINK2 TYPE         FCLM_BAM_T_ACLINK2,
        LS_DB_AC_LINK2 LIKE LINE OF LT_DB_AC_LINK2.

  FIELD-SYMBOLS  <FS> TYPE ANY.
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      FILENAME                = P_FILE
      I_BEGIN_COL             1
      I_BEGIN_ROW             4
      I_END_COL               100
      I_END_ROW               6500
    TABLES
      INTERN                  = LT_INTERN
    EXCEPTIONS
      INCONSISTENT_PARAMETERS 1
      UPLOAD_OLE              2
      OTHERS                  3.

  IF SY-SUBRC 0.
    LOOP AT LT_INTERN INTO LS_INTERN.


      ASSIGN COMPONENT LS_INTERN-COL OF STRUCTURE GS_INPUT TO <FS>.
      IF <FS> IS ASSIGNED.
        <FS> = LS_INTERN-VALUE.
      ENDIF.
      AT END OF ROW.
        CLEAR GS_MSG.
        LS_DB_AMD-VALID_FROM = GS_INPUT-VALID_FROM.
        CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
          EXPORTING
            DATE                      = LS_DB_AMD-VALID_FROM
          EXCEPTIONS
            PLAUSIBILITY_CHECK_FAILED 1
            OTHERS                    2.
        IF SY-SUBRC <> 0.
          GS_MSG-OLD_ACC_ID = GS_INPUT-ACC_ID.
          GS_MSG-ACTION '导入'.
          GS_MSG-MESSAGE '日期格式错误'.
          GS_MSG-TYPE 'E'.

* Implement suitable error handling here
        ENDIF.
        LS_DB_AMD-VALID_TO = GS_INPUT-VALID_TO.
        CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
          EXPORTING
            DATE                      = LS_DB_AMD-VALID_TO
          EXCEPTIONS
            PLAUSIBILITY_CHECK_FAILED 1
            OTHERS                    2.
        IF SY-SUBRC <> 0.
          GS_MSG-OLD_ACC_ID = GS_INPUT-ACC_ID.
          GS_MSG-ACTION '导入'.
          GS_MSG-MESSAGE '日期格式错误'.
          GS_MSG-TYPE 'E'.

* Implement suitable error handling here
        ENDIF.        LS_DB_AC_LINK2
-VALID_FROM = GS_INPUT-VALID_FROM1.        
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'          
EXPORTING            
DATE                      = LS_DB_AC_LINK2-VALID_FROM          
EXCEPTIONS            PLAUSIBILITY_CHECK_FAILED 
1            
OTHERS                    2.        
IF SY-SUBRC <> 0.          GS_MSG
-OLD_ACC_ID = GS_INPUT-ACC_ID.          GS_MSG
-ACTION '导入'.          GS_MSG
-MESSAGE '日期格式错误'.          GS_MSG
-TYPE 'E'.

* Implement suitable error handling here        
ENDIF.        LS_DB_AC_LINK2
-VALID_TO = GS_INPUT-VALID_TO1.        
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'          
EXPORTING            
DATE                      = LS_DB_AC_LINK2-VALID_TO          
EXCEPTIONS            PLAUSIBILITY_CHECK_FAILED 
1            
OTHERS                    2.        
IF SY-SUBRC <> 0.          GS_MSG
-OLD_ACC_ID = GS_INPUT-ACC_ID.          GS_MSG
-ACTION '导入'.          GS_MSG
-MESSAGE '日期格式错误'.          GS_MSG
-TYPE 'E'.

* Implement suitable error handling here        
ENDIF.        

IF GS_MSG IS NOT INITIAL.          
APPEND GS_MSG TO GT_MSG_DISPLAY.        
ENDIF.        

IF GT_MSG_DISPLAY IS INITIAL.          
APPEND GS_INPUT TO GT_INPUT.          
CLEAR GS_INPUT.        
ENDIF.      
ENDAT.    
ENDLOOP.  
ENDIF.

ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_CREATE_ACCOUNT_MAST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_CREATE_ACCOUNT_MAST .  
DATA:LT_DB_AMD      TYPE         FCLM_BAM_T_DB_AMD,       LS_DB_AMD      
LIKE LINE OF LT_DB_AMD,       LT_DB_AMD_T    
TYPE         FCLM_BAM_T_DB_AMD_T,       LS_DB_AMD_T    
LIKE LINE OF LT_DB_AMD_T,       LT_DB_AMD_CUR  
TYPE         FCLM_BAM_T_DB_AMD_CUR,       LS_DB_AMD_CUR  
LIKE LINE OF LT_DB_AMD_CUR,       LT_DB_AMD_LIM  
TYPE         FCLM_BAM_T_DB_AMD_LIM,       LS_DB_AMD_LIM  
LIKE LINE OF LT_DB_AMD_LIM,       LT_DB_AMD_SIG  
TYPE         FCLM_BAM_T_DB_SIG,       LS_DB_AMD_SIG  
LIKE LINE OF LT_DB_AMD_SIG,       LT_DB_AC_LINK2 
TYPE         FCLM_BAM_T_ACLINK2,       LS_DB_AC_LINK2 
LIKE LINE OF LT_DB_AC_LINK2,       LS_T012K       
LIKE         T012K,       LS_T012T       
LIKE         T012T,       LS_T12         
TYPE         T012,       LT_MSG         
TYPE TABLE OF BAPIRET2,       LT_MSG_TY      
TYPE         ESP1_MESSAGE_TAB_TYPE,       LS_MSG_TY      
TYPE LINE OF ESP1_MESSAGE_TAB_TYPE.  

IF GT_MSG_DISPLAY IS INITIAL.    
LOOP AT GT_INPUT INTO GS_INPUT.      LS_DB_AMD
-ACC_ID      = GS_INPUT-ACC_ID.      LS_DB_AMD
-BANKS       = GS_INPUT-BANKS.      LS_DB_AMD
-BANKL       = GS_INPUT-BANKL.      LS_DB_AMD
-ACC_NUM     = GS_INPUT-ACC_NUM.      LS_DB_AMD
-ACC_TYPE_ID  = GS_INPUT-ACC_TYPE_ID.      LS_DB_AMD
-VALID_FROM  = GS_INPUT-VALID_FROM.      LS_DB_AMD
-VALID_TO    = GS_INPUT-VALID_TO.      LS_DB_AMD
-STATUS      = GS_INPUT-STATUS.      LS_DB_AMD
-BUKRS       = GS_INPUT-BUKRS.      LS_DB_AMD
-BENEFICIAL  = GS_INPUT-BENEFICIAL.      LS_DB_AMD
-CREATED_BY  = GS_INPUT-CREATED_BY.      LS_DB_AMD
-OPENED_BY   = GS_INPUT-OPENED_BY.      LS_DB_AMD
-CREATED_AT_DAT = GS_INPUT-CREATED_AT_DAT.      LS_DB_AMD
-OPENED_AT_DAT = GS_INPUT-OPENED_AT_DAT.      

APPEND LS_DB_AMD TO LT_DB_AMD.      
CLEAR LS_DB_AMD.      LS_DB_AMD_T

-ACC_ID      = GS_INPUT-ACC_ID.      
CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'        
EXPORTING          
INPUT            = GS_INPUT-LANGU        
IMPORTING          
OUTPUT           = LS_DB_AMD_T-LANGU        
EXCEPTIONS          UNKNOWN_LANGUAGE 
1          
OTHERS           2.      LS_DB_AMD_T

-DESCRIPTION = GS_INPUT-DESCRIPTION.      
APPEND LS_DB_AMD_T TO LT_DB_AMD_T.      
CLEAR LS_DB_AMD_T.      LS_DB_AMD_CUR

-ACC_ID   = GS_INPUT-ACC_ID.      LS_DB_AMD_CUR
-WAERS    = GS_INPUT-WAERS.      
APPEND LS_DB_AMD_CUR TO LT_DB_AMD_CUR.      
CLEAR LS_DB_AMD_CUR.      LS_DB_AC_LINK2

-ACC_ID      = GS_INPUT-ACC_ID.      LS_DB_AC_LINK2
-VALID_FROM  = GS_INPUT-VALID_FROM1.      LS_DB_AC_LINK2
-VALID_TO    = GS_INPUT-VALID_TO1.      LS_DB_AC_LINK2

-BUKRS       = GS_INPUT-BUKRS1.      LS_DB_AC_LINK2
-HBKID       = GS_INPUT-HBKID.      LS_DB_AC_LINK2
-HKTID       = GS_INPUT-HKTID.      LS_DB_AC_LINK2
-BANKN       = GS_INPUT-BANKN.      

" ADD With leading zero   20170117      
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'        
EXPORTING          
INPUT  = GS_INPUT-HKONT        
IMPORTING          
OUTPUT = LS_DB_AC_LINK2-HKONT.      

" LS_DB_AC_LINK2-HKONT       = GS_INPUT-HKONT.      LS_DB_AC_LINK2
-REFZL       = GS_INPUT-REFZL.      
APPEND LS_DB_AC_LINK2 TO LT_DB_AC_LINK2.      
CLEAR LS_DB_AC_LINK2.      

CALL FUNCTION 'FCLM_BAM_ACCOUNT_CREATE'        
EXPORTING          IT_DB_AMD      
= LT_DB_AMD          IT_DB_AMD_T    
= LT_DB_AMD_T          IT_DB_AMD_CUR  
= LT_DB_AMD_CUR
*         IT_DB_AMD_LIM  = LT_DB_AMD_LIM
*         IT_DB_AMD_SIG  = LT_DB_AMD_SIG          IT_DB_AC_LINK2 
= LT_DB_AC_LINK2          IS_COMMIT      
'X'          IV_SKIPAPPPROC 
'X'
*         IS_T012K       = LS_T012K
*         IS_T012T       = LS_T012T
*         IS_T012        = LS_T12
*         IV_ACCTYPE     = GS_INPUT-ACC_TYPE_ID        
IMPORTING          ET_MSG         
= LT_MSG        
EXCEPTIONS          FAILED         
1          CX_UUID_ERROR  
2          
OTHERS         3.      

IF SY-SUBRC 0.

*        LOOP AT gt_msg INTO gs_msg.
*
*          APPEND gs_msg TO gt_msg_display.
*        ENDLOOP.        GS_MSG

-NEW_ACC_ID = GS_INPUT-ACC_ID.        GS_MSG
-MESSAGE '成功'.        GS_MSG
-TYPE 'S'.        
APPEND GS_MSG TO GT_MSG_DISPLAY.      
ELSE.        GS_MSG
-NEW_ACC_ID = GS_INPUT-ACC_ID.        GS_MSG
-MESSAGE '失败'.        GS_MSG
-TYPE 'E'.        
APPEND GS_MSG TO GT_MSG_DISPLAY.
*        IF gt_msg IS INITIAL.
*          MESSAGE TEXT-003 TYPE 'S'.
*        ENDIF.      
ENDIF.      

CLEAR: GT_MSG,             GS_MSG
,             LT_DB_AMD
,             LS_DB_AMD
,             LT_DB_AMD_T
,             LS_DB_AMD_T
,             LT_DB_AMD_CUR
,             LS_DB_AMD_CUR
,             LT_DB_AMD_LIM 
,             LS_DB_AMD_LIM
,             LT_DB_AMD_SIG 
,             LS_DB_AMD_SIG
,             LT_DB_AC_LINK2
,             LS_DB_AC_LINK2
.      

CLEAR:LS_T012K,            LS_T012T
,            LS_T12
.    
ENDLOOP.  

ENDIF.  
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'    
EXPORTING      I_CALLBACK_PROGRAM 
= SY-REPID     "当前程序      IT_FIELDCAT_LVC    
= T_FIELDCAT  "字段属性    
TABLES      T_OUTTAB           
= GT_MSG_DISPLAY
*     EXCEPTIONS
*     PROGRAM_ERROR      = 1
*     OTHERS             = 2    
.  
IF SY-SUBRC <> 0.
*MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*     WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.  
ENDIF.
*  IF LT_MSG_TY IS NOT INITIAL.
*    CALL FUNCTION 'C14Z_MESSAGES_SHOW_AS_POPUP'
*      TABLES
*        I_MESSAGE_TAB = LT_MSG_TY.
*  ENDIF.
ENDFORM.

*Text elements
*----------------------------------------------------------
* 001 ####
* 002 #######
* 003 ####
*&---------------------------------------------------------------------*
*&      Form  SET_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM SET_FIELDCAT .  
"字段属性定义
*  clear:w_fieldcat.
*  w_fieldcat-fieldname = 'OLD_ACC_ID'.
*  w_fieldcat-scrtext_l = '旧编号'.
*  append w_fieldcat to t_fieldcat.  

CLEAR:W_FIELDCAT.  W_FIELDCAT
-FIELDNAME 'NEW_ACC_ID'.  W_FIELDCAT
-SCRTEXT_L '新编号'.  
APPEND W_FIELDCAT TO T_FIELDCAT.  

CLEAR:W_FIELDCAT.  W_FIELDCAT
-FIELDNAME 'ACTION'.  W_FIELDCAT
-SCRTEXT_L '动作'.  
APPEND W_FIELDCAT TO T_FIELDCAT.  

CLEAR:W_FIELDCAT.  W_FIELDCAT
-FIELDNAME 'MESSAGE'.  W_FIELDCAT
-SCRTEXT_L '消息'.  
APPEND W_FIELDCAT TO T_FIELDCAT.  

CLEAR:W_FIELDCAT.  W_FIELDCAT
-FIELDNAME 'TYPE'.  W_FIELDCAT
-SCRTEXT_L '消息类型'.  
APPEND W_FIELDCAT TO T_FIELDCAT.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FRM_DOWNLOAD_TEMPLATE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_DOWNLOAD_TEMPLATE .  
"定义OLE变量  
DATA:G_EXCEL    TYPE OLE2_OBJECT,       G_APPLICA  
TYPE OLE2_OBJECT,       G_SHEET    
TYPE OLE2_OBJECT,       G_CELL     
TYPE OLE2_OBJECT,       G_WORKBOOK 
TYPE OLE2_OBJECT.  

DATA:C_FILEPATH TYPE STRING" 存放路径       FILENAME   
TYPE STRING,  "文件名称       C_PATH     
TYPE STRING .   " 下载后存放全路径  
" www object  
DATA: LV_OBJDATA  LIKE WWWDATATAB,        LV_OBJ_NAME 
LIKE WWWDATATAB-OBJID,        LT_MIME     

LIKE W3MIME OCCURS 10.  
DATA:L_RET     TYPE ABAP_BOOL,       LV_ANSWER
.  
DATA:LV_FILE TYPE STRING.  




"设置 www object信息
*  lv_objdata-objid = 'ZTMR_EPIC_008'.  LV_OBJ_NAME 
'ZFIR_031'.
*  lv_objdata-text  = '银行主数据导入模版.xlsx'."WWWDATA 对象的短文本  
"保存对话框  
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG    
EXPORTING      WINDOW_TITLE         
'下载模板'      DEFAULT_EXTENSION    
'xlsx'      DEFAULT_FILE_NAME    
'银行主数据导入模版.xlsx'      FILE_FILTER          
'EXCEL'      PROMPT_ON_OVERWRITE  
''    
CHANGING      FULLPATH             
= C_PATH      FILENAME             
= FILENAME      PATH                 
= C_FILEPATH    
EXCEPTIONS      CNTL_ERROR           
1      ERROR_NO_GUI         
2      NOT_SUPPORTED_BY_GUI 
3      
OTHERS               4.  

"检查文件是否存在  
MOVE C_PATH TO LV_FILE.  
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_EXIST    
EXPORTING      FILE                 
= LV_FILE    RECEIVING      RESULT               

= L_RET    
EXCEPTIONS      CNTL_ERROR           
1      ERROR_NO_GUI         
2      WRONG_PARAMETER      
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.    
EXIT.  
ENDIF.  

IF L_RET EQ 'X'.

* 模版已存在,是否覆盖    
CALL FUNCTION 'POPUP_TO_CONFIRM'      
EXPORTING        TEXT_QUESTION  
'模版已存在,是否覆盖?'        TEXT_BUTTON_1  
'是'(005)        TEXT_BUTTON_2  
'否'(006)      
IMPORTING        ANSWER         
= LV_ANSWER      
EXCEPTIONS        TEXT_NOT_FOUND 
1        
OTHERS         2.    
IF SY-SUBRC <> 0.    

ENDIF.    

IF LV_ANSWER EQ 'A'"取消      
EXIT.    
ELSEIF LV_ANSWER NE '1'"否      
EXIT.    
ENDIF.  
ELSE.    LV_ANSWER 
'1'.  
ENDIF.  


IF LV_ANSWER EQ '1'.    

SELECT RELID OBJID      
FROM WWWDATA      
INTO  CORRESPONDING FIELDS OF LV_OBJDATA      
UP TO ROWS      
WHERE SRTF2 AND RELID 'MI'        
AND OBJID = LV_OBJ_NAME.    
ENDSELECT.    
" 下载 wwwdata 至 内存中
*    CALL FUNCTION 'WWWDATA_IMPORT'                            "#EC *
*      EXPORTING
*        KEY               = LV_OBJDATA
*      TABLES
*        MIME              = LT_MIME
*      EXCEPTIONS
*        WRONG_OBJECT_TYPE = 1
*        IMPORT_ERROR      = 2
*        OTHERS            = 3.    
IF C_PATH IS NOT INITIAL.      
" 装载至本地文件      P_FILE 
= C_PATH.      
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT' "        
EXPORTING          
KEY         = LV_OBJDATA          DESTINATION 
= P_FILE.    
ENDIF.  

ENDIF.
ENDFORM.

 

 

posted @ 2021-12-17 11:42  東東東東  阅读(227)  评论(0编辑  收藏  举报