Welcome To My BLOG

This site is to give a brief idea for the abap learners who are looking for some real time programs .It consists of collection of programs from my side . I hope these programs are very much used for all of the learners. Please check the links for any information in ABAP.
Please vote for my Blog. And please input me on this mail addrssess.Email me

Share this link with your friends

http://www.rebtel.com/u/15163104576

For every friend who signs up using this link and makes a payment, we'll give you 8 €!


Thursday, May 10, 2012

Upload data direct from excel.xls file to SAP



*&---------------------------------------------------------------------*
*& Report  YMAE_TEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

*
* Upload data direct from excel.xls file to SAP
*
REPORT zexcelupload.
PARAMETERS: filename LIKE rlgrap-filename MEMORY ID m01,
            begcol 
TYPE i DEFAULT 1 NO-DISPLAY,
            begrow 
TYPE i DEFAULT 1 NO-DISPLAY,
            endcol 
TYPE i DEFAULT 100 NO-DISPLAY,
            endrow 
TYPE i DEFAULT 32000 NO-DISPLAY.
* Tick don't append header
PARAMETERS: kzheader AS CHECKBOX.

DATABEGIN OF intern OCCURS 0.
        
INCLUDE STRUCTURE  alsmex_tabline.
DATAEND OF intern.

DATABEGIN OF intern1 OCCURS 0.
        
INCLUDE STRUCTURE  alsmex_tabline.
DATAEND OF intern1.

DATABEGIN OF t_col OCCURS 0,
       col 
LIKE alsmex_tabline-col,
       
size TYPE i.
DATAEND OF t_col.

DATA: zwlen TYPE i,
      zwlines 
TYPE i.

DATABEGIN OF fieldnames OCCURS 3,
        
title(60),
        
table(6),
        
field(10),
        kz(
1),
      
END OF fieldnames.
* No of columns
DATABEGIN OF data_tab OCCURS 0,
       value_0001(
50),
       value_0002(
50),
       value_0003(
50),
       value_0004(
50),
       value_0005(
50),
       value_0006(
50),
       value_0007(
50),
       value_0008(
50),
       value_0009(
50),
       value_0010(
50),
       value_0011(
50),
       value_0012(
50),
       value_0013(
50),
       value_0014(
50),
       value_0015(
50),
       value_0016(
50),
       value_0017(
50),
       value_0018(
50),
       value_0019(
50),
       value_0020(
50),
       value_0021(
50),
       value_0022(
50),
       value_0023(
50),
       value_0024(
50),
       value_0025(
50),
       value_0026(
50),
       value_0027(
50),
       value_0028(
50),
       value_0029(
50),
       value_0030(
50),
       value_0031(
50),
       value_0032(
50),
       value_0033(
50),
       value_0034(
50),
       value_0035(
50),
       value_0036(
50),
       value_0037(
50),
       value_0038(
50),
       value_0039(
50),
       value_0040(
50),
       value_0041(
50),
       value_0042(
50),
       value_0043(
50),
       value_0044(
50),
       value_0045(
50),
       value_0046(
50),
       value_0047(
50),
       value_0048(
50),
       value_0049(
50),
       value_0050(
50),
       value_0051(
50),
       value_0052(
50),
       value_0053(
50),
       value_0054(
50),
       value_0055(
50),
       value_0056(
50),
       value_0057(
50),
       value_0058(
50),
       value_0059(
50),
       value_0060(
50),
       value_0061(
50),
       value_0062(
50),
       value_0063(
50),
       value_0064(
50),
       value_0065(
50),
       value_0066(
50),
       value_0067(
50),
       value_0068(
50),
       value_0069(
50),
       value_0070(
50),
       value_0071(
50),
       value_0072(
50),
       value_0073(
50),
       value_0074(
50),
       value_0075(
50),
       value_0076(
50),
       value_0077(
50),
       value_0078(
50),
       value_0079(
50),
       value_0080(
50),
       value_0081(
50),
       value_0082(
50),
       value_0083(
50),
       value_0084(
50),
       value_0085(
50),
       value_0086(
50),
       value_0087(
50),
       value_0088(
50),
       value_0089(
50),
       value_0090(
50),
       value_0091(
50),
       value_0092(
50),
       value_0093(
50),
       value_0094(
50),
       value_0095(
50),
       value_0096(
50),
       value_0097(
50),
       value_0098(
50),
       value_0099(
50),
       value_0100(
50).
DATAEND OF data_tab.
DATA: tind(4TYPE n.
DATA: zwfeld(19).
FIELD-SYMBOLS: <fs1>.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.
  
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
    
EXPORTING
      
mask      = '*.xls'
      
static    = 'X'
    
CHANGING
      file_name = filename.


START-
OF-SELECTION.

  
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    
EXPORTING
      filename                = filename
      i_begin_col             = begcol
      i_begin_row             = begrow
      i_end_col               = endcol
      i_end_row               = endrow
    
TABLES
      intern                  = intern
    
EXCEPTIONS
      inconsistent_parameters = 
1
      upload_ole              = 
2
      
OTHERS                  = 3.

  
IF sy-subrc <> 0.
    
WRITE:/ 'Upload Error ', sy-subrc.
  
ENDIF.

END-OF-SELECTION.

  
LOOP AT intern.
    intern1 = intern.
    
CLEAR intern1-row.
    
APPEND intern1.
  
ENDLOOP.

  
SORT intern1 BY col.
  
LOOP AT intern1.
    
AT NEW col.
      t_col-col = intern1-col.
      
APPEND t_col.
    
ENDAT.
    zwlen = 
STRLEN( intern1-value ).
    
READ TABLE t_col WITH KEY col = intern1-col.
    
IF sy-subrc EQ 0.
      
IF zwlen > t_col-size.
        t_col-
size = zwlen.
*                          Internal Table, Current Row Index
        
MODIFY t_col INDEX sy-tabix.
      
ENDIF.
    
ENDIF.
  
ENDLOOP.

  
DESCRIBE TABLE t_col LINES zwlines.

  
SORT intern BY row col.
  
IF kzheader = 'X'.
    
LOOP AT intern.
      fieldnames-
title = intern-value.
      
APPEND fieldnames.
      
AT END OF row.
        
EXIT.
      
ENDAT.
    
ENDLOOP.
  
ELSE.
    
DO zwlines TIMES.
      
WRITE sy-index TO fieldnames-title.
      
APPEND fieldnames.
    
ENDDO.
  
ENDIF.

  
SORT intern BY row col.
  
LOOP AT intern.
    
IF kzheader = 'X'
    
AND intern-row = 1.
      
CONTINUE.
    
ENDIF.
    tind = intern-col.
    
CONCATENATE 'DATA_TAB-VALUE_' tind INTO zwfeld.
    
ASSIGN (zwfeld) TO <fs1>.
    <fs1> = intern-
value.
    
AT END OF row.
      
APPEND data_tab.
      
CLEAR data_tab.
    
ENDAT.
  
ENDLOOP.

  
CALL FUNCTION 'DISPLAY_BASIC_LIST'
    
EXPORTING
      file_name     = filename
    
TABLES
      data_tab      = data_tab
      fieldname_tab = fieldnames.


No comments: