Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member

Hello Friends,

In this tutorial, I am explaining the concept:--            

Fetch file from presentation server and execute in “Background”.

Program:--

TYPE-POOLS: slis.

flat file structure*****************
TYPES: BEGIN OF ty_data,
          dealer_code
TYPE kunnr,
          plant
TYPE werks,*          text TYPE sgtxt,
          dr_cr_indicator
(2) TYPE c,
          labr_value
TYPE dmbtr,
          claim_mnth
(2) TYPE c,
          claim_yr
(4) TYPE c,
          cr_note_no
(6) TYPE n,
       
END OF ty_data.
DATA : wa_data TYPE ty_data,
       it_data
TYPE TABLE OF ty_data.
DATA : wa_bapi_data TYPE ty_data,
       it_bapi_data
TYPE TABLE OF ty_data.
TYPES: BEGIN OF ty_final,
        claim_mnth
(2) TYPE c,

        claim_yr(4) TYPE c,

        plant TYPE werks

        labr_value TYPE dmbtr,

        cr_note_no(6) TYPE n,
      
END OF ty_final.

***********fetch indexkey table declarion

DATA : exp_data TYPE STANDARD TABLE OF ty_data,
       indxkey
LIKE mcdx-srtfdwa_indx TYPE mcdx.

DATA:it_final TYPE STANDARD TABLE OF ty_final,
      wa_final
TYPE ty_final.
DATAgs_layout TYPE slis_layout_alv,
       gt_fieldcat
TYPE slis_t_fieldcat_alv,
       gt_events
TYPE slis_t_event,
       g_repid
LIKE sy-repid,
       ls_fieldcat
TYPE slis_fieldcat_alv,
       w_alv_print
TYPE slis_print_alv.DATA: str.
******************************************************************           SELECTION-SCREEN                  ******************************************************************SELECTION-SCREEN BEGIN OF BLOCK b1  WITH FRAME TITLE text-001.SELECTION-SCREEN SKIP 2.PARAMETER p_file TYPE ibipparms-path OBLIGATORY.SELECTION-SCREEN SKIP 2.SELECTION-SCREEN END OF BLOCK b1.
******************************************************************          AT SELECTION-SCREEN                ******************************************************************AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
 
PERFORM file_browse.
 
PERFORM file_upload. " Files into internal table.
AT SELECTION-SCREEN OUTPUT.
 
DATA: exclude LIKE rsexfcode OCCURS 0 WITH HEADER LINE,
        ls_submit_info
TYPE rssubinfo.
******************************************************************          START-OF-SELECTION                 ******************************************************************START-OF-SELECTION.
 
PERFORM process_data.

 
IF it_final[] IS NOT INITIAL.
   
PERFORM alv_display.
   
PERFORM alv_display_fm.
 
ENDIF.

*&---------------------------------------------------------------------**&      Form  FILE_BROWSE*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*FORM file_browse .
 
CLEAR p_file.
 
CALL FUNCTION 'F4_FILENAME'
   
IMPORTING
      file_name
= p_file.

ENDFORM.                   

" FILE_BROWSE*&---------------------------------------------------------------------**&     

Form  FILE_UPLOAD*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*FORM file_upload .
 
DATA ip_file TYPE string.
 
CLEAR ip_file.
 
REFRESH it_data.
  ip_file
= p_file.
 
CALL FUNCTION 'GUI_UPLOAD'
   
EXPORTING
      filename               
= ip_file
      has_field_separator    
= 'X'
   
TABLES
      data_tab               
= it_data
   
EXCEPTIONS
      file_open_error        
= 1
      file_read_error        
= 2
      no_batch               
= 3
      gui_refuse_filetransfer
= 4
      invalid_type           
= 5
      no_authority           
= 6
      unknown_error          
= 7
      bad_data_format        
= 8
      header_not_allowed     
= 9
      separator_not_allowed  
= 10
      header_too_long        
