<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: report-bdc in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-bdc/m-p/2483377#M559834</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check out this sample code for BDC in HR abap..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zcmr_022_bdc_eor_it9024                 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Types : TY_                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--&amp;gt; Upload data from the flat file.&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF ty_9024,&lt;/P&gt;&lt;P&gt;        pernr     TYPE p9024-pernr,     "Personnel Number&lt;/P&gt;&lt;P&gt;        begda(10) TYPE c,               "Start date&lt;/P&gt;&lt;P&gt;        endda(10) TYPE c,               "End date&lt;/P&gt;&lt;P&gt;        zrtgscl2  TYPE p9024-zrtgscl2,  "Rating scale&lt;/P&gt;&lt;P&gt;        ZPSCLS    TYPE p9024-ZPSCLS   , "Position Class&lt;/P&gt;&lt;P&gt;        END OF ty_9024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       INTERNAL TABLE : IT_                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : it_9024     TYPE TABLE OF ty_9024   , "Uploaded Data&lt;/P&gt;&lt;P&gt;       it_files    TYPE filetable ,          "File Name&lt;/P&gt;&lt;P&gt;       it_bdcdata  TYPE TABLE OF bdcdata   , "Insert BDC data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       WORK AREA : WA_                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       wa_9024    TYPE ty_9024    , "Uploaded Data&lt;/P&gt;&lt;P&gt;       wa_file    TYPE file_table , "File Name&lt;/P&gt;&lt;P&gt;       wa_bdcdata TYPE bdcdata    , "Insert BDC data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       DATA : W_                                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       w_title TYPE string , "Title for the File selection window.&lt;/P&gt;&lt;P&gt;       w_rc    TYPE i      . "Return code for the class&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       SELECTION SCREEN                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS : pr_file TYPE localfile OBLIGATORY.         "File Name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS : pr_sess TYPE  d0100_mapn OBLIGATORY,       "Session Name&lt;/P&gt;&lt;P&gt;             pr_keep TYPE c AS CHECKBOX DEFAULT text-001.&lt;/P&gt;&lt;P&gt;                                                "Session kept in SM35&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       AT SELECTION-SCREEN ON VALUE REQUEST                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_title = text-t03.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--&amp;gt; Function module to fetch the file name&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_gui_frontend_services=&amp;gt;file_open_dialog&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      window_title            = w_title&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      file_table              = it_files&lt;/P&gt;&lt;P&gt;      rc                      = w_rc&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      file_open_dialog_failed = 1&lt;/P&gt;&lt;P&gt;      cntl_error              = 2&lt;/P&gt;&lt;P&gt;      error_no_gui            = 3&lt;/P&gt;&lt;P&gt;      not_supported_by_gui    = 4&lt;/P&gt;&lt;P&gt;      OTHERS                  = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    READ TABLE it_files INTO wa_file INDEX 1.&lt;/P&gt;&lt;P&gt;    IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;      MOVE wa_file TO pr_file.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      CLEAR pr_file.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       START-OF-SELECTION                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*--&amp;gt; Upload the flat file&lt;/P&gt;&lt;P&gt;  PERFORM f001_upload_it9024.&lt;/P&gt;&lt;P&gt;*--&amp;gt; Insert through transaction&lt;/P&gt;&lt;P&gt;  PERFORM f002_insert_it9024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       END-OF-SELECTION                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F001_UPLOAD_IT9024&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     uploads the flatfile to the final internal table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f001_upload_it9024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : lw_file TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MOVE pr_file TO lw_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--&amp;gt; Function Module to fetch the data form flat file to internal table&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename                = lw_file&lt;/P&gt;&lt;P&gt;      filetype                = 'ASC'&lt;/P&gt;&lt;P&gt;      has_field_separator     = 'X'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab                = it_9024&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      file_open_error         = 1&lt;/P&gt;&lt;P&gt;      file_read_error         = 2&lt;/P&gt;&lt;P&gt;      no_batch                = 3&lt;/P&gt;&lt;P&gt;      gui_refuse_filetransfer = 4&lt;/P&gt;&lt;P&gt;      invalid_type            = 5&lt;/P&gt;&lt;P&gt;      no_authority            = 6&lt;/P&gt;&lt;P&gt;      unknown_error           = 7&lt;/P&gt;&lt;P&gt;      bad_data_format         = 8&lt;/P&gt;&lt;P&gt;      header_not_allowed      = 9&lt;/P&gt;&lt;P&gt;      separator_not_allowed   = 10&lt;/P&gt;&lt;P&gt;      header_too_long         = 11&lt;/P&gt;&lt;P&gt;      unknown_dp_error        = 12&lt;/P&gt;&lt;P&gt;      access_denied           = 13&lt;/P&gt;&lt;P&gt;      dp_out_of_memory        = 14&lt;/P&gt;&lt;P&gt;      disk_full               = 15&lt;/P&gt;&lt;P&gt;      dp_timeout              = 16&lt;/P&gt;&lt;P&gt;      OTHERS                  = 17.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "F001_UPLOAD_IT9024&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F002_INSERT_IT9024&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Insert data to info type 9024&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f002_insert_it9024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--&amp;gt; Opens the session&lt;/P&gt;&lt;P&gt;  PERFORM f003_open_group.&lt;/P&gt;&lt;P&gt;  LOOP AT it_9024 INTO wa_9024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM:   f005_bdc_dynpro      USING 'SAPMP50A' '1000',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'BDC_OKCODE'  '=INS',&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'RP50G-PERNR' wa_9024-pernr,&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'RP50G-TIMR6' 'X',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'RP50G-CHOIC' '9024',&lt;/P&gt;&lt;P&gt;               f005_bdc_dynpro      USING 'MP902400' '2000',&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'BDC_OKCODE'  '=UPD',&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'P9024-BEGDA'  wa_9024-begda,&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'P9024-ENDDA'  wa_9024-endda,&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'P9024-ZRTGSCL2' wa_9024-zrtgscl2,&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'P9024-ZPSCLS' wa_9024-ZPSCLS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR wa_9024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM f007_bdc_insert USING 'PA30'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM f004_close_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL TRANSACTION 'SM35'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "f002_insert_it9024&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f003_open_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Opens the session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f003_open_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      client = sy-mandt&lt;/P&gt;&lt;P&gt;      group  = pr_sess&lt;/P&gt;&lt;P&gt;      keep   = pr_keep&lt;/P&gt;&lt;P&gt;      user   = sy-uname.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "f003_open_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F004_CLOSE_GROUP&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Closes the BDC group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f004_close_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "f004_close_group&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F005_BDC_DYNPRO&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Uploads the program and screen no to it_bdcdata&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f005_bdc_dynpro USING program type any dynpro type any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_bdcdata-program  = program.&lt;/P&gt;&lt;P&gt;  wa_bdcdata-dynpro   = dynpro.&lt;/P&gt;&lt;P&gt;  wa_bdcdata-dynbegin = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND wa_bdcdata TO it_bdcdata.&lt;/P&gt;&lt;P&gt;  CLEAR wa_bdcdata.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "f005_bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F006_bdc_field&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Uploads field name and field values to it_bdcdata&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f006_bdc_field USING fnam type any fval type any.&lt;/P&gt;&lt;P&gt;  wa_bdcdata-fnam = fnam.&lt;/P&gt;&lt;P&gt;  wa_bdcdata-fval = fval.&lt;/P&gt;&lt;P&gt;  APPEND wa_bdcdata TO it_bdcdata.&lt;/P&gt;&lt;P&gt;  CLEAR wa_bdcdata.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "F006_bdc_field&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F007_BDC_INSERT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Uploads the tcode to it_bdcdata&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f007_bdc_insert USING tcode type any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      tcode     = tcode&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      dynprotab = it_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH it_bdcdata.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "F007_BDC_INSERT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps u.&lt;/P&gt;&lt;P&gt;****Reward points if so.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 25 Jun 2007 11:47:06 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-25T11:47:06Z</dc:date>
    <item>
      <title>report-bdc</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-bdc/m-p/2483376#M559833</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;can you call a bdc program from report program?give exp code?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Jun 2007 11:45:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-bdc/m-p/2483376#M559833</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-25T11:45:32Z</dc:date>
    </item>
    <item>
      <title>Re: report-bdc</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-bdc/m-p/2483377#M559834</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check out this sample code for BDC in HR abap..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zcmr_022_bdc_eor_it9024                 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Types : TY_                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--&amp;gt; Upload data from the flat file.&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF ty_9024,&lt;/P&gt;&lt;P&gt;        pernr     TYPE p9024-pernr,     "Personnel Number&lt;/P&gt;&lt;P&gt;        begda(10) TYPE c,               "Start date&lt;/P&gt;&lt;P&gt;        endda(10) TYPE c,               "End date&lt;/P&gt;&lt;P&gt;        zrtgscl2  TYPE p9024-zrtgscl2,  "Rating scale&lt;/P&gt;&lt;P&gt;        ZPSCLS    TYPE p9024-ZPSCLS   , "Position Class&lt;/P&gt;&lt;P&gt;        END OF ty_9024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       INTERNAL TABLE : IT_                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : it_9024     TYPE TABLE OF ty_9024   , "Uploaded Data&lt;/P&gt;&lt;P&gt;       it_files    TYPE filetable ,          "File Name&lt;/P&gt;&lt;P&gt;       it_bdcdata  TYPE TABLE OF bdcdata   , "Insert BDC data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       WORK AREA : WA_                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       wa_9024    TYPE ty_9024    , "Uploaded Data&lt;/P&gt;&lt;P&gt;       wa_file    TYPE file_table , "File Name&lt;/P&gt;&lt;P&gt;       wa_bdcdata TYPE bdcdata    , "Insert BDC data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       DATA : W_                                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       w_title TYPE string , "Title for the File selection window.&lt;/P&gt;&lt;P&gt;       w_rc    TYPE i      . "Return code for the class&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       SELECTION SCREEN                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS : pr_file TYPE localfile OBLIGATORY.         "File Name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS : pr_sess TYPE  d0100_mapn OBLIGATORY,       "Session Name&lt;/P&gt;&lt;P&gt;             pr_keep TYPE c AS CHECKBOX DEFAULT text-001.&lt;/P&gt;&lt;P&gt;                                                "Session kept in SM35&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       AT SELECTION-SCREEN ON VALUE REQUEST                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_title = text-t03.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--&amp;gt; Function module to fetch the file name&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_gui_frontend_services=&amp;gt;file_open_dialog&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      window_title            = w_title&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      file_table              = it_files&lt;/P&gt;&lt;P&gt;      rc                      = w_rc&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      file_open_dialog_failed = 1&lt;/P&gt;&lt;P&gt;      cntl_error              = 2&lt;/P&gt;&lt;P&gt;      error_no_gui            = 3&lt;/P&gt;&lt;P&gt;      not_supported_by_gui    = 4&lt;/P&gt;&lt;P&gt;      OTHERS                  = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    READ TABLE it_files INTO wa_file INDEX 1.&lt;/P&gt;&lt;P&gt;    IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;      MOVE wa_file TO pr_file.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      CLEAR pr_file.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       START-OF-SELECTION                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*--&amp;gt; Upload the flat file&lt;/P&gt;&lt;P&gt;  PERFORM f001_upload_it9024.&lt;/P&gt;&lt;P&gt;*--&amp;gt; Insert through transaction&lt;/P&gt;&lt;P&gt;  PERFORM f002_insert_it9024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       END-OF-SELECTION                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F001_UPLOAD_IT9024&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     uploads the flatfile to the final internal table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f001_upload_it9024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : lw_file TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MOVE pr_file TO lw_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--&amp;gt; Function Module to fetch the data form flat file to internal table&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename                = lw_file&lt;/P&gt;&lt;P&gt;      filetype                = 'ASC'&lt;/P&gt;&lt;P&gt;      has_field_separator     = 'X'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab                = it_9024&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      file_open_error         = 1&lt;/P&gt;&lt;P&gt;      file_read_error         = 2&lt;/P&gt;&lt;P&gt;      no_batch                = 3&lt;/P&gt;&lt;P&gt;      gui_refuse_filetransfer = 4&lt;/P&gt;&lt;P&gt;      invalid_type            = 5&lt;/P&gt;&lt;P&gt;      no_authority            = 6&lt;/P&gt;&lt;P&gt;      unknown_error           = 7&lt;/P&gt;&lt;P&gt;      bad_data_format         = 8&lt;/P&gt;&lt;P&gt;      header_not_allowed      = 9&lt;/P&gt;&lt;P&gt;      separator_not_allowed   = 10&lt;/P&gt;&lt;P&gt;      header_too_long         = 11&lt;/P&gt;&lt;P&gt;      unknown_dp_error        = 12&lt;/P&gt;&lt;P&gt;      access_denied           = 13&lt;/P&gt;&lt;P&gt;      dp_out_of_memory        = 14&lt;/P&gt;&lt;P&gt;      disk_full               = 15&lt;/P&gt;&lt;P&gt;      dp_timeout              = 16&lt;/P&gt;&lt;P&gt;      OTHERS                  = 17.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "F001_UPLOAD_IT9024&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F002_INSERT_IT9024&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Insert data to info type 9024&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f002_insert_it9024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--&amp;gt; Opens the session&lt;/P&gt;&lt;P&gt;  PERFORM f003_open_group.&lt;/P&gt;&lt;P&gt;  LOOP AT it_9024 INTO wa_9024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM:   f005_bdc_dynpro      USING 'SAPMP50A' '1000',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'BDC_OKCODE'  '=INS',&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'RP50G-PERNR' wa_9024-pernr,&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'RP50G-TIMR6' 'X',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'RP50G-CHOIC' '9024',&lt;/P&gt;&lt;P&gt;               f005_bdc_dynpro      USING 'MP902400' '2000',&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'BDC_OKCODE'  '=UPD',&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'P9024-BEGDA'  wa_9024-begda,&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'P9024-ENDDA'  wa_9024-endda,&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'P9024-ZRTGSCL2' wa_9024-zrtgscl2,&lt;/P&gt;&lt;P&gt;               f006_bdc_field       USING 'P9024-ZPSCLS' wa_9024-ZPSCLS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR wa_9024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM f007_bdc_insert USING 'PA30'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM f004_close_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL TRANSACTION 'SM35'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "f002_insert_it9024&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f003_open_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Opens the session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f003_open_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      client = sy-mandt&lt;/P&gt;&lt;P&gt;      group  = pr_sess&lt;/P&gt;&lt;P&gt;      keep   = pr_keep&lt;/P&gt;&lt;P&gt;      user   = sy-uname.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "f003_open_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F004_CLOSE_GROUP&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Closes the BDC group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f004_close_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "f004_close_group&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F005_BDC_DYNPRO&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Uploads the program and screen no to it_bdcdata&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f005_bdc_dynpro USING program type any dynpro type any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_bdcdata-program  = program.&lt;/P&gt;&lt;P&gt;  wa_bdcdata-dynpro   = dynpro.&lt;/P&gt;&lt;P&gt;  wa_bdcdata-dynbegin = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND wa_bdcdata TO it_bdcdata.&lt;/P&gt;&lt;P&gt;  CLEAR wa_bdcdata.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "f005_bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F006_bdc_field&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Uploads field name and field values to it_bdcdata&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f006_bdc_field USING fnam type any fval type any.&lt;/P&gt;&lt;P&gt;  wa_bdcdata-fnam = fnam.&lt;/P&gt;&lt;P&gt;  wa_bdcdata-fval = fval.&lt;/P&gt;&lt;P&gt;  APPEND wa_bdcdata TO it_bdcdata.&lt;/P&gt;&lt;P&gt;  CLEAR wa_bdcdata.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "F006_bdc_field&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F007_BDC_INSERT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Uploads the tcode to it_bdcdata&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f007_bdc_insert USING tcode type any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      tcode     = tcode&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      dynprotab = it_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH it_bdcdata.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "F007_BDC_INSERT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps u.&lt;/P&gt;&lt;P&gt;****Reward points if so.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Jun 2007 11:47:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-bdc/m-p/2483377#M559834</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-25T11:47:06Z</dc:date>
    </item>
    <item>
      <title>Re: report-bdc</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-bdc/m-p/2483378#M559835</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;Yes, You can call a BDC program from Report.&lt;/P&gt;&lt;P&gt;see the sample report in which it is used&lt;/P&gt;&lt;P&gt;REPORT zm_reservation_alert&lt;/P&gt;&lt;P&gt;       NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;       MESSAGE-ID zm_msg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       D A T A B A S E  T A B L E S   D E C L A R A T I O N&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               T Y P E S  D E C L A R A T I O N S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Reservations Main Structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES: BEGIN OF s_res,&lt;/P&gt;&lt;P&gt;         rsnum TYPE rsnum,                   " Reservation No&lt;/P&gt;&lt;P&gt;         rspos TYPE rspos,                   " Item No&lt;/P&gt;&lt;P&gt;         usnam TYPE usnam,                   " User Name&lt;/P&gt;&lt;P&gt;         bwart TYPE bwart,                   " Movement Type&lt;/P&gt;&lt;P&gt;         aufnr TYPE aufnr,                   " Order Number&lt;/P&gt;&lt;P&gt;         rsart TYPE rsart,                   " Record Type&lt;/P&gt;&lt;P&gt;         bdart TYPE bdart,                   " Reservation Type&lt;/P&gt;&lt;P&gt;         matnr TYPE matnr,                   " Material No&lt;/P&gt;&lt;P&gt;         bdter TYPE bdter,                   " Req Date&lt;/P&gt;&lt;P&gt;         menge TYPE menge_d,                 " Quantity&lt;/P&gt;&lt;P&gt;         kostl TYPE kostl,                   " Cost Center&lt;/P&gt;&lt;P&gt;         usrid TYPE sysid,                   " User ID&lt;/P&gt;&lt;P&gt;       END OF s_res.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Output Main Structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES: BEGIN OF s_rep,&lt;/P&gt;&lt;P&gt;         usnam TYPE usnam,                   " User Name&lt;/P&gt;&lt;P&gt;         rsnum TYPE rsnum,                   " Reservation No&lt;/P&gt;&lt;P&gt;         rspos TYPE rspos,                   " Item No&lt;/P&gt;&lt;P&gt;         matnr TYPE matnr,                   " Material No&lt;/P&gt;&lt;P&gt;         bdter TYPE bdter,                   " Req Date&lt;/P&gt;&lt;P&gt;         menge TYPE menge_d,                 " Quantity&lt;/P&gt;&lt;P&gt;         kostl TYPE kostl,                   " Cost Center&lt;/P&gt;&lt;P&gt;         aufnr TYPE aufnr,                   " Order Number&lt;/P&gt;&lt;P&gt;       END OF s_rep.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;User Dept Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES: BEGIN OF s_dept,&lt;/P&gt;&lt;P&gt;         pernr TYPE persno,                  " Personal No&lt;/P&gt;&lt;P&gt;         usrid TYPE sysid,                   " User ID&lt;/P&gt;&lt;P&gt;         orgeh TYPE orgeh,                   " Orgn Unit&lt;/P&gt;&lt;P&gt;         orgtx TYPE orgtx,                   " Dept Name&lt;/P&gt;&lt;P&gt;       END OF s_dept.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For Send Mail Purpose&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : i_doc_data LIKE sodocchgi1.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF i_pack_list OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE sopcklsti1.&lt;/P&gt;&lt;P&gt;DATA : END OF i_pack_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF i_receivers OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE somlreci1.&lt;/P&gt;&lt;P&gt;DATA : END OF i_receivers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF i_contents OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE solisti1.&lt;/P&gt;&lt;P&gt;DATA : END OF i_contents.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF i_header OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE solisti1.&lt;/P&gt;&lt;P&gt;DATA : END OF i_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF i_att OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE solisti1.&lt;/P&gt;&lt;P&gt;DATA : END OF i_att.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for bdcdata&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : it_bdcdata  LIKE bdcdata OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to handle messages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : it_messages LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           D A T A  D E C L A R A T I O N S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;DATA: gv_lines  TYPE sy-index,           " Total Lines int Table&lt;/P&gt;&lt;P&gt;      gv_days   TYPE i,                  " Difference Days&lt;/P&gt;&lt;P&gt;      gv_date   TYPE sy-datum,           " Date&lt;/P&gt;&lt;P&gt;      gv_date1  TYPE sy-datum,           " Date&lt;/P&gt;&lt;P&gt;      gv_date2  TYPE sy-datum,           " Date&lt;/P&gt;&lt;P&gt;      gv_text(85),                       " Text Field&lt;/P&gt;&lt;P&gt;      gv_mesg(70),                       " Error Messages&lt;/P&gt;&lt;P&gt;      gv_bdc,                            " BDC Flag&lt;/P&gt;&lt;P&gt;      gv_flag TYPE i,                    " Flag&lt;/P&gt;&lt;P&gt;      gv_ernam TYPE ernam.               " User ID&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            C O N S T A N T S     D E C L A R A T I O N S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;CONSTANTS: c_x                VALUE 'X',         " Flag&lt;/P&gt;&lt;P&gt;           c_endda TYPE endda VALUE '99991231'.  " Date&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     I N T E R N A L  T A B L E S  D E C L A R A T I O N S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;DATA: i_res TYPE STANDARD TABLE OF s_res WITH HEADER LINE,  " Reservns&lt;/P&gt;&lt;P&gt;      i_dept TYPE STANDARD TABLE OF s_dept WITH HEADER LINE, " Dept&lt;/P&gt;&lt;P&gt;      i_rep TYPE STANDARD TABLE OF s_rep WITH HEADER LINE.  " Output&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               S T A R T - O F - S E L E C T I O N                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fetch main data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM fetch_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Process data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM process_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fetch_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Fetching the Reservations related data from Database Tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM fetch_data .&lt;/P&gt;&lt;P&gt;  CLEAR: gv_date, gv_date1, gv_date2.&lt;/P&gt;&lt;P&gt;  gv_date = sy-datum.&lt;/P&gt;&lt;P&gt;  gv_date1 = sy-datum - 10.&lt;/P&gt;&lt;P&gt;  gv_date2 = sy-datum + 10.&lt;/P&gt;&lt;P&gt;  CLEAR i_res.&lt;/P&gt;&lt;P&gt;  REFRESH i_res.&lt;/P&gt;&lt;P&gt;  SELECT a~rsnum                    " Reservation No.&lt;/P&gt;&lt;P&gt;         b~rspos                    " Reservation Item&lt;/P&gt;&lt;P&gt;         a~usnam                    " User Name&lt;/P&gt;&lt;P&gt;         a~bwart                    " Movement Type&lt;/P&gt;&lt;P&gt;         a~aufnr                    " Order Number&lt;/P&gt;&lt;P&gt;         b~rsart                    " Record Type&lt;/P&gt;&lt;P&gt;         b~bdart                    " Reservation Type&lt;/P&gt;&lt;P&gt;         b~matnr                    " Material No&lt;/P&gt;&lt;P&gt;         b~bdter                    " Req Date&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    INTO TABLE i_res&lt;/P&gt;&lt;P&gt;    FROM rkpf AS a JOIN resb AS b&lt;/P&gt;&lt;P&gt;    ON a&lt;SUB&gt;rsnum = b&lt;/SUB&gt;rsnum&lt;/P&gt;&lt;P&gt;    WHERE ( b~bdter BETWEEN gv_date1 AND gv_date2 ) AND&lt;/P&gt;&lt;P&gt;          b~xloek EQ ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT i_res BY rsnum rspos.&lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM i_res COMPARING matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add userid into the i_usr int table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_res.&lt;/P&gt;&lt;P&gt;    i_res-usrid = i_res-usnam.&lt;/P&gt;&lt;P&gt;    MODIFY i_res INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT i_res[] IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the User Dept Name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR i_dept.&lt;/P&gt;&lt;P&gt;    REFRESH i_dept.&lt;/P&gt;&lt;P&gt;    SELECT a~pernr                    " Personal No&lt;/P&gt;&lt;P&gt;           a~usrid                    " User ID&lt;/P&gt;&lt;P&gt;           b~orgeh                    " Orgn Unit&lt;/P&gt;&lt;P&gt;           c~orgtx                    " Dept Name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      INTO TABLE i_dept&lt;/P&gt;&lt;P&gt;      FROM pa0105 AS a JOIN pa0001 AS b&lt;/P&gt;&lt;P&gt;      ON a&lt;SUB&gt;pernr = b&lt;/SUB&gt;pernr JOIN t527x AS c&lt;/P&gt;&lt;P&gt;      ON b&lt;SUB&gt;orgeh = c&lt;/SUB&gt;orgeh&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN i_res&lt;/P&gt;&lt;P&gt;      WHERE a~usrid = i_res-usrid AND&lt;/P&gt;&lt;P&gt;            a~endda EQ c_endda AND&lt;/P&gt;&lt;P&gt;            b~endda EQ c_endda.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  SORT i_dept BY pernr.&lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM i_dept COMPARING pernr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Move the Creator of Reservation to a diff table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_res.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING i_res TO i_rep.&lt;/P&gt;&lt;P&gt;    APPEND i_rep.&lt;/P&gt;&lt;P&gt;    CLEAR i_rep.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT i_rep BY usnam rsnum rspos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " Fetch_Data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Process the Reservations related data for Expiry Date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_data .&lt;/P&gt;&lt;P&gt;  DATA: lv_date1 LIKE sy-datum,&lt;/P&gt;&lt;P&gt;        lv_date2 LIKE sy-datum,&lt;/P&gt;&lt;P&gt;        lv_date3(10),&lt;/P&gt;&lt;P&gt;        lv_menge(13),&lt;/P&gt;&lt;P&gt;        lv_tabix LIKE sy-tabix.&lt;/P&gt;&lt;P&gt;  LOOP AT i_rep.&lt;/P&gt;&lt;P&gt;    CLEAR: gv_days, gv_text, lv_date1, lv_date2,lv_date3.&lt;/P&gt;&lt;P&gt;    lv_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT NEW usnam.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the Contents Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR i_att.&lt;/P&gt;&lt;P&gt;      REFRESH i_att.&lt;/P&gt;&lt;P&gt;      i_att = 'Reservations Reminder'(014).&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;      i_att = '----&lt;/P&gt;&lt;HR originaltext="----------------" /&gt;&lt;P&gt;'.&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;      i_att-line = '     '.&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;      READ TABLE i_dept WITH KEY usrid = i_rep-usnam.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'Name:'(003) i_rep-usnam 'Dept:'(015) i_dept-orgtx&lt;/P&gt;&lt;P&gt;      INTO i_att-line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;      i_att-line = '     '.&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      i_att = 'Please find the List of expiring Reservations'(004).&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;      i_att-line = ' '.&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;      CONCATENATE '--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="--------" /&gt;' '&lt;DEL&gt;&lt;HR originaltext="---------" /&gt;' '&lt;/DEL&gt;--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="--------" /&gt;&lt;P&gt;'&lt;/P&gt;&lt;P&gt;      '--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="------" /&gt;' '--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="-------" /&gt;&lt;P&gt;' INTO&lt;/P&gt;&lt;P&gt;      i_att-line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONCATENATE 'Reservation #'(006) 'Material #'(007) ' Quantity'(002)&lt;/P&gt;&lt;P&gt;    'Due Date'(008) 'Work Center/CC'(005) INTO&lt;/P&gt;&lt;P&gt;    i_att-line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;      CONCATENATE '--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="--------" /&gt;' '&lt;DEL&gt;&lt;HR originaltext="---------" /&gt;' '&lt;/DEL&gt;--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="--------" /&gt;&lt;P&gt;'&lt;/P&gt;&lt;P&gt;      '--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="------" /&gt;' '--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="-------" /&gt;&lt;P&gt;' INTO&lt;/P&gt;&lt;P&gt;      i_att-line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;      i_att-line = ' '.&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    gv_days  = i_rep-bdter - gv_date.&lt;/P&gt;&lt;P&gt;    lv_date1 = i_rep-bdter + 5.&lt;/P&gt;&lt;P&gt;    lv_date2 = i_rep-bdter + 10.&lt;/P&gt;&lt;P&gt;    MOVE i_rep-menge TO lv_menge.&lt;/P&gt;&lt;P&gt;    WRITE i_rep-bdter TO lv_date3.&lt;/P&gt;&lt;P&gt;    IF gv_days = 10.&lt;/P&gt;&lt;P&gt;      IF i_rep-aufnr &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;P&gt;        CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3&lt;/P&gt;&lt;P&gt;         i_rep-aufnr 'is due for 10 days. Please collect'(009)&lt;/P&gt;&lt;P&gt;         INTO gv_text SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3&lt;/P&gt;&lt;P&gt;         i_rep-kostl 'is due for 10 days. Please collect'(009)&lt;/P&gt;&lt;P&gt;         INTO gv_text SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      i_att-line = gv_text.&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;      CLEAR i_att.&lt;/P&gt;&lt;P&gt;      CLEAR gv_text.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gv_days = 5.&lt;/P&gt;&lt;P&gt;      IF i_rep-aufnr &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;P&gt;        CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3&lt;/P&gt;&lt;P&gt;        i_rep-aufnr 'is due for 5 days. Please collect'(010)&lt;/P&gt;&lt;P&gt;        INTO gv_text SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3&lt;/P&gt;&lt;P&gt;        i_rep-kostl 'is due for 5 days. Please collect'(010)&lt;/P&gt;&lt;P&gt;        INTO gv_text SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      i_att-line = gv_text.&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;      CLEAR i_att.&lt;/P&gt;&lt;P&gt;      CLEAR gv_text.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gv_date = lv_date1.&lt;/P&gt;&lt;P&gt;      IF i_rep-aufnr &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;P&gt;        CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3&lt;/P&gt;&lt;P&gt;        i_rep-aufnr 'is getting cancelled on'(011) lv_date2&lt;/P&gt;&lt;P&gt;        INTO gv_text SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3&lt;/P&gt;&lt;P&gt;        i_rep-kostl 'is getting cancelled on'(011) lv_date2&lt;/P&gt;&lt;P&gt;        INTO gv_text SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      i_att-line = gv_text.&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;      CLEAR i_att.&lt;/P&gt;&lt;P&gt;      CLEAR gv_text.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gv_date = lv_date2.&lt;/P&gt;&lt;P&gt;      IF i_rep-aufnr &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;P&gt;        CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3&lt;/P&gt;&lt;P&gt;        i_rep-aufnr 'is being cancelled'(012)&lt;/P&gt;&lt;P&gt;        INTO gv_text SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3&lt;/P&gt;&lt;P&gt;        i_rep-kostl 'is being cancelled'(012)&lt;/P&gt;&lt;P&gt;        INTO gv_text SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      i_att-line = gv_text.&lt;/P&gt;&lt;P&gt;      APPEND i_att.&lt;/P&gt;&lt;P&gt;      CLEAR i_att.&lt;/P&gt;&lt;P&gt;      CLEAR gv_text.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Mark the Reservation Item 'DELETED' using BDC.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     UPDATE resb SET xloek = c_x.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM delete_item_resb.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT END OF usnam.&lt;/P&gt;&lt;P&gt;      IF ( gv_days = 10 OR gv_days = 5 OR gv_date = lv_date1 OR&lt;/P&gt;&lt;P&gt;           gv_date = lv_date2 ).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read the User who creates the Reservn and send a mail alert to him&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CLEAR : i_receivers,gv_ernam.&lt;/P&gt;&lt;P&gt;        REFRESH: i_receivers.&lt;/P&gt;&lt;P&gt;        READ TABLE i_rep INDEX lv_tabix.&lt;/P&gt;&lt;P&gt;        gv_ernam = i_rep-usnam.&lt;/P&gt;&lt;P&gt;        IF gv_ernam &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Send mail Alert to PR Creator(SAP inbox)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          PERFORM send_alert_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Send Mail to External Mail ID of the SAP USER&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          PERFORM send_mail_external.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                              " Process_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  delete_item_resb&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Set the Deletion Indicator for the Res. Item in RESB&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM delete_item_resb.&lt;/P&gt;&lt;P&gt;  gv_bdc = 'N'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Perform to fill it_bdcdata.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM fill_it_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call the Transaction MB22&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL TRANSACTION 'MB22' USING it_bdcdata MODE 'A' UPDATE 'S'&lt;/P&gt;&lt;P&gt;                                MESSAGES INTO it_messages.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    gv_flag = 1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If error occurs in transaction mode run bdc session for that data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM bdc_process.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Handles error messages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM error_messages.&lt;/P&gt;&lt;P&gt;  CLEAR   : it_bdcdata, it_messages.&lt;/P&gt;&lt;P&gt;  REFRESH : it_bdcdata, it_messages.&lt;/P&gt;&lt;P&gt;  IF gv_bdc = 'O'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;close bdc if it is open&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM close_bdc.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.             "delete_item_resb&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FILL_IT_BDCDATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Filling Bdcdata structure with data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM fill_it_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPMM07R' '0560'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                'RM07M-RSPOS'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                '/00'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RM07M-RSNUM'&lt;/P&gt;&lt;P&gt;                                i_rep-rsnum.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RM07M-RSPOS'&lt;/P&gt;&lt;P&gt;                                i_rep-rspos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPMM07R' '0510'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                'RESB-XLOEK'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                '/00'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'RESB-XLOEK'&lt;/P&gt;&lt;P&gt;                                 c_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                'COBL-KOSTL'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                '=ENTE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPMM07R' '0510'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                'RESB-ERFMG'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                '=BU'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                'COBL-KOSTL'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                '=ENTE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " FILL_IT_BDCDATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  BDC_DYNPRO&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling the it_bdcdata table with program name &amp;amp; screen number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_dynpro USING    program LIKE bdcdata-program&lt;/P&gt;&lt;P&gt;                         dynpro LIKE bdcdata-dynpro.&lt;/P&gt;&lt;P&gt;  it_bdcdata-program = program.&lt;/P&gt;&lt;P&gt;  it_bdcdata-dynpro = dynpro.&lt;/P&gt;&lt;P&gt;  it_bdcdata-dynbegin = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND it_bdcdata.&lt;/P&gt;&lt;P&gt;  CLEAR it_bdcdata.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " BDC_DYNPRO&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  BDC_FIELD&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Filling it_bdcdata with field name and field value&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_field USING fnam LIKE bdcdata-fnam&lt;/P&gt;&lt;P&gt;                     fval.&lt;/P&gt;&lt;P&gt;  it_bdcdata-fnam = fnam.&lt;/P&gt;&lt;P&gt;  it_bdcdata-fval = fval.&lt;/P&gt;&lt;P&gt;  APPEND it_bdcdata.&lt;/P&gt;&lt;P&gt;  CLEAR it_bdcdata.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " BDC_FIELD&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  ERROR_MESSAGES&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Displaying error messages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM error_messages.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      id        = sy-msgid&lt;/P&gt;&lt;P&gt;      lang      = sy-langu&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      msg       = gv_mesg&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      not_found = 1&lt;/P&gt;&lt;P&gt;      OTHERS    = 2.&lt;/P&gt;&lt;P&gt;  LOOP AT it_messages WHERE msgtyp = 'E'.&lt;/P&gt;&lt;P&gt;    WRITE : / 'Message :'(001) ,gv_mesg.&lt;/P&gt;&lt;P&gt;    CLEAR it_messages.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " ERROR_MESSAGES&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  BDC_PROCESS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open bdc session if call transaction fails&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_process.&lt;/P&gt;&lt;P&gt;  IF gv_bdc = 'N'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; open bdc session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM open_bdc.&lt;/P&gt;&lt;P&gt;    gv_bdc = 'O'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF gv_bdc = 'O'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;insert data into bdc session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM insert_bdc.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " BDC_PROCESS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  OPEN_BDC&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Calling function module to open bdc session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM open_bdc.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      client              = sy-mandt&lt;/P&gt;&lt;P&gt;      group               = 'ZMM'&lt;/P&gt;&lt;P&gt;      keep                = 'X'&lt;/P&gt;&lt;P&gt;      user                = sy-uname&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      client_invalid      = 1&lt;/P&gt;&lt;P&gt;      destination_invalid = 2&lt;/P&gt;&lt;P&gt;      group_invalid       = 3&lt;/P&gt;&lt;P&gt;      group_is_locked     = 4&lt;/P&gt;&lt;P&gt;      holddate_invalid    = 5&lt;/P&gt;&lt;P&gt;      internal_error      = 6&lt;/P&gt;&lt;P&gt;      queue_error         = 7&lt;/P&gt;&lt;P&gt;      running             = 8&lt;/P&gt;&lt;P&gt;      system_lock_error   = 9&lt;/P&gt;&lt;P&gt;      user_invalid        = 10&lt;/P&gt;&lt;P&gt;      OTHERS              = 11.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " OPEN_BDC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  INSERT_BDC&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Insert it_bdcdata into bdc by calling function module bdc_insert&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM insert_bdc.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      tcode            = 'MB22'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      dynprotab        = it_bdcdata&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      internal_error   = 1&lt;/P&gt;&lt;P&gt;      not_open         = 2&lt;/P&gt;&lt;P&gt;      queue_error      = 3&lt;/P&gt;&lt;P&gt;      tcode_invalid    = 4&lt;/P&gt;&lt;P&gt;      printing_invalid = 5&lt;/P&gt;&lt;P&gt;      posting_invalid  = 6&lt;/P&gt;&lt;P&gt;      OTHERS           = 7.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " INSERT_BDC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  CLOSE_BDC&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Closing bdc session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM close_bdc.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      not_open    = 1&lt;/P&gt;&lt;P&gt;      queue_error = 2&lt;/P&gt;&lt;P&gt;      OTHERS      = 3.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " CLOSE_BDC&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  send_alert_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Send Alert for the Expired Contract&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_alert_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: gv_lines,i_receivers, i_header, i_contents,i_doc_data.&lt;/P&gt;&lt;P&gt;  REFRESH : i_receivers,i_header,i_contents.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE i_att LINES gv_lines.&lt;/P&gt;&lt;P&gt;  i_receivers-receiver = gv_ernam.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; i_receivers-receiver = 'SSHEIK'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  i_receivers-rec_type = 'B'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; i_receivers-rec_date = sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; i_receivers-express = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; i_receivers-com_type = 'INT'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; i_receivers-notif_del = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND i_receivers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  i_doc_data-obj_name = 'SAPoffice'(013).&lt;/P&gt;&lt;P&gt;  i_doc_data-obj_descr = 'Reservations Reminder'(014).&lt;/P&gt;&lt;P&gt;  i_doc_data-obj_langu = 'E'.&lt;/P&gt;&lt;P&gt;  i_doc_data-no_change = c_x.&lt;/P&gt;&lt;P&gt;  i_doc_data-obj_prio = 1.&lt;/P&gt;&lt;P&gt;  i_doc_data-priority = 1.&lt;/P&gt;&lt;P&gt;  i_doc_data-doc_size = ( gv_lines - 1 ) * 255 + 135.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  i_pack_list-transf_bin = c_x.&lt;/P&gt;&lt;P&gt;  i_pack_list-head_start = '1'.&lt;/P&gt;&lt;P&gt;  i_pack_list-head_num = '1'.&lt;/P&gt;&lt;P&gt;  i_pack_list-body_start = '1'.&lt;/P&gt;&lt;P&gt;  i_pack_list-body_num = gv_lines.&lt;/P&gt;&lt;P&gt;  i_pack_list-doc_type = 'DOC'.&lt;/P&gt;&lt;P&gt;  i_pack_list-obj_name = 'SAPoffice'(013).&lt;/P&gt;&lt;P&gt;  i_pack_list-obj_descr = 'Reservations Reminder'(014).&lt;/P&gt;&lt;P&gt;  i_pack_list-obj_langu = 'E'.&lt;/P&gt;&lt;P&gt;  i_pack_list-doc_size = ( gv_lines - 1 ) * 255 + 135.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND i_pack_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; i_header-line = 'Header'. APPEND i_header.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data for contents&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  i_contents-line = 'Please find the Reservations Due List'(016).&lt;/P&gt;&lt;P&gt;  APPEND i_contents.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      document_data                    = i_doc_data&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PUT_IN_OUTBOX                    = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SENT_TO_ALL                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NEW_OBJECT_ID                    =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      packing_list                     = i_pack_list&lt;/P&gt;&lt;P&gt;      object_header                    = i_header&lt;/P&gt;&lt;P&gt;      contents_bin                     = i_att&lt;/P&gt;&lt;P&gt;      contents_txt                     = i_contents&lt;/P&gt;&lt;P&gt;      receivers                        = i_receivers&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     too_many_receivers               = 1&lt;/P&gt;&lt;P&gt;     document_not_sent                = 2&lt;/P&gt;&lt;P&gt;     document_type_not_exist          = 3&lt;/P&gt;&lt;P&gt;     operation_no_authorization       = 4&lt;/P&gt;&lt;P&gt;     parameter_error                  = 5&lt;/P&gt;&lt;P&gt;     x_error                          = 6&lt;/P&gt;&lt;P&gt;     enqueue_error                    = 7&lt;/P&gt;&lt;P&gt;     OTHERS                           = 8.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    MESSAGE i000 WITH 'Mail Sucessfully sent'(017).&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " send_alert_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  send_mail_external&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Send mail to External MAIL ID of the PR Creator&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_mail_external.&lt;/P&gt;&lt;P&gt;  DATA : lv_str(24), lv_str1(40),&lt;/P&gt;&lt;P&gt;         lv_pernr LIKE adr6-persnumber,&lt;/P&gt;&lt;P&gt;         lv_adrnr LIKE adr6-addrnumber,&lt;/P&gt;&lt;P&gt;         lv_usrid LIKE pa0105-usrid,&lt;/P&gt;&lt;P&gt;         lv_mail  LIKE adr6-smtp_addr,&lt;/P&gt;&lt;P&gt;         lv_sendor   TYPE syuname,&lt;/P&gt;&lt;P&gt;         lv_receiver TYPE string,&lt;/P&gt;&lt;P&gt;         lv_header   TYPE string,&lt;/P&gt;&lt;P&gt;         lv_body     TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: lv_pernr, lv_usrid, lv_adrnr,&lt;/P&gt;&lt;P&gt;         lv_mail, lv_sendor, lv_receiver,&lt;/P&gt;&lt;P&gt;         lv_header, lv_body .&lt;/P&gt;&lt;P&gt;  lv_usrid = gv_ernam.&lt;/P&gt;&lt;P&gt;  SELECT SINGLE persnumber addrnumber FROM usr21&lt;/P&gt;&lt;P&gt;         INTO (lv_pernr,lv_adrnr)&lt;/P&gt;&lt;P&gt;         WHERE bname = lv_usrid.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE smtp_addr INTO lv_mail FROM adr6&lt;/P&gt;&lt;P&gt;           WHERE addrnumber = lv_adrnr AND&lt;/P&gt;&lt;P&gt;                 persnumber = lv_pernr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      CONCATENATE lv_usrid '@anc.com' INTO lv_mail.&lt;/P&gt;&lt;P&gt;      lv_receiver =  lv_mail.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      lv_receiver =  lv_mail.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lv_receiver =  'avangala@anc.com'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    lv_sendor = 'JALKHATAM'.&lt;/P&gt;&lt;P&gt;    lv_header = 'Reservations Reminder'(014).&lt;/P&gt;&lt;P&gt;    lv_str  = 'Pls check your SAP Inbox'(019).&lt;/P&gt;&lt;P&gt;    lv_str1 = 'for the status of Reservations Due List'(020).&lt;/P&gt;&lt;P&gt;    CONCATENATE lv_str lv_str1 INTO lv_body&lt;/P&gt;&lt;P&gt;    SEPARATED BY space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call Function Module To send mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'UWSP_SEND_MAIL_TO_WEB'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        id_header           = lv_header&lt;/P&gt;&lt;P&gt;        id_body             = lv_body&lt;/P&gt;&lt;P&gt;        id_receiver         = lv_receiver&lt;/P&gt;&lt;P&gt;        id_sender           = lv_sendor&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ID_HTML_MAIL         =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       id_commit_work       = 'X'&lt;/P&gt;&lt;P&gt;     EXCEPTIONS&lt;/P&gt;&lt;P&gt;       error                = 1&lt;/P&gt;&lt;P&gt;       OTHERS               = 2.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " send_mail_external&lt;/P&gt;&lt;P&gt;Reward points for useful Answers&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Anji&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Jun 2007 11:48:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-bdc/m-p/2483378#M559835</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-25T11:48:38Z</dc:date>
    </item>
  </channel>
</rss>

