<?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: abap basics in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-basics/m-p/2474821#M556994</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 the following link it might help you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb2d74358411d1829f0000e829fbfe/content.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb2d74358411d1829f0000e829fbfe/content.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*******&lt;STRONG&gt;please reward points if the infromation is helpful to you&lt;/STRONG&gt;********&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 22 Jun 2007 10:19:57 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-22T10:19:57Z</dc:date>
    <item>
      <title>abap basics</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-basics/m-p/2474820#M556993</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;structure of  abap program&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2007 10:16:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-basics/m-p/2474820#M556993</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-22T10:16:02Z</dc:date>
    </item>
    <item>
      <title>Re: abap basics</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-basics/m-p/2474821#M556994</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 the following link it might help you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb2d74358411d1829f0000e829fbfe/content.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb2d74358411d1829f0000e829fbfe/content.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*******&lt;STRONG&gt;please reward points if the infromation is helpful to you&lt;/STRONG&gt;********&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2007 10:19:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-basics/m-p/2474821#M556994</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-22T10:19:57Z</dc:date>
    </item>
    <item>
      <title>Re: abap basics</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-basics/m-p/2474822#M556995</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;See this sample report and note down the structure&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Reward points for useful Answers&amp;lt;/b&amp;gt;&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>Fri, 22 Jun 2007 10:20:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-basics/m-p/2474822#M556995</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-22T10:20:12Z</dc:date>
    </item>
    <item>
      <title>Re: abap basics</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-basics/m-p/2474823#M556996</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;       Plz go through this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Program Structure&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ABAP programs are responsible for data processing within the individual dialog steps of an application program. This means that the program cannot be constructed as a single sequential unit, but must be divided into sections that can be assigned to the individual dialog steps. To meet this requirement, ABAP programs have a modular structure. Each module is called a processing block. A processing block consists of a set of ABAP statements. When you run a program, you effectively call a series of processing blocks. They cannot be nested.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following steps shows the structure of an ABAP program:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;1) Decleration Part Of ZGlobal Data &lt;/P&gt;&lt;P&gt;2) Dialog Modules &lt;/P&gt;&lt;P&gt;3) Event BLocks&lt;/P&gt;&lt;P&gt;4) Subroutines&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Each ABAP program consists of the following two parts:&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Declaration Part for Global Data, Classes and Selection Screens&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The first part of an ABAP program is the declaration part for global data, classes, and selection screens. This consists of:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All declaration statements for global data. Global data is visible in all internal processing blocks. You define it using declarative statements that appear before the first processing block, in dialog modules, or in event blocks. You cannot declare local data in dialog modules or event blocks. &lt;/P&gt;&lt;P&gt;All selection screen definitions. &lt;/P&gt;&lt;P&gt;All local class definitions (CLASS DEFINITION statement). Local classes are part of ABAP Objects, the object-oriented extension of ABAP.&lt;/P&gt;&lt;P&gt;Declaration statements which occur in procedures (methods, subroutines, function modules) form the declaration part for local data in those processing blocks. This data is only visible within the procedure in which it is declared. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Container for Processing Blocks&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The second part of an ABAP program contains all of the processing blocks for the program. The following types of processing blocks are allowed:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dialog modules (no local data area) &lt;/P&gt;&lt;P&gt;Event blocks (no local data area) &lt;/P&gt;&lt;P&gt;Procedures (methods, subroutines and function modules with their own local data area).&lt;/P&gt;&lt;P&gt;Whereas dialog modules and procedures are enclosed in the ABAP keywords which define them, event blocks are introduced with event keywords and concluded implicitly by the beginning of the next processing block. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All ABAP statements (except declarative statements in the declaration part of the program) are part of a processing block. Non-declarative ABAP statements, which occur between the declaration of global data and a processing block are automatically assigned to the START-OF-SELECTION processing block. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Calling Processing Blocks&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can call processing blocks either from outside the ABAP program or using ABAP commands which are themselves part of a processing block. Dialog modules and event blocks are called from outside the ABAP program. Procedures are called using ABAP statements in ABAP programs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Calling event blocks is different from calling other processing blocks for the following reasons: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;An event block call is triggered by an event. User actions on selection screens and lists, and the runtime environment trigger events that can be processed in ABAP programs. You only have to define event blocks for the events to which you want the program to react (whereas a subroutine call, for example, must have a corresponding subroutine). This ensures that while an ABAP program may react to a particular event, it is not forced to do so.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Madhukar.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2007 10:26:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-basics/m-p/2474823#M556996</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-22T10:26:08Z</dc:date>
    </item>
    <item>
      <title>Re: abap basics</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-basics/m-p/2474824#M556997</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;program structure depends on program type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;these steps for EXECUTABLE PROGRAM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) declare tables which are used in program for data extraction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) declare any variable which are required in program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3) declaration of internal tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4) provide selection-screen logic if required.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select-options: "for complex selection&lt;/P&gt;&lt;P&gt;parameters: " for single value input fields&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5) declaration of events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INITIALIZATION. " used for providing intial values to the fields.&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN OUTPUT. " used for changing screen fields dynamically&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN. ' for perfom validations on screen input fields.&lt;/P&gt;&lt;P&gt;START-OF-SELECTION. "used for select queries and output statements.&lt;/P&gt;&lt;P&gt;END-OF-SELECTION. " this also used for output statements&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE. " used for providing page heading&lt;/P&gt;&lt;P&gt;END-OF-SELECTION." used for providing page footer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GET&lt;/P&gt;&lt;P&gt;GET LATE " these events are used only if our program reading data from&lt;/P&gt;&lt;P&gt;LOGICA DATABASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If we are going to genatate secondary list, we use events like..&lt;/P&gt;&lt;P&gt;AT LINE-SELECTION. " triggered only if we press F2 function key or&lt;/P&gt;&lt;P&gt;DOUBLE CLIKING on list.&lt;/P&gt;&lt;P&gt;AT USER-COMMAND " triggered only if selecteing menu option and user&lt;/P&gt;&lt;P&gt;defined buttons&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if program of type module-pool, follow these steps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) declare tables which are used in program for data extraction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) declare any variable which are required in program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3) declaration of internal tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4) screen flow logic.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;here we use PBO&lt;/P&gt;&lt;P&gt;PAI&lt;/P&gt;&lt;P&gt;POV&lt;/P&gt;&lt;P&gt;POH&lt;/P&gt;&lt;P&gt;these events based on your requirement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Ashu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2007 10:27:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-basics/m-p/2474824#M556997</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-22T10:27:28Z</dc:date>
    </item>
    <item>
      <title>Re: abap basics</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-basics/m-p/2474825#M556998</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hai,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;Basically the structure of ABAP program is divided into two part.&lt;/P&gt;&lt;P&gt;1.Declaration Part&lt;/P&gt;&lt;P&gt;2.Processing Block&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In declaration part we declare all the datas we are going to use in our program like &lt;/P&gt;&lt;P&gt; All declaration statements for global data.&lt;/P&gt;&lt;P&gt; All selection screen definitions. &lt;/P&gt;&lt;P&gt; All local class definitions &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In processing block all ABAP statements (except declarative statements in the declaration part of the program) are part of a processing block. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The below mentioned are the types of proceessing blocks. &lt;/P&gt;&lt;P&gt; Dialog modules (no local data area) &lt;/P&gt;&lt;P&gt; Event blocks (no local data area) &lt;/P&gt;&lt;P&gt; Procedures (methods, subroutines and function modules with their own local     data  area).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Raward if helpful.&lt;/P&gt;&lt;P&gt;S.Ramesh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2007 10:35:56 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-basics/m-p/2474825#M556998</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-22T10:35:56Z</dc:date>
    </item>
  </channel>
</rss>