= 11
      unknown_dp_error       
= 12
      access_denied          
= 13
      dp_out_of_memory       
= 14
      disk_full              
= 15
      dp_timeout             
= 16
     
OTHERS                  = 17.
 
IF sy-subrc <> 0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
 
ENDIF.

 
REFRESH: exp_data.
  exp_data
= it_data.*Index key is group of Report & UserId.
 
CONCATENATE sy-repid sy-uname  INTO indxkey .
 
EXPORT exp_data FROM exp_data
 
TO DATABASE mcdx(zbFROM wa_indx ID indxkey.
ENDFORM.                    "file_upload*&---------------------------------------------------------------------**&      Form  PROCESS_DATA*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM process_data .
 
IF sy-batch EQ 'X'.
   
REFRESH it_data.
   
CONCATENATE sy-repid sy-uname  INTO indxkey .
   
IMPORT exp_data = exp_data  FROM DATABASE mcdx(zb) ID indxkey.
    it_data
= exp_data.
 
ENDIF.
 
IF it_data IS NOT INITIAL.
   
LOOP AT it_data INTO wa_data.
    wa_final
-claim_mnth = wa_data-claim_mnth.
    wa_final
-claim_yr   wa_data-claim_yr.
    wa_final
-plant      wa_data-plant.
    wa_final
-labr_value   wa_data-labr_value.
    wa_final
-cr_note_no       = wa_data-cr_note_no.
   
APPEND wa_final to it_final.
   
ENDLOOP.
 
ELSE.
   
MESSAGE:'No entry found' TYPE 'E'.
 
ENDIF.ENDFORM.                    " FILE_UPLOAD*&---------------------------------------------------------------------**&      Form  ALV_DISPLAY*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*FORM alv_display " ankita
 
DATA: col_pos TYPE i.
  col_pos
= 0.

  ls_fieldcat
-fieldname = 'CLAIM_MNTH'.
  ls_fieldcat
-tabname   = 'IT_FINAL'.
  ls_fieldcat
-seltext_l = 'Credit month'.
  ls_fieldcat
-col_pos     = col_pos.

 
APPEND ls_fieldcat TO gt_fieldcat.
 
CLEAR ls_fieldcat.
  col_pos
= col_pos + 1.


  ls_fieldcat
-fieldname = 'CLAIM_YR'.
  ls_fieldcat
-tabname   = 'IT_FINAL'.
  ls_fieldcat
-seltext_l = 'Credit year'.
  ls_fieldcat
-col_pos     = col_pos.

 
APPEND ls_fieldcat TO gt_fieldcat.
 
CLEAR ls_fieldcat.
  col_pos
= col_pos + 1.


  ls_fieldcat
-fieldname = 'PLANT'.
  ls_fieldcat
-tabname   = 'IT_FINAL'.
  ls_fieldcat
-seltext_l = 'Plant'.
  ls_fieldcat
-col_pos     = col_pos.

 
APPEND ls_fieldcat TO gt_fieldcat.
 
CLEAR ls_fieldcat.

  ls_fieldcat
-fieldname = 'CR_NOTE_NO'.
  ls_fieldcat
-tabname   = 'IT_FINAL'.
  ls_fieldcat
-seltext_l = 'credit Not NO'.
  ls_fieldcat
-col_pos     = col_pos.

 
APPEND ls_fieldcat TO gt_fieldcat.
 
CLEAR ls_fieldcat.
ENDFORM.                    " ALV_DISPLAY*&---------------------------------------------------------------------**&      Form  ALV_DISPLAY_FM*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*FORM alv_display_fm . " ankita
  g_repid
= sy-repid.

 
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   
EXPORTING
      i_callback_program
= g_repid
      it_fieldcat       
= gt_fieldcat[]
      i_save            
= 'X'
   
TABLES
      t_outtab          
= it_final[]
   
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.
ENDFORM.                    " ALV_DISPLAY_FM

2 Comments