<?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: Selection Screen getting refreshed after execution.. in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/selection-screen-getting-refreshed-after-execution/m-p/4585418#M1081641</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;check your code any where you are refreshing the selection screen variables after calling the alv function module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;venkat&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 07 Oct 2008 09:28:50 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-10-07T09:28:50Z</dc:date>
    <item>
      <title>Selection Screen getting refreshed after execution..</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/selection-screen-getting-refreshed-after-execution/m-p/4585416#M1081639</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a strange problem.. &lt;/P&gt;&lt;P&gt;My selection-screen values are getting refreshed after execution and come back to selection screen. I am using normal ALV Fm to display the values. Can some suggest a possible reason?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Many thanks,&lt;/P&gt;&lt;P&gt;V Nair&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Oct 2008 09:25:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/selection-screen-getting-refreshed-after-execution/m-p/4585416#M1081639</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-10-07T09:25:12Z</dc:date>
    </item>
    <item>
      <title>Re: Selection Screen getting refreshed after execution..</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/selection-screen-getting-refreshed-after-execution/m-p/4585417#M1081640</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;Please check if you are clearing the Selection screen variables that you  have defined in your programs. Variable declared with the parameter statement should not be cleared in the program.&lt;/P&gt;&lt;P&gt;Only variables declared with Data Statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Pramod&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Oct 2008 09:27:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/selection-screen-getting-refreshed-after-execution/m-p/4585417#M1081640</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-10-07T09:27:42Z</dc:date>
    </item>
    <item>
      <title>Re: Selection Screen getting refreshed after execution..</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/selection-screen-getting-refreshed-after-execution/m-p/4585418#M1081641</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;check your code any where you are refreshing the selection screen variables after calling the alv function module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;venkat&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Oct 2008 09:28:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/selection-screen-getting-refreshed-after-execution/m-p/4585418#M1081641</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-10-07T09:28:50Z</dc:date>
    </item>
    <item>
      <title>Re: Selection Screen getting refreshed after execution..</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/selection-screen-getting-refreshed-after-execution/m-p/4585419#M1081642</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No .. I have checked it..Selection variables are not getting refreshed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My Code Below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  yhr_icm_exception_report.&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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; Type Pool declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis,                                     "For AlV&lt;/P&gt;&lt;P&gt;            sdydo,                                    "Dynamic Documents&lt;/P&gt;&lt;P&gt;            icon.                                     "For ICON&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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; Table declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TABLES : yhr_icm_exp_log,                             "ICM Exceptions Log&lt;/P&gt;&lt;P&gt;         yhr_icm_exp_hist.                            "ICM Exception History&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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; Include Constants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;INCLUDE   yhr_icm_constants .                         "Program to hold constants&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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 declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*-To hold return field&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_returntab.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE ddshretval.                 "Interface Structure&lt;/P&gt;&lt;P&gt;TYPES: END OF ty_returntab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-To hold deletion records&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF ty_icm_del,&lt;/P&gt;&lt;P&gt;           tab_name      TYPE yhr_tabname,            "Internal table name&lt;/P&gt;&lt;P&gt;           objid         TYPE hrobjid,                "Object ID&lt;/P&gt;&lt;P&gt;           begda         TYPE begda,                  "Begin Date&lt;/P&gt;&lt;P&gt;           otype         TYPE otype,                  "Object Type&lt;/P&gt;&lt;P&gt;        END OF ty_icm_del.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Message details to be displayed&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF ty_message,&lt;/P&gt;&lt;P&gt;          msgnr          TYPE  msgno,                 "System message number&lt;/P&gt;&lt;P&gt;          text           TYPE  yhr_icm_exp_log-msgxx, "Message Text&lt;/P&gt;&lt;P&gt;        END OF ty_message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-To hold exception log&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF ty_icm_exp_log,&lt;/P&gt;&lt;P&gt;         msgno           TYPE msgnr,                  "Message number&lt;/P&gt;&lt;P&gt;         run_id          TYPE yhr_icm_erun_id,        "Exception Run ID&lt;/P&gt;&lt;P&gt;         delta_id        TYPE yhr_icm_run_id,         "Run ID&lt;/P&gt;&lt;P&gt;         record_type     TYPE yhr_icm_exp_type,       "Record Type&lt;/P&gt;&lt;P&gt;         otype           TYPE yhr_otype,              "Object Type&lt;/P&gt;&lt;P&gt;         objid           TYPE hrobjid,                "Object ID&lt;/P&gt;&lt;P&gt;         begda           TYPE begda,                  "Begin Date&lt;/P&gt;&lt;P&gt;         msgxx           TYPE msgxx,                  "Message&lt;/P&gt;&lt;P&gt;         status          TYPE yhr_icm_icon,           "Status&lt;/P&gt;&lt;P&gt;         delta_relevance TYPE yhr_delta_rel,          "Delta Relevance&lt;/P&gt;&lt;P&gt;        END OF ty_icm_exp_log.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-To hold email attachment&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_attach,&lt;/P&gt;&lt;P&gt;           text(500)     TYPE c,                      "Text&lt;/P&gt;&lt;P&gt;END OF ty_attach.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*To hold object type &amp;amp; text&lt;/P&gt;&lt;P&gt;TYPES :BEGIN OF ty_objid_text,&lt;/P&gt;&lt;P&gt;          objid          TYPE objid,                  "Object ID&lt;/P&gt;&lt;P&gt;          text           TYPE emnam,                  "Object Text&lt;/P&gt;&lt;P&gt;       END OF ty_objid_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-To hold counter values - Exp , Del &amp;amp; historical&lt;/P&gt;&lt;P&gt;TYPES :BEGIN OF ty_count,&lt;/P&gt;&lt;P&gt;          exp(10)        TYPE c,                      "Exceptions&lt;/P&gt;&lt;P&gt;          del(10)        TYPE c,                      "Deletions&lt;/P&gt;&lt;P&gt;          hist(10)       TYPE c,                      "Historical Deletions&lt;/P&gt;&lt;P&gt;       END OF ty_count.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- To hold lock details&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF ty_lock,&lt;/P&gt;&lt;P&gt;          live           TYPE c,                      "Live Callidus Program&lt;/P&gt;&lt;P&gt;          genr           TYPE c,                      "Generation Program&lt;/P&gt;&lt;P&gt;          exp            TYPE c,                      "Exception Program&lt;/P&gt;&lt;P&gt;        END OF ty_lock.&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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; Range Declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;RANGES :&lt;/P&gt;&lt;P&gt;       gr_objid          FOR hrp1001-objid,           "Range for Object ID&lt;/P&gt;&lt;P&gt;       gr_pernr          FOR pa0000-pernr.            "Range for Employee number&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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 Declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA : gt_records        TYPE STANDARD TABLE OF yhr_icm_exp_report,&lt;/P&gt;&lt;P&gt;       gt_objid_text     TYPE STANDARD TABLE OF ty_objid_text,&lt;/P&gt;&lt;P&gt;       gt_icm_exp_log    TYPE STANDARD TABLE OF ty_icm_exp_log,&lt;/P&gt;&lt;P&gt;       gt_returntab      TYPE STANDARD TABLE OF ty_returntab,&lt;/P&gt;&lt;P&gt;       gt_t777o          TYPE STANDARD TABLE OF t777o,&lt;/P&gt;&lt;P&gt;       gt_diff_tab       TYPE STANDARD TABLE OF yhr_icm_diff,&lt;/P&gt;&lt;P&gt;       gt_del_tab        TYPE STANDARD TABLE OF ty_icm_del, "#EC *&lt;/P&gt;&lt;P&gt;       gt_iattach        TYPE STANDARD TABLE OF ty_attach,&lt;/P&gt;&lt;P&gt;       gt_message        TYPE STANDARD TABLE OF ty_message,&lt;/P&gt;&lt;P&gt;       gt_fieldcat       TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;       gt_heading        TYPE slis_t_listheader,&lt;/P&gt;&lt;P&gt;       gt_exceptions     TYPE yhr_icm_exp_list_t,&lt;/P&gt;&lt;P&gt;       gt_events         TYPE slis_t_event.&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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; Structure Declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA : gs_objid_text     TYPE ty_objid_text,&lt;/P&gt;&lt;P&gt;       gs_icm_exp_log    TYPE ty_icm_exp_log,&lt;/P&gt;&lt;P&gt;       gs_records        TYPE yhr_icm_exp_report,&lt;/P&gt;&lt;P&gt;       gs_exceptions     TYPE yhr_icm_exp_list,&lt;/P&gt;&lt;P&gt;       gs_count          TYPE ty_count,&lt;/P&gt;&lt;P&gt;       gs_fieldcat       TYPE slis_fieldcat_alv,            "#EC *&lt;/P&gt;&lt;P&gt;       gs_returntab      TYPE ty_returntab,&lt;/P&gt;&lt;P&gt;       gs_icm_exp_hist   TYPE yhr_icm_exp_hist,&lt;/P&gt;&lt;P&gt;       gs_iattach        TYPE ty_attach,&lt;/P&gt;&lt;P&gt;       gs_message        TYPE ty_message,                   "#EC *&lt;/P&gt;&lt;P&gt;       gs_layout         TYPE slis_layout_alv,&lt;/P&gt;&lt;P&gt;       gs_t777o          TYPE t777o,&lt;/P&gt;&lt;P&gt;       gs_lock           TYPE ty_lock.&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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; Constant declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS:&lt;/P&gt;&lt;P&gt;       c_yes             TYPE string        VALUE 'YES',&lt;/P&gt;&lt;P&gt;       c_no              TYPE string        VALUE 'NO',&lt;/P&gt;&lt;P&gt;       c_true            TYPE c             VALUE 'X',&lt;/P&gt;&lt;P&gt;       c_deletions       TYPE c             VALUE 'D',&lt;/P&gt;&lt;P&gt;       c_delta_no        TYPE c             VALUE 'N',&lt;/P&gt;&lt;P&gt;       c_delta_yes       TYPE c             VALUE 'Y',&lt;/P&gt;&lt;P&gt;       c_historical      TYPE c             VALUE 'H',&lt;/P&gt;&lt;P&gt;       c_a               TYPE c             VALUE 'A',&lt;/P&gt;&lt;P&gt;       c_error           TYPE c             VALUE 'E',&lt;/P&gt;&lt;P&gt;       c_equal(2)        TYPE c             VALUE 'EQ',&lt;/P&gt;&lt;P&gt;       c_participants    TYPE c             VALUE 'P',&lt;/P&gt;&lt;P&gt;       c_include         TYPE c             VALUE 'I',&lt;/P&gt;&lt;P&gt;       c_position        TYPE c             VALUE 'S',&lt;/P&gt;&lt;P&gt;       c_organization    TYPE c             VALUE 'O',&lt;/P&gt;&lt;P&gt;       c_runlock         TYPE string        VALUE 'RUN_LOCK',&lt;/P&gt;&lt;P&gt;       c_parameter       TYPE string        VALUE 'P',&lt;/P&gt;&lt;P&gt;       c_selfield        TYPE string        VALUE 'SEL_FIELD' ,&lt;/P&gt;&lt;P&gt;       c_type            TYPE string        VALUE 'TYPE',&lt;/P&gt;&lt;P&gt;       c_topofpage       TYPE string        VALUE 'TOP_OF_PAGE',&lt;/P&gt;&lt;P&gt;       c_rectype         TYPE string        VALUE ' S_RECTYPE',&lt;/P&gt;&lt;P&gt;       c_objectkey       TYPE string        VALUE 'OBJECTKEY1',&lt;/P&gt;&lt;P&gt;       c_icon_green      TYPE string        VALUE '@08@',&lt;/P&gt;&lt;P&gt;       c_icon_red        TYPE string        VALUE '@0A@',&lt;/P&gt;&lt;P&gt;       c_icon_amber      TYPE string        VALUE '@09@',&lt;/P&gt;&lt;P&gt;       c_green           TYPE string        VALUE 'GREEN',&lt;/P&gt;&lt;P&gt;       c_amber           TYPE string        VALUE 'AMBER',&lt;/P&gt;&lt;P&gt;       c_red             TYPE string        VALUE 'RED',&lt;/P&gt;&lt;P&gt;       c_tabname         TYPE slis_tabname  VALUE 'GT_RECORDS',&lt;/P&gt;&lt;P&gt;       c_structname      TYPE dd02l-tabname VALUE 'YHR_ICM_EXP_REPORT' ,	&lt;/P&gt;&lt;P&gt;       c_siwb_wallpaper  TYPE sdydo_key     VALUE 'SIWB_WALLPAPER',&lt;/P&gt;&lt;P&gt;       c_user_command    TYPE slis_formname VALUE 'F01_ALV_EVENT_USER_COMMAND',&lt;/P&gt;&lt;P&gt;       c_genname         TYPE trdir-name    VALUE 'YHR_ICM_GENERATE_EXCEPTIONS',&lt;/P&gt;&lt;P&gt;       c_expname         TYPE trdir-name    VALUE 'YHR_ICM_EXCEPTION_REPORT',&lt;/P&gt;&lt;P&gt;       c_pf_status       TYPE slis_formname VALUE 'SET_PF_STATUS',&lt;/P&gt;&lt;P&gt;       c_msg_class       TYPE string        VALUE 'YHR_ICM'.&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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; Global Variable Declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA:  gv_email_error    TYPE c,&lt;/P&gt;&lt;P&gt;       gv_email_sent     TYPE c,&lt;/P&gt;&lt;P&gt;       gv_exit           TYPE c.&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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 - Block I&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN:   BEGIN OF BLOCK b3 WITH FRAME TITLE text-s07.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:&lt;/P&gt;&lt;P&gt;*-  Run ID&lt;/P&gt;&lt;P&gt;    s_run_id             FOR yhr_icm_exp_hist-run_id,&lt;/P&gt;&lt;P&gt;*-  Exception Type&lt;/P&gt;&lt;P&gt;    s_rectyp             FOR yhr_icm_exp_log-record_type NO INTERVALS,&lt;/P&gt;&lt;P&gt;*-  Object Type&lt;/P&gt;&lt;P&gt;    s_otype              FOR yhr_icm_exp_log-otype NO INTERVALS,&lt;/P&gt;&lt;P&gt;*-  Object ID&lt;/P&gt;&lt;P&gt;    s_objid              FOR yhr_icm_exp_log-objid NO INTERVALS,&lt;/P&gt;&lt;P&gt;*-  Start Date&lt;/P&gt;&lt;P&gt;    s_begda              FOR yhr_icm_exp_log-begda,&lt;/P&gt;&lt;P&gt;*-  Message number&lt;/P&gt;&lt;P&gt;    s_msgno              FOR yhr_icm_exp_log-msgno,&lt;/P&gt;&lt;P&gt;*-  Message Text&lt;/P&gt;&lt;P&gt;    s_msgxx              FOR yhr_icm_exp_log-msgxx.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:&lt;/P&gt;&lt;P&gt;*- Delta Relevance&lt;/P&gt;&lt;P&gt;   s_relv                FOR yhr_icm_exp_log-delta_relevance NO INTERVALS.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;*- Long Text&lt;/P&gt;&lt;P&gt;   p_ltext               AS   CHECKBOX DEFAULT ' '.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN:   END OF BLOCK b3.&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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 - Block II&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN:   BEGIN OF BLOCK b2 WITH FRAME TITLE text-s08.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 1(14) text-033.&lt;/P&gt;&lt;P&gt;*-Sucess&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  p_stat_s               AS CHECKBOX.                  "D11K917251&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 24(14) text-034.&lt;/P&gt;&lt;P&gt;*-Warning&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  p_stat_w               AS CHECKBOX.                  "D11K917251&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 48(15) text-035.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;*-Error&lt;/P&gt;&lt;P&gt;  p_stat_e               AS CHECKBOX .                 "D11K917251&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&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;/P&gt;&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;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Selection Screen - Block III&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN:   BEGIN OF BLOCK b4 WITH FRAME TITLE text-s09.&lt;/P&gt;&lt;P&gt;*-Email Details&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  p_email(128)            TYPE c.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN:   END OF BLOCK b4.&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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 on value request.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_msgno-low.&lt;/P&gt;&lt;P&gt;  PERFORM f4_message.&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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 Output.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK gt_returntab[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH s_msgno.&lt;/P&gt;&lt;P&gt;  s_msgno-option = c_equal.&lt;/P&gt;&lt;P&gt;  s_msgno-sign = c_include.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gt_returntab INTO gs_returntab.&lt;/P&gt;&lt;P&gt;    s_msgno-low = gs_returntab-fieldval.&lt;/P&gt;&lt;P&gt;    s_msgno-high = space.&lt;/P&gt;&lt;P&gt;    APPEND s_msgno.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; At Selection Screen for Validation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR gv_email_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Validate Object Type&lt;/P&gt;&lt;P&gt;  PERFORM validate_objecttype.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Validate Exception ID&lt;/P&gt;&lt;P&gt;  PERFORM fetch_exp_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Validate Exception Type&lt;/P&gt;&lt;P&gt;  PERFORM validate_exptype.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Validate Message Number&lt;/P&gt;&lt;P&gt;  PERFORM validate_msgno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Validate Message Type&lt;/P&gt;&lt;P&gt;  PERFORM validate_msgtype.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Validate Delta&lt;/P&gt;&lt;P&gt;  PERFORM validate_delta.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Validate Email ID&lt;/P&gt;&lt;P&gt;  PERFORM validate_email USING p_email&lt;/P&gt;&lt;P&gt;                         CHANGING gv_email_error.&lt;/P&gt;&lt;P&gt;  IF gv_email_error IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE e000(yhr_icm) WITH text-027.&lt;/P&gt;&lt;P&gt;  ENDIF.&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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; Initialization&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Initialization&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM initialization.&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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;/P&gt;&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;P&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;&lt;/P&gt;&lt;P&gt;  CLEAR : gv_email_error,&lt;/P&gt;&lt;P&gt;          gv_email_sent,&lt;/P&gt;&lt;P&gt;          gv_exit,&lt;/P&gt;&lt;P&gt;          gs_lock.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Try locking the main program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM lock_generation_program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK gs_lock IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Fetch the messages stored in table&lt;/P&gt;&lt;P&gt;  PERFORM fetch_item_records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read object type text.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM read_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get Object Text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_object_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Fetch the current SAP messages&lt;/P&gt;&lt;P&gt;  PERFORM fetch_records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Update Delta Flag&lt;/P&gt;&lt;P&gt;  PERFORM update_delta_flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Compare messages in table &amp;amp; in SAP&lt;/P&gt;&lt;P&gt;  PERFORM compare_message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If receiver is not blank, try sending out mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM send_mail USING p_email.&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&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;/P&gt;&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;P&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;  IF gv_exit IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Display ALV&lt;/P&gt;&lt;P&gt;  PERFORM display_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Build the event table for ALV display&lt;/P&gt;&lt;P&gt;  PERFORM build_eventtab CHANGING gt_events[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Fill the layout details&lt;/P&gt;&lt;P&gt;  PERFORM layout_build .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Release all locks&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM release_locks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Finally call the grid display&lt;/P&gt;&lt;P&gt;  PERFORM display_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  set_pf_status&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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;     --&amp;gt;RT_EXTAB   text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM set_pf_status USING rt_extab TYPE slis_t_extab.        "#EC *&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set PF Status&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SET PF-STATUS 'STANDARD'.&lt;/P&gt;&lt;P&gt;ENDFORM. "Set_pf_status&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  DISPLAY_ALV&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM display_alv .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Use FM to create field catalog&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_program_name         = sy-repid&lt;/P&gt;&lt;P&gt;      i_internal_tabname     = c_tabname&lt;/P&gt;&lt;P&gt;      i_structure_name       = c_structname&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      ct_fieldcat            = gt_fieldcat&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      inconsistent_interface = 1&lt;/P&gt;&lt;P&gt;      program_error          = 1&lt;/P&gt;&lt;P&gt;      OTHERS                 = 1.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 1.&lt;/P&gt;&lt;P&gt;    MESSAGE i000(yhr_icm) WITH text-001.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Remove SEL Field Column as it is not required&lt;/P&gt;&lt;P&gt;  DELETE gt_fieldcat WHERE fieldname = c_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-If user chooses long text, activate icon&lt;/P&gt;&lt;P&gt;  IF p_ltext IS INITIAL.&lt;/P&gt;&lt;P&gt;    LOOP AT gt_fieldcat INTO gs_fieldcat WHERE fieldname = c_type.&lt;/P&gt;&lt;P&gt;      gs_fieldcat-icon = c_true.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " DISPLAY_ALV&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  BUILD_EVENTTAB&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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;     &amp;lt;--P_GT_EVENTS[]  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM build_eventtab CHANGING    p_events  TYPE slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: ls_event TYPE slis_alv_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Get the list of event for alv&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_list_type = 0&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      et_events   = p_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Add top of page event to event list&lt;/P&gt;&lt;P&gt;  READ TABLE p_events&lt;/P&gt;&lt;P&gt;        WITH KEY name = slis_ev_top_of_page&lt;/P&gt;&lt;P&gt;         INTO ls_event.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    MOVE c_topofpage TO ls_event-form.&lt;/P&gt;&lt;P&gt;    APPEND ls_event TO p_events.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " BUILD_EVENTTAB&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  LAYOUT_BUILD&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM layout_build .&lt;/P&gt;&lt;P&gt;  gs_layout-zebra                = c_true.&lt;/P&gt;&lt;P&gt;  gs_layout-colwidth_optimize    = c_true.&lt;/P&gt;&lt;P&gt;  gs_layout-detail_popup         = c_true.&lt;/P&gt;&lt;P&gt;  gs_layout-detail_initial_lines = c_true.&lt;/P&gt;&lt;P&gt;  gs_layout-detail_titlebar      = text-044.&lt;/P&gt;&lt;P&gt;  gs_layout-box_fieldname        = c_selfield.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " LAYOUT_BUILD&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  DISPLAY_DATA&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM display_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Display ALV display&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_callback_user_command  = c_user_command&lt;/P&gt;&lt;P&gt;      i_background_id          = c_siwb_wallpaper&lt;/P&gt;&lt;P&gt;      i_callback_program       = sy-repid&lt;/P&gt;&lt;P&gt;      i_callback_pf_status_set = c_pf_status&lt;/P&gt;&lt;P&gt;      i_default                = c_true&lt;/P&gt;&lt;P&gt;      i_save                   = c_a&lt;/P&gt;&lt;P&gt;      is_layout                = gs_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat              = gt_fieldcat&lt;/P&gt;&lt;P&gt;      it_events                = gt_events&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                 = gt_records.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " DISPLAY_DATA&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FETCH_RECORDS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM fetch_records .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH : gt_diff_tab,&lt;/P&gt;&lt;P&gt;            gt_del_tab,&lt;/P&gt;&lt;P&gt;            gr_pernr,&lt;/P&gt;&lt;P&gt;            gt_exceptions.&lt;/P&gt;&lt;P&gt;  CLEAR:    gs_icm_exp_log.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Get Employee details&lt;/P&gt;&lt;P&gt;  PERFORM get_person_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Get Position Details&lt;/P&gt;&lt;P&gt;  PERFORM get_position_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Get Organization Details&lt;/P&gt;&lt;P&gt;  PERFORM get_org_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Get Exception current SAP exception list.&lt;/P&gt;&lt;P&gt;  PERFORM get_exception_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Add deletion records&lt;/P&gt;&lt;P&gt;  PERFORM filter_deletions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " FETCH_RECORDS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  top_of_page&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM top_of_page.                                           "#EC *&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM build_comment   USING    gt_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Display Use FM to display Top Of Page&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_list_commentary = gt_heading[].&lt;/P&gt;&lt;P&gt;  CLEAR gt_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "TOP_OF_PAGE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_comment&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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;     --&amp;gt;P_HEADING  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM build_comment USING p_heading TYPE slis_t_listheader.&lt;/P&gt;&lt;P&gt;  DATA: ls_hline     TYPE slis_listheader,&lt;/P&gt;&lt;P&gt;        lv_text(120) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Display report title&lt;/P&gt;&lt;P&gt;  ls_hline-typ  = c_historical.&lt;/P&gt;&lt;P&gt;  WRITE text-006 TO lv_text.&lt;/P&gt;&lt;P&gt;  ls_hline-info = lv_text.&lt;/P&gt;&lt;P&gt;  APPEND ls_hline TO p_heading.&lt;/P&gt;&lt;P&gt;  CLEAR ls_hline.&lt;/P&gt;&lt;P&gt;  ls_hline-typ  = c_s.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Remove leading &amp;amp; trailing spaces&lt;/P&gt;&lt;P&gt;  CONDENSE : gs_count-del,  gs_count-exp,  gs_count-hist.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-If the count is space then pass 0&lt;/P&gt;&lt;P&gt;  IF gs_count-del = space.&lt;/P&gt;&lt;P&gt;    gs_count-del = 0.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF gs_count-exp = space.&lt;/P&gt;&lt;P&gt;    gs_count-exp = 0.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF gs_count-hist = space.&lt;/P&gt;&lt;P&gt;    gs_count-hist = 0.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF gs_lock IS INITIAL.&lt;/P&gt;&lt;P&gt;*-Display Deletion, Exception, Historical Count&lt;/P&gt;&lt;P&gt;    CONCATENATE  text-037 gs_count-del&lt;/P&gt;&lt;P&gt;                 text-032 gs_count-exp&lt;/P&gt;&lt;P&gt;                 text-039 gs_count-hist&lt;/P&gt;&lt;P&gt;            INTO ls_hline-info SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  ELSEIF gs_lock-live IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    ls_hline-info = text-007.&lt;/P&gt;&lt;P&gt;  ELSEIF gs_lock-genr IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    ls_hline-info = text-008.&lt;/P&gt;&lt;P&gt;  ELSEIF gs_lock-exp IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    ls_hline-info = text-009.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  APPEND ls_hline TO p_heading.&lt;/P&gt;&lt;P&gt;  CLEAR ls_hline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "BUILD_COMMENT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  INITIALIZATION&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM initialization .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Read Previous run&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SELECT MAX( run_id )&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   INTO s_run_id-low&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FROM yhr_icm_exp_hist.                                  "#EC *&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; s_run_id-option = c_equal.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; s_run_id-sign = c_include.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND s_run_id.&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; s_rectyp-option = c_equal.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; s_rectyp-sign = c_include.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; s_rectyp-low = c_error.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND s_rectyp.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; s_rectyp-low = c_deletions.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND s_rectyp.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM restrict_selections.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Get the message from Message Class YHR_ICM&lt;/P&gt;&lt;P&gt;  SELECT msgnr&lt;/P&gt;&lt;P&gt;         text&lt;/P&gt;&lt;P&gt;    FROM t100&lt;/P&gt;&lt;P&gt;    INTO TABLE gt_message&lt;/P&gt;&lt;P&gt;   WHERE arbgb = c_msg_class  AND&lt;/P&gt;&lt;P&gt;         msgnr GT '000'.                                    "#EC *&lt;/P&gt;&lt;P&gt;ENDFORM.                    " INITIALIZATION&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F4_MESSAGE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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;     &amp;lt;--P_P_MSGNO  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM f4_message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;F4 Help - Display all messages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      retfield        = 'MSGNR'&lt;/P&gt;&lt;P&gt;      dynpprog        = sy-cprog&lt;/P&gt;&lt;P&gt;      dynpnr          = sy-dynnr&lt;/P&gt;&lt;P&gt;      dynprofield     = 'S_MSGNR'&lt;/P&gt;&lt;P&gt;      window_title    = text-045&lt;/P&gt;&lt;P&gt;      value_org       = c_s&lt;/P&gt;&lt;P&gt;      multiple_choice = c_true&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      value_tab       = gt_message&lt;/P&gt;&lt;P&gt;      return_tab      = gt_returntab&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      parameter_error = 1&lt;/P&gt;&lt;P&gt;      no_values_found = 2&lt;/P&gt;&lt;P&gt;      OTHERS          = 1.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 1.&lt;/P&gt;&lt;P&gt;    MESSAGE i000(yhr_icm) WITH text-002.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ELSEIF sy-subrc = 2.&lt;/P&gt;&lt;P&gt;    MESSAGE i000(yhr_icm) WITH text-003.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " F4_MESSAGE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  VALIDATE_OBJECTTYPE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM validate_objecttype .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK s_otype-low IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;  CONDENSE s_otype-low.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validate object type to check whether user has entered only S, P or O&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF  s_otype-low NE c_organization AND&lt;/P&gt;&lt;P&gt;        s_otype-low NE c_position AND&lt;/P&gt;&lt;P&gt;          s_otype-low NE c_participants  .&lt;/P&gt;&lt;P&gt;    MESSAGE e000(yhr_icm) WITH 'Enter either S(Position), P(Person) or O(Org Unit)'(021).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " VALIDATE_OBJECTTYPE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  VALIDATE_OBJECTTYPE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f01_alv_event_user_command USING r_ucomm LIKE sy-ucomm&lt;/P&gt;&lt;P&gt;                                      rs_selfield TYPE slis_selfield."#EC *&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : lv_answer TYPE c,&lt;/P&gt;&lt;P&gt;         lt_fields TYPE STANDARD TABLE OF sval,&lt;/P&gt;&lt;P&gt;         ls_fields TYPE sval.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Get the row user has selected in ALV list&lt;/P&gt;&lt;P&gt;  READ TABLE gt_records INTO gs_records INDEX rs_selfield-tabindex.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE r_ucomm.&lt;/P&gt;&lt;P&gt;    WHEN 'DISP'.&lt;/P&gt;&lt;P&gt;      CASE gs_records-otype.&lt;/P&gt;&lt;P&gt;        WHEN 'S'.&lt;/P&gt;&lt;P&gt;          SET PARAMETER ID 'POT' FIELD gs_records-otype.&lt;/P&gt;&lt;P&gt;          SET PARAMETER ID 'PON' FIELD gs_records-objid.&lt;/P&gt;&lt;P&gt;          CALL TRANSACTION 'PP01_DISP' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;        WHEN 'P'.&lt;/P&gt;&lt;P&gt;          SET PARAMETER ID 'PER' FIELD gs_records-objid.&lt;/P&gt;&lt;P&gt;          CALL TRANSACTION 'PA20' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;        WHEN 'O'.&lt;/P&gt;&lt;P&gt;          SET PARAMETER ID 'POT' FIELD gs_records-otype.&lt;/P&gt;&lt;P&gt;          SET PARAMETER ID 'PON' FIELD gs_records-objid.&lt;/P&gt;&lt;P&gt;          CALL TRANSACTION 'PP01_DISP' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;      ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN 'CHNG'.&lt;/P&gt;&lt;P&gt;      CASE gs_records-otype.&lt;/P&gt;&lt;P&gt;        WHEN 'S'.&lt;/P&gt;&lt;P&gt;          SET PARAMETER ID 'POT' FIELD gs_records-otype.&lt;/P&gt;&lt;P&gt;          SET PARAMETER ID 'PON' FIELD gs_records-objid.&lt;/P&gt;&lt;P&gt;          CALL TRANSACTION 'PP01' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;        WHEN 'P'.&lt;/P&gt;&lt;P&gt;          SET PARAMETER ID 'PER' FIELD gs_records-objid.&lt;/P&gt;&lt;P&gt;          CALL TRANSACTION 'PA30' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;        WHEN 'O'.&lt;/P&gt;&lt;P&gt;          SET PARAMETER ID 'POT' FIELD gs_records-otype.&lt;/P&gt;&lt;P&gt;          SET PARAMETER ID 'PON' FIELD gs_records-objid.&lt;/P&gt;&lt;P&gt;          CALL TRANSACTION 'PP01' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;      ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN 'EMAIL'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-    Check whether email has already been sent&lt;/P&gt;&lt;P&gt;      IF  gv_email_sent = c_true.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-      If yes, then display pop up to confirm for mailing again&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'POPUP_TO_CONFIRM'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            text_question  = text-041&lt;/P&gt;&lt;P&gt;            text_button_1  = text-042&lt;/P&gt;&lt;P&gt;            text_button_2  = text-043&lt;/P&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;P&gt;            answer         = lv_answer&lt;/P&gt;&lt;P&gt;          EXCEPTIONS&lt;/P&gt;&lt;P&gt;            text_not_found = 1&lt;/P&gt;&lt;P&gt;            OTHERS         = 1.&lt;/P&gt;&lt;P&gt;        IF sy-subrc = 1.&lt;/P&gt;&lt;P&gt;          MESSAGE i000(yhr_icm) WITH text-004.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-     Continue only if user has selected Yes&lt;/P&gt;&lt;P&gt;        CHECK lv_answer = '1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-      Add Email Field &amp;amp; Table&lt;/P&gt;&lt;P&gt;      ls_fields-tabname = 'SZA5_D0700'.&lt;/P&gt;&lt;P&gt;      ls_fields-fieldname =  'SMTP_ADDR'.&lt;/P&gt;&lt;P&gt;      APPEND ls_fields TO lt_fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-      Use FM to get new Email ID&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'POPUP_GET_VALUES'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          popup_title     = text-s09&lt;/P&gt;&lt;P&gt;          start_column    = '5'&lt;/P&gt;&lt;P&gt;          start_row       = '5'&lt;/P&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;P&gt;          fields          = lt_fields&lt;/P&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;P&gt;          error_in_fields = 1&lt;/P&gt;&lt;P&gt;          OTHERS          = 1.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 1.&lt;/P&gt;&lt;P&gt;        MESSAGE i000(yhr_icm) WITH text-004.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-    Get the Email user has entered&lt;/P&gt;&lt;P&gt;      READ TABLE lt_fields INTO ls_fields INDEX 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-      Validate Email ID&lt;/P&gt;&lt;P&gt;      PERFORM validate_email USING ls_fields-value&lt;/P&gt;&lt;P&gt;                     CHANGING gv_email_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-    If the flag is not initial, indicates possible error&lt;/P&gt;&lt;P&gt;      IF  gv_email_error IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;        MESSAGE i000(yhr_icm) WITH text-027.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If no error, then try ending email&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM send_mail USING ls_fields-value.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN 'REFRESH'.&lt;/P&gt;&lt;P&gt;*-    Fetch the current SAP messages&lt;/P&gt;&lt;P&gt;      PERFORM fetch_records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-    Update Delta Flag&lt;/P&gt;&lt;P&gt;      PERFORM update_delta_flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-    Compare messages in table &amp;amp; in SAP&lt;/P&gt;&lt;P&gt;      PERFORM compare_message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-    Refresh alv which is already displayed&lt;/P&gt;&lt;P&gt;      rs_selfield-refresh = c_true.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "F01_ALV_EVENT_USER_COMMAND&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  RESTRICT_SELECTIONS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM restrict_selections .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TYPE-POOLS sscr.&lt;/P&gt;&lt;P&gt;  STATICS: lt_restrict TYPE sscr_restrict,&lt;/P&gt;&lt;P&gt;           lt_opt_list TYPE sscr_opt_list,&lt;/P&gt;&lt;P&gt;           ls_ass      TYPE sscr_ass.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Restrict the wage type selection so the user can only enter&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;values with the 'EQ' clause.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR lt_opt_list.&lt;/P&gt;&lt;P&gt;  MOVE c_objectkey TO lt_opt_list.&lt;/P&gt;&lt;P&gt;  MOVE c_true TO: lt_opt_list-options-eq,&lt;/P&gt;&lt;P&gt;                  lt_opt_list-options-bt,&lt;/P&gt;&lt;P&gt;                  lt_opt_list-options-cp,&lt;/P&gt;&lt;P&gt;                  lt_opt_list-options-eq,&lt;/P&gt;&lt;P&gt;                  lt_opt_list-options-ge,&lt;/P&gt;&lt;P&gt;                  lt_opt_list-options-gt,&lt;/P&gt;&lt;P&gt;                  lt_opt_list-options-le,&lt;/P&gt;&lt;P&gt;                  lt_opt_list-options-lt.&lt;/P&gt;&lt;P&gt;  APPEND lt_opt_list TO lt_restrict-opt_list_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MOVE: c_s         TO ls_ass-kind,&lt;/P&gt;&lt;P&gt;        c_rectype   TO ls_ass-name,&lt;/P&gt;&lt;P&gt;        c_include         TO ls_ass-sg_main,&lt;/P&gt;&lt;P&gt;        space       TO ls_ass-sg_addy,&lt;/P&gt;&lt;P&gt;        c_objectkey TO ls_ass-op_main.&lt;/P&gt;&lt;P&gt;  APPEND ls_ass     TO lt_restrict-ass_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Restrict the values OTYPE&lt;/P&gt;&lt;P&gt;  MOVE  'S_OTYPE'    TO ls_ass-name.&lt;/P&gt;&lt;P&gt;  APPEND ls_ass      TO lt_restrict-ass_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Restrict the values OBJID&lt;/P&gt;&lt;P&gt;  MOVE    'S_OBJID'  TO ls_ass-name.&lt;/P&gt;&lt;P&gt;  APPEND ls_ass      TO lt_restrict-ass_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Use FM to restrict the values&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      restriction = lt_restrict.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " RESTRICT_SELECTIONS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_PERSON_DATA&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM get_person_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : lt_del_tab TYPE STANDARD TABLE OF yhr_icm_diff.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT gt_icm_exp_log BY msgno .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gr_pernr-sign = c_include.&lt;/P&gt;&lt;P&gt;  gr_pernr-option = c_equal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gt_icm_exp_log INTO gs_icm_exp_log WHERE otype = c_participants AND&lt;/P&gt;&lt;P&gt;                                                   record_type = c_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-  Sort the table based on msgno and collect pernr&lt;/P&gt;&lt;P&gt;    gr_pernr-sign = c_include.&lt;/P&gt;&lt;P&gt;    gr_pernr-option = c_equal.&lt;/P&gt;&lt;P&gt;    gr_pernr-low = gs_icm_exp_log-objid.&lt;/P&gt;&lt;P&gt;    APPEND gr_pernr.&lt;/P&gt;&lt;P&gt;    CLEAR gr_pernr-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT END OF msgno.                                        "#EC *&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-    For the list of Pernr having same PERNR get the current exp details&lt;/P&gt;&lt;P&gt;      IF  gs_icm_exp_log-msgno = c_msg_100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-      Export the pernr list to memory id &amp;amp; import in the below FM&lt;/P&gt;&lt;P&gt;*-      Selection of records should be based on values exported from here&lt;/P&gt;&lt;P&gt;        EXPORT gr_pernr TO MEMORY ID 'PERNR_0001'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Org Assignment 0001 Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_PERNR_0001_DATA'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&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;    ELSEIF  gs_icm_exp_log-msgno = c_msg_101. "Y_HR_DIFF_PERNR_0001_ORG_DATA&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_102 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_pernr TO MEMORY ID 'PERNR_0000'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Actions 0000 Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_PERNR_0000_DATA'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_103.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_pernr TO MEMORY ID 'PERNR_0002'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Personal Details 0002 Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_PERNR_0002_DATA'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_104.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_pernr TO MEMORY ID 'PERNR_0004'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Disability 0004 Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_PERNR_0004_DATA'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_105.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_pernr TO MEMORY ID 'PERNR_0006'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Addresses 0006 Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_PERNR_0006_DATA'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_106.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_pernr TO MEMORY ID 'PERNR_0007'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Planned Time 0007 Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_PERNR_0007_DATA'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_107.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_pernr TO MEMORY ID 'PERNR_0016'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Contract Element 0016 Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_PERNR_0016_DATA'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_108.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_pernr TO MEMORY ID 'PERNR_0077'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Additional Personal 0077 Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_PERNR_0077_DATA'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_109 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_pernr TO MEMORY ID 'PERNR_0105'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Communications 0105 Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_PERNR_0105_DATA'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_110.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_pernr TO MEMORY ID 'PERNR_2001'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Absences 2001 Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_PERNR_2001_DATA'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_111.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_pernr TO MEMORY ID 'PERNR_APPR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Person recevies Appraisal 1045&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_PERNR_RECEIVES_APPR'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      REFRESH gr_pernr.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_PERSON_DATA&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FETCH_EXP_HEADER&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM fetch_exp_header .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the header details from history table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT run_id&lt;/P&gt;&lt;P&gt;         delta_run_id&lt;/P&gt;&lt;P&gt;         run_date&lt;/P&gt;&lt;P&gt;         begda&lt;/P&gt;&lt;P&gt;         endda&lt;/P&gt;&lt;P&gt;   INTO  CORRESPONDING FIELDS OF gs_icm_exp_hist&lt;/P&gt;&lt;P&gt;   UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;   FROM  yhr_icm_exp_hist&lt;/P&gt;&lt;P&gt;  WHERE  run_id IN s_run_id.&lt;/P&gt;&lt;P&gt;  ENDSELECT.&lt;/P&gt;&lt;P&gt;  IF sy-subrc IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE e000(yhr_icm) WITH text-023.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " FETCH_EXP_HEADER&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  VALIDATE_EXPTYPE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM validate_exptype .&lt;/P&gt;&lt;P&gt;  IF NOT ( 'E' IN s_rectyp OR&lt;/P&gt;&lt;P&gt;           'H' IN s_rectyp OR&lt;/P&gt;&lt;P&gt;           'D' IN s_rectyp ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MESSAGE e000(yhr_icm) WITH text-024.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " VALIDATE_EXPTYPE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  VALIDATE_MSGNO&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM validate_msgno .&lt;/P&gt;&lt;P&gt;*-Validate message number&lt;/P&gt;&lt;P&gt;  LOOP AT gt_message  INTO gs_message&lt;/P&gt;&lt;P&gt;    WHERE msgnr IN s_msgno.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE e000(yhr_icm) WITH text-025.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " VALIDATE_MSGNO&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  VALIDATE_DELTA&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM validate_delta .&lt;/P&gt;&lt;P&gt;*-Validate delta - should be eithere Y or N&lt;/P&gt;&lt;P&gt;  IF NOT ( 'Y' IN s_relv  OR&lt;/P&gt;&lt;P&gt;         'N' IN  s_relv ).&lt;/P&gt;&lt;P&gt;    MESSAGE e000(yhr_icm) WITH text-026 .&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " VALIDATE_DELTA&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  VALIDATE_EMAIL&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM validate_email USING lv_us_mail  TYPE c&lt;/P&gt;&lt;P&gt;                    CHANGING lv_chg_flag TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONSTANTS :    c_specialchar   TYPE string VALUE&lt;/P&gt;&lt;P&gt;               '''¬_&amp;lt;&amp;gt;!"&amp;amp;/=?:;,-()#%^$|~*+[]`{}£\u00AC'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_search       TYPE sy-fdpos,&lt;/P&gt;&lt;P&gt;        lv_length       TYPE i,&lt;/P&gt;&lt;P&gt;        lv_len_name     TYPE i,                             "#EC *&lt;/P&gt;&lt;P&gt;        lv_len_domain   TYPE i,                             "#EC *&lt;/P&gt;&lt;P&gt;        lv_name(100)    TYPE c,&lt;/P&gt;&lt;P&gt;        lv_domain(100)  TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK lv_us_mail IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Display message if email has special characters&lt;/P&gt;&lt;P&gt;  IF lv_us_mail CA c_specialchar.&lt;/P&gt;&lt;P&gt;    lv_chg_flag = 1.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Calculate the length of the email field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  lv_length = STRLEN( lv_us_mail ) - 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If the first or last letter is '@' or '.', terminate the subroutine.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF lv_us_mail(1) = '@' OR lv_us_mail(1) = '.'.&lt;/P&gt;&lt;P&gt;    lv_chg_flag = 1.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ELSEIF lv_us_mail+lv_length(1) = '@'&lt;/P&gt;&lt;P&gt;      OR lv_us_mail+lv_length(1) = '.'.&lt;/P&gt;&lt;P&gt;    lv_chg_flag = 1.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check for white space in email field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF lv_us_mail(lv_length) CA ' '.&lt;/P&gt;&lt;P&gt;    lv_chg_flag = 1.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Look for '@' and separate name, domain for validations.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SEARCH lv_us_mail FOR '@'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    lv_search = sy-fdpos.&lt;/P&gt;&lt;P&gt;    lv_name   = lv_us_mail+0(lv_search).&lt;/P&gt;&lt;P&gt;    lv_search = lv_search + 1.&lt;/P&gt;&lt;P&gt;    lv_domain = lv_us_mail+lv_search.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if name or domain is empty.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF lv_name IS INITIAL OR lv_domain IS INITIAL.&lt;/P&gt;&lt;P&gt;    lv_chg_flag = 1.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Calculate the length of each field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  lv_len_name   = STRLEN( lv_name ).&lt;/P&gt;&lt;P&gt;  lv_len_domain = STRLEN( lv_domain ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validate lv_name and lv_domain for second '@'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF lv_name CP '@' OR lv_domain CP '@'.&lt;/P&gt;&lt;P&gt;    lv_chg_flag = 1.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validate for min. one dot and max. two dots in domain field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF lv_domain CA '.'.&lt;/P&gt;&lt;P&gt;    CLEAR lv_search.&lt;/P&gt;&lt;P&gt;    lv_search = sy-fdpos.&lt;/P&gt;&lt;P&gt;    IF lv_search = 0.&lt;/P&gt;&lt;P&gt;      lv_chg_flag = 1.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      lv_search = lv_search + 1.&lt;/P&gt;&lt;P&gt;      IF lv_domain+lv_search CP '.'.&lt;/P&gt;&lt;P&gt;        IF sy-fdpos = 0.&lt;/P&gt;&lt;P&gt;          lv_chg_flag = 1.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          lv_search = lv_search + sy-fdpos + 1.&lt;/P&gt;&lt;P&gt;          IF lv_domain+lv_search CP '.'.&lt;/P&gt;&lt;P&gt;            lv_chg_flag = 1.&lt;/P&gt;&lt;P&gt;            EXIT.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    lv_chg_flag = 1.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " VALIDATE_EMAIL&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_POSITION_DATA&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM get_position_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : lt_del_tab TYPE STANDARD TABLE OF yhr_icm_diff.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT gt_icm_exp_log BY msgno .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gt_icm_exp_log INTO gs_icm_exp_log WHERE otype = c_s AND&lt;/P&gt;&lt;P&gt;                                                   record_type = c_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    gr_objid-sign = c_include.&lt;/P&gt;&lt;P&gt;    gr_objid-option = c_equal.&lt;/P&gt;&lt;P&gt;    gr_objid-low = gs_icm_exp_log-objid.&lt;/P&gt;&lt;P&gt;    APPEND gr_objid.&lt;/P&gt;&lt;P&gt;    CLEAR gr_objid-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT END OF msgno.                                        "#EC *&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF  gs_icm_exp_log-msgno = c_msg_201.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_objid TO MEMORY ID 'POS_DATA'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Pos Data from 1000&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_POS_DATA'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_202.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_objid TO MEMORY ID 'POS_REPORTS'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Pos reports to Pos from 1001&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_POS_REPORTS_TO'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_203.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_objid TO MEMORY ID 'POS_REPORTS_PERNR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Pos report to PERNR from 1001&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_POS_REPORTS_TO_PERNR'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_204.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_objid TO MEMORY ID 'POS_REPORTS_ORG'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_POS_REPORTS_TO_ORG'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_205.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_objid TO MEMORY ID 'POS_BELONGS'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Pos belongs to Org from 1001&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_POS_BELONGS_TO'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ELSEIF  gs_icm_exp_log-msgno = c_msg_206. Y_HR_DIFF_POS_ORG_DATA&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_207.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_objid TO MEMORY ID 'POS_HOLDER'.&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;      Get Pos holder from 1001&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_POS_HOLDER'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_208.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_objid TO MEMORY ID 'POS_DESC_JOB'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Pos decribed by Job from 1001&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_POS_DESCRIBED_BY_JOB'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ELSEIF  gs_icm_exp_log-msgno = c_msg_209.   Y_HR_DIFF_JOB_DATA&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_210.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_objid TO MEMORY ID 'JOB_DESC_GEN'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Job decribed by Generic Job from 1001&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_JOB_DESCRIBED_BY_GEN'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_211.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_objid TO MEMORY ID 'JOB_DESC_PLN'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Job decribed by Plan from 1001&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_JOB_DESCRIBED_BY_PLN'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&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;    ELSEIF  gs_icm_exp_log-msgno = c_msg_212.     Y_HR_DIFF_GENJOB_DATA&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ELSEIF  gs_icm_exp_log-msgno = c_msg_213.     Y_HR_DIFF_PLAN_DATA&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      REFRESH gr_objid.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_POSITION_DATA&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_ORG_DATA&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM get_org_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : lt_del_tab TYPE STANDARD TABLE OF yhr_icm_diff.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gt_icm_exp_log INTO gs_icm_exp_log WHERE otype = c_o AND&lt;/P&gt;&lt;P&gt;                                                   record_type = c_error.&lt;/P&gt;&lt;P&gt;    gr_objid-sign = c_include.&lt;/P&gt;&lt;P&gt;    gr_objid-option = c_equal.&lt;/P&gt;&lt;P&gt;    gr_objid-low = gs_icm_exp_log-objid.&lt;/P&gt;&lt;P&gt;    APPEND gr_objid.&lt;/P&gt;&lt;P&gt;    CLEAR  gr_objid-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT END OF msgno.                                        "#EC *&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF  gs_icm_exp_log-msgno = c_msg_301.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_objid TO MEMORY ID 'ORG_DATA'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_ORG_DATA'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_icm_exp_log-msgno = c_msg_302.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXPORT gr_objid TO MEMORY ID 'ORG_REPORTS_TO'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get Org reports to Org from 1001&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'Y_HR_DIFF_ORG_REPORTS_TO'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            period_begda = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;            period_endda = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;            refresh      = space&lt;/P&gt;&lt;P&gt;            UPDATE       = space&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            diff_tab     = gt_diff_tab&lt;/P&gt;&lt;P&gt;            del_tab      = lt_del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      REFRESH gr_objid.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_ORG_DATA&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FETCH_ITEM_RECORDS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM fetch_item_records .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fetch OBJID &amp;amp; corresponding messages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT run_id&lt;/P&gt;&lt;P&gt;         delta_id&lt;/P&gt;&lt;P&gt;         record_type&lt;/P&gt;&lt;P&gt;         otype&lt;/P&gt;&lt;P&gt;         objid&lt;/P&gt;&lt;P&gt;         begda&lt;/P&gt;&lt;P&gt;         msgno&lt;/P&gt;&lt;P&gt;         msgxx&lt;/P&gt;&lt;P&gt;         status&lt;/P&gt;&lt;P&gt;         delta_relevance&lt;/P&gt;&lt;P&gt;    INTO CORRESPONDING FIELDS OF TABLE gt_icm_exp_log&lt;/P&gt;&lt;P&gt;    FROM yhr_icm_exp_log&lt;/P&gt;&lt;P&gt;   WHERE run_id IN s_run_id         AND&lt;/P&gt;&lt;P&gt;         record_type IN s_rectyp    AND&lt;/P&gt;&lt;P&gt;         otype IN s_otype           AND&lt;/P&gt;&lt;P&gt;         objid IN s_objid           AND&lt;/P&gt;&lt;P&gt;         begda IN s_begda           AND&lt;/P&gt;&lt;P&gt;         msgno IN s_msgno           AND&lt;/P&gt;&lt;P&gt;         msgxx IN s_msgxx           AND&lt;/P&gt;&lt;P&gt;         delta_relevance  IN s_relv.&lt;/P&gt;&lt;P&gt;  IF sy-subrc IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE i000(yhr_icm) WITH text-005.&lt;/P&gt;&lt;P&gt;    gv_exit = c_true.&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " FETCH_ITEM_RECORDS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_EXCEPTION_LIST&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM get_exception_list .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the SAP Exceptions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'YHR_ICM_EXP_BUILD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      im_begda      = gs_icm_exp_hist-begda&lt;/P&gt;&lt;P&gt;      im_endda      = gs_icm_exp_hist-endda&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      ex_exceptions = gt_exceptions.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_EXCEPTION_LIST&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  COMPARE_MESSAGE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM compare_message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH gt_records.&lt;/P&gt;&lt;P&gt;  CLEAR gs_count.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Loop at old exception log&lt;/P&gt;&lt;P&gt;  LOOP AT gt_icm_exp_log INTO gs_icm_exp_log.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING gs_icm_exp_log TO gs_records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-  Get the count of deletion, historical deletion &amp;amp; exceptions&lt;/P&gt;&lt;P&gt;    IF gs_records-record_type = c_deletions.&lt;/P&gt;&lt;P&gt;      ADD 1 TO gs_count-del.&lt;/P&gt;&lt;P&gt;    ELSEIF  gs_records-record_type = c_historical.&lt;/P&gt;&lt;P&gt;      ADD 1 TO gs_count-hist.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      ADD 1 TO gs_count-exp.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-  Now check whether exception still exists&lt;/P&gt;&lt;P&gt;    READ TABLE gt_exceptions INTO gs_exceptions&lt;/P&gt;&lt;P&gt;      WITH KEY objid = gs_icm_exp_log-objid&lt;/P&gt;&lt;P&gt;               otype = gs_icm_exp_log-otype&lt;/P&gt;&lt;P&gt;               record_type = gs_icm_exp_log-record_type&lt;/P&gt;&lt;P&gt;               msgno = gs_icm_exp_log-msgno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-  If no, indicates the exception has been removed&lt;/P&gt;&lt;P&gt;    IF sy-subrc IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      gs_records-status = '@08@'.&lt;/P&gt;&lt;P&gt;      gs_records-delta_relevance = gs_exceptions-delta_relevance.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      gs_records-status = gs_icm_exp_log-status.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gs_records-delta_relevance = c_delta_yes .&lt;/P&gt;&lt;P&gt;      gs_records-delta_relevance = c_yes.&lt;/P&gt;&lt;P&gt;    ELSEIF gs_records-delta_relevance = c_delta_no.&lt;/P&gt;&lt;P&gt;      gs_records-delta_relevance = c_no.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF p_ltext IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-    If long text is selected then display object type text&lt;/P&gt;&lt;P&gt;      READ TABLE gt_t777o INTO gs_t777o WITH KEY otype = gs_icm_exp_log-otype .&lt;/P&gt;&lt;P&gt;      gs_records-otype = gs_t777o-otext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF gs_records-record_type = c_deletions.&lt;/P&gt;&lt;P&gt;        gs_records-record_type = text-028.&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_records-record_type = c_historical.&lt;/P&gt;&lt;P&gt;        gs_records-record_type = text-030.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        gs_records-record_type = text-032.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-    Display ICON if long text is selected&lt;/P&gt;&lt;P&gt;      IF  gs_records-status = c_icon_green.&lt;/P&gt;&lt;P&gt;        gs_records-status = c_green.&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_records-status = c_icon_red.&lt;/P&gt;&lt;P&gt;        gs_records-status =  c_red.&lt;/P&gt;&lt;P&gt;      ELSEIF  gs_records-status = c_icon_amber.&lt;/P&gt;&lt;P&gt;        gs_records-status = c_amber.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      gs_records-otype = gs_icm_exp_log-otype .&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-  Get the object text&lt;/P&gt;&lt;P&gt;    READ TABLE gt_objid_text INTO gs_objid_text&lt;/P&gt;&lt;P&gt;      WITH KEY objid = gs_icm_exp_log-objid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    gs_records-objtxt = gs_objid_text-text.&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;  D11K917251 - Start of Change&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF gs_records-status = c_icon_green AND p_stat_s IS INITIAL.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gs_records-status = c_icon_amber AND p_stat_w IS INITIAL.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gs_records-status = c_icon_red AND p_stat_e IS INITIAL.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  D11K917251 - End of Change&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  gs_records-run_id = gs_icm_exp_hist-run_id.      "D11K917251&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  gs_records-run_date = gs_icm_exp_hist-run_date.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    APPEND gs_records TO gt_records.&lt;/P&gt;&lt;P&gt;    CLEAR gs_records.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " COMPARE_MESSAGE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  UPDATE_DELTA_FLAG&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM update_delta_flag .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : ls_diff_tab   TYPE yhr_icm_diff.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gt_exceptions INTO gs_exceptions.&lt;/P&gt;&lt;P&gt;    CLEAR  ls_diff_tab.&lt;/P&gt;&lt;P&gt;    READ TABLE gt_diff_tab INTO ls_diff_tab&lt;/P&gt;&lt;P&gt;        WITH KEY objid = gs_exceptions-objid.&lt;/P&gt;&lt;P&gt;    IF sy-subrc IS INITIAL AND ls_diff_tab IS INITIAL.&lt;/P&gt;&lt;P&gt;      gs_exceptions-delta_relevance = c_delta_yes.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      gs_exceptions-delta_relevance = c_delta_no.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    MODIFY gt_exceptions FROM gs_exceptions TRANSPORTING delta_relevance.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " UPDATE_DELTA_FLAG&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  READ_TEXT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM read_text .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT langu&lt;/P&gt;&lt;P&gt;         otype&lt;/P&gt;&lt;P&gt;         otext&lt;/P&gt;&lt;P&gt;    INTO CORRESPONDING FIELDS OF TABLE  gt_t777o&lt;/P&gt;&lt;P&gt;    FROM t777o&lt;/P&gt;&lt;P&gt;    WHERE langu = sy-langu AND&lt;/P&gt;&lt;P&gt;          otype IN ('O', 'S', 'P').&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " READ_TEXT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_OBJECT_TEXT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM get_object_text .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK gt_icm_exp_log[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get Employee Text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT pernr&lt;/P&gt;&lt;P&gt;         ename&lt;/P&gt;&lt;P&gt;    INTO TABLE gt_objid_text&lt;/P&gt;&lt;P&gt;    FROM pa0001&lt;/P&gt;&lt;P&gt;     FOR ALL ENTRIES IN  gt_icm_exp_log&lt;/P&gt;&lt;P&gt;   WHERE pernr = gt_icm_exp_log-objid&lt;/P&gt;&lt;P&gt;     AND begda LE gs_icm_exp_hist-run_date&lt;/P&gt;&lt;P&gt;     AND endda GE gs_icm_exp_hist-run_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Get Position &amp;amp; Organization Text.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT objid&lt;/P&gt;&lt;P&gt;         mc_stext&lt;/P&gt;&lt;P&gt;    FROM hrp1000&lt;/P&gt;&lt;P&gt;APPENDING TABLE gt_objid_text&lt;/P&gt;&lt;P&gt;  FOR ALL ENTRIES IN  gt_icm_exp_log&lt;/P&gt;&lt;P&gt;    WHERE plvar = '01'&lt;/P&gt;&lt;P&gt;      AND otype = gt_icm_exp_log-otype&lt;/P&gt;&lt;P&gt;      AND objid = gt_icm_exp_log-objid&lt;/P&gt;&lt;P&gt;      AND istat = '1'&lt;/P&gt;&lt;P&gt;      AND begda LE gs_icm_exp_hist-run_date&lt;/P&gt;&lt;P&gt;      AND endda GE gs_icm_exp_hist-run_date.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_OBJECT_TEXT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  SEND_MAIL&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM send_mail USING lv_us_mail TYPE c.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;        lt_imessage      TYPE STANDARD TABLE OF solisti1 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        lt_ipacking_list TYPE STANDARD TABLE OF sopcklsti1 ,&lt;/P&gt;&lt;P&gt;        lt_ireceivers    TYPE STANDARD TABLE OF somlreci1,&lt;/P&gt;&lt;P&gt;        lt_iattachment   TYPE STANDARD TABLE OF solisti1.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;        ls_ireceivers    TYPE somlreci1,&lt;/P&gt;&lt;P&gt;        ls_iattachment   TYPE solisti1,                     "#EC *&lt;/P&gt;&lt;P&gt;        ls_ipacking_list TYPE sopcklsti1,&lt;/P&gt;&lt;P&gt;        ls_xdocdata      LIKE sodocchgi1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_xcnt TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK lv_us_mail IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Convert internal table to mail format&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM conver_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_xdocdata-doc_size = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the subject/generic message attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_xdocdata-obj_langu = sy-langu.&lt;/P&gt;&lt;P&gt;  ls_xdocdata-obj_name = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;  ls_xdocdata-obj_descr = text-006.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data and get size of attachment&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ls_xdocdata.&lt;/P&gt;&lt;P&gt;  READ TABLE gt_records INTO gs_records INDEX lv_xcnt.&lt;/P&gt;&lt;P&gt;  ls_xdocdata-doc_size =&lt;/P&gt;&lt;P&gt;  ( lv_xcnt - 1 ) * 255 + 10.&lt;/P&gt;&lt;P&gt;  ls_xdocdata-obj_langu = sy-langu.&lt;/P&gt;&lt;P&gt;  ls_xdocdata-obj_name = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;  ls_xdocdata-obj_descr = text-006.&lt;/P&gt;&lt;P&gt;  CLEAR ls_iattachment.&lt;/P&gt;&lt;P&gt;  REFRESH lt_iattachment.&lt;/P&gt;&lt;P&gt;  lt_iattachment[] = gt_iattach[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Describe the body of the message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ls_ipacking_list.&lt;/P&gt;&lt;P&gt;  REFRESH lt_ipacking_list.&lt;/P&gt;&lt;P&gt;  ls_ipacking_list-transf_bin = space.&lt;/P&gt;&lt;P&gt;  ls_ipacking_list-head_start = 1.&lt;/P&gt;&lt;P&gt;  ls_ipacking_list-head_num = 0.&lt;/P&gt;&lt;P&gt;  ls_ipacking_list-body_start = 1.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE lt_imessage LINES ls_ipacking_list-body_num.&lt;/P&gt;&lt;P&gt;  ls_ipacking_list-doc_type = 'RAW'.&lt;/P&gt;&lt;P&gt;  APPEND ls_ipacking_list TO lt_ipacking_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create attachment notification&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_ipacking_list-transf_bin = c_true.&lt;/P&gt;&lt;P&gt;  ls_ipacking_list-head_start = 1.&lt;/P&gt;&lt;P&gt;  ls_ipacking_list-head_num = 1.&lt;/P&gt;&lt;P&gt;  ls_ipacking_list-body_start = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE lt_iattachment LINES ls_ipacking_list-body_num.&lt;/P&gt;&lt;P&gt;  ls_ipacking_list-doc_type = 'XLS'.&lt;/P&gt;&lt;P&gt;  ls_ipacking_list-obj_descr = text-046.&lt;/P&gt;&lt;P&gt;  ls_ipacking_list-obj_name = text-047.&lt;/P&gt;&lt;P&gt;  ls_ipacking_list-doc_size = ls_ipacking_list-body_num * 255.&lt;/P&gt;&lt;P&gt;  APPEND ls_ipacking_list TO lt_ipacking_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add the recipients email address&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ls_ireceivers. REFRESH lt_ireceivers.&lt;/P&gt;&lt;P&gt;  ls_ireceivers-receiver = lv_us_mail.&lt;/P&gt;&lt;P&gt;  ls_ireceivers-rec_type = 'U'.&lt;/P&gt;&lt;P&gt;  ls_ireceivers-com_type = 'INT'.&lt;/P&gt;&lt;P&gt;  ls_ireceivers-notif_del = c_true.&lt;/P&gt;&lt;P&gt;  ls_ireceivers-notif_ndel = c_true.&lt;/P&gt;&lt;P&gt;  APPEND ls_ireceivers TO lt_ireceivers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SO_DOCUMENT_SEND_API1'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      document_data              = ls_xdocdata&lt;/P&gt;&lt;P&gt;      put_in_outbox              = c_true&lt;/P&gt;&lt;P&gt;      commit_work                = c_true&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      packing_list               = lt_ipacking_list&lt;/P&gt;&lt;P&gt;      contents_bin               = lt_iattachment&lt;/P&gt;&lt;P&gt;      contents_txt               = lt_imessage&lt;/P&gt;&lt;P&gt;      receivers                  = lt_ireceivers&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;    SUBMIT rsconn01 WITH mode EQ 'INT' AND RETURN.&lt;/P&gt;&lt;P&gt;    COMMIT WORK .&lt;/P&gt;&lt;P&gt;    MESSAGE i000(yhr_icm) WITH text-036.&lt;/P&gt;&lt;P&gt;    gv_email_sent = c_true.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SEND_MAIL&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  CONVER_TABLE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM conver_table .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLASS cl_abap_char_utilities DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONSTANTS:&lt;/P&gt;&lt;P&gt;      c_con_tab    TYPE c      VALUE cl_abap_char_utilities=&amp;gt;horizontal_tab,&lt;/P&gt;&lt;P&gt;      c_con_cret   TYPE c      VALUE cl_abap_char_utilities=&amp;gt;cr_lf,&lt;/P&gt;&lt;P&gt;      c_exp_report TYPE string VALUE 'YHR_ICM_EXP_REPORT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS :&lt;/P&gt;&lt;P&gt;       c_con_tab INTO ls_comp.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        CONCATENATE gs_iattach ls_comp INTO gs_iattach.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONCATENATE c_con_cret gs_iattach INTO gs_iattach.&lt;/P&gt;&lt;P&gt;    APPEND gs_iattach TO gt_iattach.&lt;/P&gt;&lt;P&gt;    CLEAR gs_iattach.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " CONVER_TABLE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FILTER_DELETIONS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM filter_deletions .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gt_icm_exp_log INTO gs_icm_exp_log&lt;/P&gt;&lt;P&gt;                         WHERE record_type = c_deletions OR&lt;/P&gt;&lt;P&gt;                               record_type = c_historical.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING gs_icm_exp_log TO gs_exceptions.&lt;/P&gt;&lt;P&gt;    APPEND gs_exceptions TO gt_exceptions.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " FILTER_DELETIONS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  LOCK_GENERATION_PROGRAM&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM lock_generation_program .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Try locking generation program .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'ENQUEUE_ES_PROG'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      name           = c_genname&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      foreign_lock   = 1&lt;/P&gt;&lt;P&gt;      system_failure = 2&lt;/P&gt;&lt;P&gt;      OTHERS         = 3.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    gs_lock-genr = c_true.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Try locking generation program .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'ENQUEUE_ES_PROG'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      name           = c_expname&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      foreign_lock   = 1&lt;/P&gt;&lt;P&gt;      system_failure = 2&lt;/P&gt;&lt;P&gt;      OTHERS         = 3.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    gs_lock-exp = c_true.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check whether Main Callidus Program is running.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT low&lt;/P&gt;&lt;P&gt;    INTO gs_lock-live&lt;/P&gt;&lt;P&gt;    FROM yhr_icm_tvarv&lt;/P&gt;&lt;P&gt;    UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;    WHERE name = c_runlock AND&lt;/P&gt;&lt;P&gt;          type = c_parameter.&lt;/P&gt;&lt;P&gt;  ENDSELECT.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " LOCK_GENERATION_PROGRAM&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  RELEASE_LOCKS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM release_locks .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF gs_lock-genr IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Release Generation Program lock&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'DEQUEUE_ES_PROG'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        name = c_genname.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF gs_lock-exp IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Release Exception Report lock&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'DEQUEUE_ES_PROG'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        name = c_expname.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " RELEASE_LOCKS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  VALIDATE_MSGTYPE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;P&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&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;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM validate_msgtype .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_stat_s IS INITIAL AND&lt;/P&gt;&lt;P&gt;     p_stat_e IS INITIAL AND&lt;/P&gt;&lt;P&gt;     p_stat_w IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE e000(yhr_icm) WITH text-010.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " VALIDATE_MSGTYPE&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;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Oct 2008 10:31:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/selection-screen-getting-refreshed-after-execution/m-p/4585419#M1081642</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-10-07T10:31:49Z</dc:date>
    </item>
  </channel>
</rss>

