• SAP 自定义表数据导入程序


    一些配置数据,或者自定表的基础数据,需要初期导入,或者是一些表维护的数据,需要一次性导入,所以做了这个导入程序,支持所有表,作为一个通用表的导入程序 。

    可以直接SE38创建程序,激活,执行即可使用:

    1. *&---------------------------------------------------------------------*
    2. *& Report ZLXL001
    3. *&
    4. *&---------------------------------------------------------------------*
    5. *&
    6. *&
    7. *&---------------------------------------------------------------------*
    8. REPORT ZLXL001.
    9. TABLES:RSRD1.
    10. TYPE-POOLS:ABAP.
    11. FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE,
    12. <DYN_WA>,
    13. <DYN_FIELD>.
    14. DATA: DY_TABLE TYPE REF TO DATA,
    15. DY_LINE TYPE REF TO DATA,
    16. XFC TYPE LVC_S_FCAT,
    17. IFC TYPE LVC_T_FCAT.
    18. DATA : GT_EXCEL_T TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE,
    19. GS_EXCEL_T LIKE LINE OF GT_EXCEL_T.
    20. DATA: GC_FIELDVALUE TYPE FIELDVALUE, "字符值
    21. GC_FLDNAME TYPE FIELDNAME. "字段名
    22. SELECTION-SCREEN:BEGIN OF BLOCK BLK01 WITH FRAME TITLE TEXT-001.
    23. PARAMETERS:P_TBMA TYPE RSRD1-TBMA_VAL,
    24. P_FILE LIKE RLGRAP-FILENAME.
    25. SELECTION-SCREEN END OF BLOCK BLK01.
    26. AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    27. PERFORM FRM_GET_FILEPATH.
    28. START-OF-SELECTION.
    29. CHECK P_TBMA IS NOT INITIAL.
    30. CHECK P_FILE IS NOT INITIAL.
    31. PERFORM PRM_GET_TAB_STRC.
    32. PERFORM PRM_GET_EXCEL.
    33. PERFORM PRM_UPDATA_TAB.
    34. *&---------------------------------------------------------------------*
    35. *& Form FRM_GET_FILEPATH
    36. *&---------------------------------------------------------------------*
    37. * text
    38. *----------------------------------------------------------------------*
    39. * --> p1 text
    40. * <-- p2 text
    41. *----------------------------------------------------------------------*
    42. FORM FRM_GET_FILEPATH .
    43. CALL FUNCTION 'WS_FILENAME_GET'
    44. EXPORTING
    45. MASK = ',Excel(*.xls),*.XLS,*.XLSX,'
    46. TITLE = '选择文件'(100)
    47. IMPORTING
    48. FILENAME = P_FILE
    49. EXCEPTIONS
    50. INV_WINSYS = 1
    51. NO_BATCH = 2
    52. SELECTION_CANCEL = 3
    53. SELECTION_ERROR = 4
    54. OTHERS = 5.
    55. IF SY-SUBRC <> 0.
    56. " MESSAGE e100(zdev) WITH '选择文件出错!'(007).
    57. ENDIF.
    58. ENDFORM. " FRM_GET_FILEPATH
    59. *&---------------------------------------------------------------------*
    60. *& Form PRM_GET_TAB_STRC
    61. *&---------------------------------------------------------------------*
    62. * text
    63. *----------------------------------------------------------------------*
    64. * --> p1 text
    65. * <-- p2 text
    66. *----------------------------------------------------------------------*
    67. FORM PRM_GET_TAB_STRC .
    68. DATA:GT_TABLE TYPE DDFIELDS,
    69. GS_TABLE TYPE DFIES.
    70. CALL FUNCTION 'CATSXT_GET_DDIC_FIELDINFO'
    71. EXPORTING
    72. IM_STRUCTURE_NAME = P_TBMA
    73. IMPORTING
    74. EX_DDIC_INFO = GT_TABLE
    75. EXCEPTIONS
    76. FAILED = 1
    77. OTHERS = 2.
    78. IF SY-SUBRC <> 0.
    79. ENDIF.
    80. LOOP AT GT_TABLE INTO GS_TABLE.
    81. CLEAR XFC.
    82. XFC-FIELDNAME = GS_TABLE-FIELDNAME .
    83. XFC-INTTYPE = GS_TABLE-INTTYPE.
    84. XFC-INTLEN = GS_TABLE-LENG.
    85. XFC-DECIMALS = GS_TABLE-DECIMALS.
    86. APPEND XFC TO IFC.
    87. ENDLOOP.
    88. CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
    89. EXPORTING
    90. IT_FIELDCATALOG = IFC
    91. IMPORTING
    92. EP_TABLE = DY_TABLE.
    93. ASSIGN DY_TABLE->* TO <DYN_TABLE>.
    94. CREATE DATA DY_LINE LIKE LINE OF <DYN_TABLE>.
    95. ASSIGN DY_LINE->* TO <DYN_WA>.
    96. ENDFORM. " PRM_GET_TAB_STRC
    97. *&---------------------------------------------------------------------*
    98. *& Form PRM_GET_EXCEL
    99. *&---------------------------------------------------------------------*
    100. * text
    101. *----------------------------------------------------------------------*
    102. * --> p1 text
    103. * <-- p2 text
    104. *----------------------------------------------------------------------*
    105. FORM PRM_GET_EXCEL .
    106. IF P_FILE IS NOT INITIAL.
    107. *将excel数据传入内表
    108. CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    109. EXPORTING
    110. FILENAME = P_FILE
    111. I_BEGIN_COL = '1'
    112. I_BEGIN_ROW = '2'
    113. I_END_COL = '300'
    114. I_END_ROW = '50000'
    115. TABLES
    116. INTERN = GT_EXCEL_T.
    117. ENDIF.
    118. IF GT_EXCEL_T[] IS NOT INITIAL.
    119. LOOP AT GT_EXCEL_T INTO GS_EXCEL_T.
    120. AT NEW ROW.
    121. CLEAR .
    122. ENDAT.
    123. IF IS INITIAL.
    124. ASSIGN COMPONENT GS_EXCEL_T-COL OF STRUCTURE TO .
    125. IF SY-SUBRC = 0.
    126. = SY-MANDT.
    127. ENDIF.
    128. ENDIF.
    129. GS_EXCEL_T-COL = GS_EXCEL_T-COL + 1.
    130. GC_FIELDVALUE = GS_EXCEL_T-VALUE.
    131. CONDENSE GC_FIELDVALUE.
    132. ASSIGN COMPONENT GS_EXCEL_T-COL OF STRUCTURE TO .
    133. IF SY-SUBRC = 0.
    134. = GC_FIELDVALUE.
    135. ENDIF.
    136. AT END OF ROW.
    137. APPEND TO .
    138. ENDAT.
    139. ENDLOOP.
    140. ENDIF.
    141. ENDFORM. " PRM_GET_EXCEL
    142. *&---------------------------------------------------------------------*
    143. *& Form PRM_UPDATA_TAB
    144. *&---------------------------------------------------------------------*
    145. * text
    146. *----------------------------------------------------------------------*
    147. * --> p1 text
    148. * <-- p2 text
    149. *----------------------------------------------------------------------*
    150. FORM PRM_UPDATA_TAB .
    151. MODIFY (P_TBMA) FROM TABLE <DYN_TABLE>.
    152. IF SY-SUBRC = 0.
    153. MESSAGE '导入成功' TYPE 'S'.
    154. ELSE.
    155. MESSAGE '导入失败' TYPE 'S' DISPLAY LIKE 'E'.
    156. EXIT.
    157. ENDIF.
    158. ENDFORM. " PRM_UPDATA_TAB

  • 相关阅读:
    13.Ansible.roles案例
    快来学习这个高效绘制流程图的方法
    Vue04/Vue组件通信、Vue组件父传子 props 传值 及 props 介绍
    小活动带来强增收!开利网络为南海军校建立“强粘性”引流转化路径
    2022年最新海南机动车签字授权人模拟考试及答案
    (附源码)springboot码头作业管理系统 毕业设计 341654
    知识图谱:语义网络、语义网、链接数据、知识图谱
    Electron+vite+vuetify项目搭建
    C++ Reference: Standard C++ Library reference: C Library: cwchar: swscanf
    百人研发团队百亿销售规模的技术架构实践分享
  • 原文地址:https://blog.csdn.net/weixin_43899798/article/details/128068948