ABAP 将EXECL数据导入SAP内表的几个步骤。 |
您所在的位置:网站首页 › sap导入数据 › ABAP 将EXECL数据导入SAP内表的几个步骤。 |
经常遇到将外部数据大批量的导出sap中。今天的需求是:批量导入BOM分配,然后批量删除。 将execl导入sap内表的函数:ALSM_EXCEL_TO_INTERNAL_TABLE,很好用,不过听说这个函数只能导入1万行以内的数据,具体没有验证。
Step1:声明变量: TYPES: BEGIN OF ITAB1, MATNR LIKE MARA-MATNR, WERKS LIKE MARC-WERKS, END OF ITAB1. DATA:ITAB TYPE STANDARD TABLE OF ITAB1 WITH HEADER LINE. DATA:WA_UPLOAD TYPE ITAB1. DATA:IT_DATA1 TYPE STANDARD TABLE OF ALSMEX_TABLINE WITH HEADER LINE. DATA:FLG_WARNING LIKE CAPIFLAG-FLWARNING. FIELD-SYMBOLS: TYPE ALSMEX_TABLINE. Step2:画屏: SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001. PARAMETERS: FNAME1 TYPE RLGRAP-FILENAME OBLIGATORY. SELECTION-SCREEN END OF BLOCK BLK1. Step3:控制级语句: INITIALIZATION. AT SELECTION-SCREEN ON VALUE-REQUEST FOR FNAME1." SEACH HELP * CALL FUNCTION 'F4_FILENAME' * EXPORTING * FIELD_NAME = 'FNAME1' * IMPORTING * FILE_NAME = FNAME1. CALL FUNCTION 'WS_FILENAME_GET' EXPORTING MASK = ',EXCEL FILE,*.XLS;*.XLSX;' MODE = 'O' "S为保存,O为打开 IMPORTING FILENAME = FNAME1 EXCEPTIONS INV_WINSYS = 1 NO_BATCH = 2 SELECTION_CANCEL = 3 SELECTION_ERROR = 4 OTHERS = 5. START-OF-SELECTION. PERFORM INTERNAL_TABLE. END-OF-SELECTION.上面有2个函数,第一个函数(注释的):F4_FILENAME ,它是获取所有后缀的文件,如图:
第2个函数:WS_FILENAME_GET,它打开的文件仅仅锁定xls。如图:
Step5. 批量删除BOM分配 FORM BOM_DELETE. LOOP AT ITAB. CALL FUNCTION 'CSAP_MAT_BOM_ALLOC_DELETE' EXPORTING MATERIAL = ITAB-MATNR PLANT = ITAB-WERKS BOM_USAGE = '1' * ALTERNATIVE = * FL_NO_CHANGE_DOC = ' ' * FL_COMMIT_AND_WAIT = ' ' IMPORTING FL_WARNING = FLG_WARNING BOM_NO = BOM_NO * TABLES * T_PLANT = EXCEPTIONS ERROR = 1 OTHERS = 2 . IF FLG_WARNING = 'X'. WRITE :/ ITAB-WERKS,ITAB-MATNR , '删除成功'. ELSE. WRITE :/ ITAB-WERKS,ITAB-MATNR , '删除失败'. ENDIF. ENDLOOP. ENDFORM. |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |