<?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 Problem with ALV Grid Not Displaying Data in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-grid-not-displaying-data/m-p/2904100#M683051</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gurus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a report program, when i run it I display an output summary on ALV Grid, and when i click on each of the row in the output summary, I'm suppose to see the item detail of each record. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This item detail is showing for some record and is not showing for some other records (when i use different selections). I debugged it and observed that the table populating the ALV grid actually has records in it. The ALV grid is not just displaying the records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I debugged the 2 examples (one showing record and the other not showing), I found out that nothing is different in the way they run till they populate the final internal record to passed to the ALV Grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please any suggestions on this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the function code for the ALV grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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_program       = g_program_id&lt;/P&gt;&lt;P&gt;      i_callback_pf_status_set = c_detail_status&lt;/P&gt;&lt;P&gt;      i_callback_user_command  = c_detail_user_comm&lt;/P&gt;&lt;P&gt;      i_grid_title             = lv_grid_title&lt;/P&gt;&lt;P&gt;      is_layout                = w_detail_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat              = i_detail_fieldcat&lt;/P&gt;&lt;P&gt;      it_sort                  = i_detail_sort&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                 = i_faglflexa[]   "NEM - detail&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      program_error            = 1&lt;/P&gt;&lt;P&gt;      OTHERS                   = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e064&lt;/P&gt;&lt;P&gt;      WITH sy-subrc.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Function REUSE_ALV_GRID_DISPLAY failed on detail view SY-SUBRC = &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 08 Oct 2007 16:32:11 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-10-08T16:32:11Z</dc:date>
    <item>
      <title>Problem with ALV Grid Not Displaying Data</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-grid-not-displaying-data/m-p/2904100#M683051</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gurus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a report program, when i run it I display an output summary on ALV Grid, and when i click on each of the row in the output summary, I'm suppose to see the item detail of each record. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This item detail is showing for some record and is not showing for some other records (when i use different selections). I debugged it and observed that the table populating the ALV grid actually has records in it. The ALV grid is not just displaying the records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I debugged the 2 examples (one showing record and the other not showing), I found out that nothing is different in the way they run till they populate the final internal record to passed to the ALV Grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please any suggestions on this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the function code for the ALV grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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_program       = g_program_id&lt;/P&gt;&lt;P&gt;      i_callback_pf_status_set = c_detail_status&lt;/P&gt;&lt;P&gt;      i_callback_user_command  = c_detail_user_comm&lt;/P&gt;&lt;P&gt;      i_grid_title             = lv_grid_title&lt;/P&gt;&lt;P&gt;      is_layout                = w_detail_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat              = i_detail_fieldcat&lt;/P&gt;&lt;P&gt;      it_sort                  = i_detail_sort&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                 = i_faglflexa[]   "NEM - detail&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      program_error            = 1&lt;/P&gt;&lt;P&gt;      OTHERS                   = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e064&lt;/P&gt;&lt;P&gt;      WITH sy-subrc.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Function REUSE_ALV_GRID_DISPLAY failed on detail view SY-SUBRC = &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Oct 2007 16:32:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-grid-not-displaying-data/m-p/2904100#M683051</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-08T16:32:11Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with ALV Grid Not Displaying Data</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-grid-not-displaying-data/m-p/2904101#M683052</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Basil, please send the full code.&lt;/P&gt;&lt;P&gt;Maybe your fieldcat is the problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RP&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Oct 2007 16:37:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-grid-not-displaying-data/m-p/2904101#M683052</guid>
      <dc:creator>rodrigo_paisante3</dc:creator>
      <dc:date>2007-10-08T16:37:26Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with ALV Grid Not Displaying Data</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-grid-not-displaying-data/m-p/2904102#M683053</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;U have to refresh the ALV Grid before it displays the data.Then only the datas for the next selection will be displayed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Padmam.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Oct 2007 16:42:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-grid-not-displaying-data/m-p/2904102#M683053</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-08T16:42:29Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with ALV Grid Not Displaying Data</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-grid-not-displaying-data/m-p/2904103#M683054</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;u have this in your code&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;it_fieldcat = i_detail_fieldcat&lt;/P&gt;&lt;P&gt;it_sort = i_detail_sort&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;Now check this:&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;it_fieldcat = i_detail_fieldcat[]&lt;/P&gt;&lt;P&gt;it_sort = i_detail_sort[]&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Gregory&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Oct 2007 17:04:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-grid-not-displaying-data/m-p/2904103#M683054</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-08T17:04:06Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with ALV Grid Not Displaying Data</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-grid-not-displaying-data/m-p/2904104#M683055</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This is the full code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***INCLUDE ZFIGL_HYPERION_F01.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  open_files&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open files used by the program.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM open_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  OPEN DATASET p_fileot FOR OUTPUT IN TEXT MODE ENCODING DEFAULT&lt;/P&gt;&lt;P&gt;    MESSAGE g_message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e056&lt;/P&gt;&lt;P&gt;      WITH g_message.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Unable to open output file &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " open_files&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  close_files&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Close files used by the program.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM close_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLOSE DATASET p_fileot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " close_files&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  extract_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Extract data from database needed to generate output file and report.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM extract_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the required general ledger totals records.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_faglflext_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Derive any other necessary fields for I_FAGLFLEXT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM derive_add_fields_faglflext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Split records by fiscal period.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM split_records_by_period.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Summarize the detail records to allow for creation of the file and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;reporting.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM summarize_records_by_period.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the required general ledger actual line items records.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_faglflexa_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Derive any other necessary fields for I_FAGLFLEXA.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM derive_add_fields_faglflexa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sort the detail and summary output tables into key sequence.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM sort_output_tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " extract_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create the requested file and report.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create the local file if requested by the user or the month-end file&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;at month-end.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF cb_test = c_not_selected.&lt;/P&gt;&lt;P&gt;    PERFORM create_pc_file.&lt;/P&gt;&lt;P&gt;  ELSEIF sy-uname = c_user_batch_admin.&lt;/P&gt;&lt;P&gt;    PERFORM create_output_file.&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;Create the necessary tables for summary ALV report.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM build_summary_layout.&lt;/P&gt;&lt;P&gt;  PERFORM build_summary_field_catalog.&lt;/P&gt;&lt;P&gt;  PERFORM build_summary_sort_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check to see that there is data in the summary output table.  If yes,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;generate report, if not, then give a message to the user.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  READ TABLE i_output_summary INDEX 1 TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE s062.&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;No data extracted for selection criteria entered&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;Generate the summary ALV report view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM generate_summary_alv_report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " process_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  verify_user_selections&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Verify data input by the user.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM verify_user_selections.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT p_ryear IS INITIAL.&lt;/P&gt;&lt;P&gt;    IF p_ryear &amp;lt; 2006 OR&lt;/P&gt;&lt;P&gt;       p_ryear &amp;gt; 2100.&lt;/P&gt;&lt;P&gt;      MESSAGE e057.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fiscal year is invalid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ENDIF.&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;If program is being run in a non-test mode and the user has left the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fiscal year selection blank, display a error message.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF cb_test IS INITIAL AND&lt;/P&gt;&lt;P&gt;     p_ryear IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE e058.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A fiscal year must be entered when generating the file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;If program is being run in a non-test mode and the user has left the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;period selection blank, display a error message.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF cb_test IS INITIAL AND&lt;/P&gt;&lt;P&gt;     s_rpmax IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE e132.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A period must be entered when generating the file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF cb_test IS INITIAL AND&lt;/P&gt;&lt;P&gt;     p_lfile IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE e071.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Local filename is required when generating the file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****&lt;STRONG&gt;Basil Balogun's addition to include the hyperion acct in selection. (10/03/2007)&lt;/STRONG&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF s_rhype IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT s_rhype.&lt;/P&gt;&lt;P&gt;      CLEAR r_hyper.&lt;/P&gt;&lt;P&gt;      r_hyper-sign = 'I'.&lt;/P&gt;&lt;P&gt;      r_hyper-option = 'CP'.&lt;/P&gt;&lt;P&gt;      CONCATENATE '&lt;STRONG&gt;' s_rhype-low '&lt;/STRONG&gt;' INTO r_hyper-low.&lt;/P&gt;&lt;P&gt;      APPEND r_hyper.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT bukrs saknr hyper&lt;/P&gt;&lt;P&gt;           FROM zall_gl_hype INTO TABLE i_zall_gl&lt;/P&gt;&lt;P&gt;           WHERE hyper IN r_hyper.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT i_zall_gl INTO w_zall_gl.&lt;/P&gt;&lt;P&gt;      w_zall_gl1-saknr = w_zall_gl-saknr.&lt;/P&gt;&lt;P&gt;      w_zall_gl2-bukrs = w_zall_gl-bukrs.&lt;/P&gt;&lt;P&gt;      APPEND w_zall_gl1-saknr TO i_zall_gl1.&lt;/P&gt;&lt;P&gt;      APPEND w_zall_gl2-bukrs TO i_zall_gl2.&lt;/P&gt;&lt;P&gt;      CLEAR: w_zall_gl, w_zall_gl1, w_zall_gl2.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT i_zall_gl1 BY saknr.&lt;/P&gt;&lt;P&gt;    SORT i_zall_gl2 BY bukrs.&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM i_zall_gl1 COMPARING saknr.&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM i_zall_gl2 COMPARING bukrs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF s_racct IS INITIAL.&lt;/P&gt;&lt;P&gt;      LOOP AT i_zall_gl1 INTO w_zall_gl1.&lt;/P&gt;&lt;P&gt;        r_saknr-sign = 'I'.&lt;/P&gt;&lt;P&gt;        r_saknr-option = 'EQ'.&lt;/P&gt;&lt;P&gt;        r_saknr-low = w_zall_gl1.&lt;/P&gt;&lt;P&gt;        APPEND r_saknr.&lt;/P&gt;&lt;P&gt;        CLEAR r_saknr.&lt;/P&gt;&lt;P&gt;        CLEAR w_zall_gl1.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      r_saknr[] = s_racct[].&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF s_rbukrs IS INITIAL.&lt;/P&gt;&lt;P&gt;      LOOP AT i_zall_gl2 INTO w_zall_gl2.&lt;/P&gt;&lt;P&gt;        r_bukrs-sign = 'I'.&lt;/P&gt;&lt;P&gt;        r_bukrs-option = 'EQ'.&lt;/P&gt;&lt;P&gt;        r_bukrs-low = w_zall_gl2-bukrs.&lt;/P&gt;&lt;P&gt;        APPEND r_bukrs.&lt;/P&gt;&lt;P&gt;        CLEAR r_bukrs.&lt;/P&gt;&lt;P&gt;        CLEAR w_zall_gl2.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      r_bukrs[] = s_rbukrs[].&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    r_saknr[] = s_racct[].&lt;/P&gt;&lt;P&gt;    r_bukrs[] = s_rbukrs[].&lt;/P&gt;&lt;P&gt;    SELECT bukrs saknr hyper&lt;/P&gt;&lt;P&gt;           FROM zall_gl_hype INTO TABLE i_zall_gl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;****&lt;STRONG&gt;Basil Balogun's addition to include the hyperion acct in selection. (10/03/2007)&lt;/STRONG&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " verify_user_selections&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_faglflext_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get FAGLFLEXT (General Ledger: Totals) data from the database.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_faglflext_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Use the fiscal year for the selection, if it was populated by the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;user.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT p_ryear IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT ryear rldnr rvers racct rbukrs prctr rfarea kokrs segment&lt;/P&gt;&lt;P&gt;           zzsarea zzsareaim rassc hsl01 hsl02 hsl03 hsl04 hsl05 hsl06&lt;/P&gt;&lt;P&gt;           hsl07 hsl08 hsl09 hsl10 hsl11 hsl12 hsl13 hsl14 hsl15 hsl16&lt;/P&gt;&lt;P&gt;           hslvt&lt;/P&gt;&lt;P&gt;      INTO TABLE i_faglflext&lt;/P&gt;&lt;P&gt;      FROM faglflext&lt;/P&gt;&lt;P&gt;      WHERE rldnr = c_run_ledger    AND&lt;/P&gt;&lt;P&gt;            rbukrs IN r_bukrs       AND&lt;/P&gt;&lt;P&gt;            racct  IN r_saknr       AND&lt;/P&gt;&lt;P&gt;            rfarea IN s_rfarea      AND&lt;/P&gt;&lt;P&gt;            prctr  IN s_prctr       AND&lt;/P&gt;&lt;P&gt;            ryear  =  p_ryear       AND&lt;/P&gt;&lt;P&gt;            rvers  = c_run_version.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    SELECT ryear rldnr rvers racct rbukrs prctr rfarea kokrs segment&lt;/P&gt;&lt;P&gt;         zzsarea zzsareaim rassc hsl01 hsl02 hsl03 hsl04 hsl05 hsl06&lt;/P&gt;&lt;P&gt;         hsl07 hsl08 hsl09 hsl10 hsl11 hsl12 hsl13 hsl14 hsl15 hsl16&lt;/P&gt;&lt;P&gt;         hslvt&lt;/P&gt;&lt;P&gt;    INTO TABLE i_faglflext&lt;/P&gt;&lt;P&gt;    FROM faglflext&lt;/P&gt;&lt;P&gt;    WHERE rldnr = c_run_ledger    AND&lt;/P&gt;&lt;P&gt;          rbukrs IN r_bukrs       AND&lt;/P&gt;&lt;P&gt;          racct  IN r_saknr       AND&lt;/P&gt;&lt;P&gt;          rfarea IN s_rfarea      AND&lt;/P&gt;&lt;P&gt;          prctr  IN s_prctr       AND&lt;/P&gt;&lt;P&gt;          rvers  = c_run_version.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_faglflext_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  derive_add_fields_faglflext&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Derive additional fields needed for the I_FAGLFLEXT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM derive_add_fields_faglflext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get needed company code and profit center data from the database.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_t001_data.&lt;/P&gt;&lt;P&gt;  PERFORM get_t880_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE i_faglflext INDEX 1 TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    PERFORM get_cepc_data.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT i_zall_gl BY bukrs saknr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_faglflext INTO w_faglflext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get necessary company code data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE i_t001 INTO w_t001&lt;/P&gt;&lt;P&gt;      WITH KEY bukrs = w_faglflext-rbukrs&lt;/P&gt;&lt;P&gt;               BINARY SEARCH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e059&lt;/P&gt;&lt;P&gt;        WITH w_faglflext-rbukrs.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Company code &amp;amp; not found on table T001&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;Determine the entity.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM derive_entity USING w_t001-rcomp&lt;/P&gt;&lt;P&gt;                       CHANGING w_faglflext-entity.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine the strategic segment.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM derive_strategic_segment USING w_faglflext-rassc&lt;/P&gt;&lt;P&gt;                                           w_faglflext-prctr&lt;/P&gt;&lt;P&gt;                                  CHANGING w_faglflext-strat_seg&lt;/P&gt;&lt;P&gt;                                           w_faglflext-zzsareaim&lt;/P&gt;&lt;P&gt;                                           w_faglflext-zzsarea.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine the strategic segment channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM derive_strat_seg_chnl USING w_faglflext-rassc&lt;/P&gt;&lt;P&gt;                                        w_faglflext-prctr&lt;/P&gt;&lt;P&gt;                               CHANGING w_faglflext-strat_seg_chnl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine the all item ID and all products.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM derive_all_item_id USING w_t001-waers&lt;/P&gt;&lt;P&gt;                            CHANGING w_faglflext-all_item_id&lt;/P&gt;&lt;P&gt;                                     w_faglflext-all_products.&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;Determine the all customers and all customers channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM derive_all_customers_fields USING w_faglflext-strat_seg&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*w_faglflext-strat_seg_chnl&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    CHANGING w_faglflext-all_cust&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*w_faglflext-all_cust_chnl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine the sub account using the company ID of the trading partner.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM derive_sub_account USING w_faglflext-rassc&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                           CHANGING w_faglflext-sub_acct.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM derive_sub_account USING w_t001-rcomp&lt;/P&gt;&lt;P&gt;                                     w_faglflext-rassc&lt;/P&gt;&lt;P&gt;                       CHANGING w_faglflext-sub_acct.&lt;/P&gt;&lt;P&gt;****Begin Basil changes to include hyperion acct in selection (10/03/2007).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE i_zall_gl INTO w_zall_gl&lt;/P&gt;&lt;P&gt;                 WITH KEY bukrs = w_faglflext-rbukrs&lt;/P&gt;&lt;P&gt;                          saknr = w_faglflext-racct&lt;/P&gt;&lt;P&gt;                      BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****End Basil changes to include hyperion acct in selection (10/03/2007).&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;Determine the Hyperion account number from G/L account long text.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM derive_hyperion_account USING w_faglflext-racct&lt;/P&gt;&lt;P&gt;                                            w_faglflext-rfarea&lt;/P&gt;&lt;P&gt;                                            "KMK5/22/06 ITR: 20592&lt;/P&gt;&lt;P&gt;                                            w_faglflext-sub_acct&lt;/P&gt;&lt;P&gt;                                            w_faglflext-rassc&lt;/P&gt;&lt;P&gt;                                            w_faglflext-prctr&lt;/P&gt;&lt;P&gt;                     CHANGING w_faglflext-hyperion_acct&lt;/P&gt;&lt;P&gt;                              w_faglflext-reverse_sign "NEM8/21/06 ITR: 24286&lt;/P&gt;&lt;P&gt;                              w_faglflext-balance_sheet "NEM8/21/06 ITR: 24286&lt;/P&gt;&lt;P&gt;                              w_faglflext-zzsarea&lt;/P&gt;&lt;P&gt;                              w_faglflext-zzsareaim&lt;/P&gt;&lt;P&gt;                              w_faglflext-strat_seg.&lt;/P&gt;&lt;P&gt;    ENDIF.&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;Determine the all customers and all customers channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM derive_all_customers_fields USING w_faglflext-strat_seg&lt;/P&gt;&lt;P&gt;                                              w_faglflext-strat_seg_chnl&lt;/P&gt;&lt;P&gt;                                     CHANGING w_faglflext-all_cust&lt;/P&gt;&lt;P&gt;                                              w_faglflext-all_cust_chnl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Update i_FAGLFLEXT with the newly derive fields.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MODIFY i_faglflext FROM w_faglflext&lt;/P&gt;&lt;P&gt;      TRANSPORTING entity&lt;/P&gt;&lt;P&gt;                   strat_seg&lt;/P&gt;&lt;P&gt;                   strat_seg_chnl&lt;/P&gt;&lt;P&gt;                   all_item_id&lt;/P&gt;&lt;P&gt;                   all_products&lt;/P&gt;&lt;P&gt;                   all_cust&lt;/P&gt;&lt;P&gt;                   all_cust_chnl&lt;/P&gt;&lt;P&gt;                   hyperion_acct&lt;/P&gt;&lt;P&gt;                   sub_acct&lt;/P&gt;&lt;P&gt;                   fiscal_period&lt;/P&gt;&lt;P&gt;                   zzsarea&lt;/P&gt;&lt;P&gt;                   zzsareaim&lt;/P&gt;&lt;P&gt;                   reverse_sign        "NEM8/21/06 ITR: 24286&lt;/P&gt;&lt;P&gt;                   balance_sheet.      "NEM8/21/06 ITR: 24286&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK s_rhype IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;  SORT s_rhype BY low.&lt;/P&gt;&lt;P&gt;  LOOP AT i_faglflext INTO w_faglflext.&lt;/P&gt;&lt;P&gt;    READ TABLE s_rhype WITH KEY low = w_faglflext-hyperion_acct.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      CLEAR w_faglflext-hyperion_acct.&lt;/P&gt;&lt;P&gt;      MODIFY i_faglflext FROM w_faglflext.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  DELETE i_faglflext WHERE hyperion_acct IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " derive_add_fields_faglflext&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  derive_entity&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Derive the entity using the company code.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;RCOMP  - Company code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--ENTITY - Entity&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM derive_entity USING rcomp  TYPE t_t001-rcomp&lt;/P&gt;&lt;P&gt;                CHANGING entity TYPE t_faglflext-entity.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR:&lt;/P&gt;&lt;P&gt;    entity.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get necessary global company code data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  READ TABLE i_t880 INTO w_t880&lt;/P&gt;&lt;P&gt;    WITH KEY rcomp = rcomp&lt;/P&gt;&lt;P&gt;             BINARY SEARCH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    entity  = w_t880-name2+0(3).&lt;/P&gt;&lt;P&gt;    TRANSLATE entity TO UPPER CASE.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE e060&lt;/P&gt;&lt;P&gt;      WITH w_t001-rcomp.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Company code &amp;amp; not found on table T880&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " derive_entity&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_t001_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get T001 (Company Codes) data from the database.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_t001_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT bukrs waers rcomp&lt;/P&gt;&lt;P&gt;    INTO TABLE i_t001&lt;/P&gt;&lt;P&gt;    FROM t001&lt;/P&gt;&lt;P&gt;    CLIENT SPECIFIED&lt;/P&gt;&lt;P&gt;    WHERE mandt = sy-mandt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT i_t001 BY bukrs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_t001_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_t880_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get T880 (Global Company Data (for KONS Ledger)) data from the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;database.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_t880_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT rcomp name2&lt;/P&gt;&lt;P&gt;    INTO TABLE i_t880&lt;/P&gt;&lt;P&gt;    FROM t880&lt;/P&gt;&lt;P&gt;    CLIENT SPECIFIED&lt;/P&gt;&lt;P&gt;    WHERE mandt = sy-mandt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT i_t880 BY rcomp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_t880_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  derive_all_item_id&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Derive the all item ID from the company code currency key.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;WAERS       - Currency key.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--ALL_ITEM_ID - All item ID.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--ALL_ITEM_ID - All item ID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM derive_all_item_id USING waers        TYPE t_t001-waers&lt;/P&gt;&lt;P&gt;                     CHANGING all_item_id  TYPE t_faglflext-all_item_id&lt;/P&gt;&lt;P&gt;                              all_products TYPE t_faglflext-all_products&lt;/P&gt;&lt;P&gt;                              .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR:&lt;/P&gt;&lt;P&gt;    all_item_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate all item ID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  all_item_id = c_all_item_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF waers = c_us_dollars.&lt;/P&gt;&lt;P&gt;    REPLACE '*' WITH c_united_states INTO all_item_id.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    REPLACE '*' WITH c_local         INTO all_item_id.&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;Populate all products.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  all_products   = c_all_products.&lt;/P&gt;&lt;P&gt;  TRANSLATE all_products TO UPPER CASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " derive_all_item_id&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  derive_all_customers_fields&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Derive the all customers and all customer channel fields from&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the strategic segment and strategic segment channel respectively.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;STRAT_SEG      - Strategic segment.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;STRAT_SEG_CHNL - Strategic segment channel.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--ALL_CUST       - All customers.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--ALL_CUST_CHNL  - All customers channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM derive_all_customers_fields USING strat_seg      TYPE&lt;/P&gt;&lt;P&gt;t_faglflext-strat_seg&lt;/P&gt;&lt;P&gt;                                       strat_seg_chnl TYPE&lt;/P&gt;&lt;P&gt;                                       t_faglflext-strat_seg_chnl&lt;/P&gt;&lt;P&gt;                              CHANGING all_cust       TYPE&lt;/P&gt;&lt;P&gt;                              t_faglflext-all_cust&lt;/P&gt;&lt;P&gt;                                       all_cust_chnl  TYPE&lt;/P&gt;&lt;P&gt;                                       t_faglflext-all_cust_chnl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR:&lt;/P&gt;&lt;P&gt;    all_cust,&lt;/P&gt;&lt;P&gt;    all_cust_chnl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  all_cust        = strat_seg.&lt;/P&gt;&lt;P&gt;  all_cust+2(1)   = c_all_customers.&lt;/P&gt;&lt;P&gt;  TRANSLATE all_cust TO UPPER CASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  all_cust_chnl   = strat_seg_chnl.&lt;/P&gt;&lt;P&gt;  TRANSLATE all_cust_chnl TO UPPER CASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " derive_all_customers_fields&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  derive_hyperion_account&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read G/L account long text to get the Hyperion account number.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;RACCT         - SAP G/L account number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--HYPERION_ACCT - Hyperion account number.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM derive_hyperion_account USING racct         TYPE t_faglflext-racct&lt;/P&gt;&lt;P&gt;                                   farea         TYPE t_faglflext-rfarea&lt;/P&gt;&lt;P&gt;                                   "KMK5/22/06 ITR 20592&lt;/P&gt;&lt;P&gt;                                   sub_account   TYPE&lt;/P&gt;&lt;P&gt;                                   t_faglflext-sub_acct&lt;/P&gt;&lt;P&gt;                                   rassc         TYPE t_faglflext-rassc&lt;/P&gt;&lt;P&gt;                                   prctr         TYPE t_faglflext-prctr&lt;/P&gt;&lt;P&gt;                      CHANGING hyperion_acct TYPE t_faglflext-hyperion_acct&lt;/P&gt;&lt;P&gt;                               reverse_sign  TYPE t_faglflext-reverse_sign "NEM8/21/06 ITR: 24286&lt;/P&gt;&lt;P&gt;                               balance_sheet TYPE t_faglflext-balance_sheet "NEM8/21/06 ITR: 24286&lt;/P&gt;&lt;P&gt;                               zzsarea       TYPE t_faglflext-zzsarea&lt;/P&gt;&lt;P&gt;                               zzsareaim     TYPE t_faglflext-zzsareaim&lt;/P&gt;&lt;P&gt;                               strat_seg     TYPE t_faglflext-strat_seg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lv_text_name          TYPE thead-tdname,&lt;/P&gt;&lt;P&gt;    l_strl                TYPE i VALUE 0,&lt;/P&gt;&lt;P&gt;    l_hyperion_acct(10),                       "KMK5/20/06 ITR 20527&lt;/P&gt;&lt;P&gt;    l_farea(10)           VALUE '0000000000',  "KMK5/22/06 ITR 20592&lt;/P&gt;&lt;P&gt;    l_balance_sheet(1),                        "NEM8/17/06 ITR 25792&lt;/P&gt;&lt;P&gt;    l_string              TYPE tline-tdline.   "NEM8/17/06 ITR 25792&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_hyp_account_1 TYPE tline-tdline,&lt;/P&gt;&lt;P&gt;        l_hyp_account_2 TYPE tline-tdline,&lt;/P&gt;&lt;P&gt;        l_hyp_account_3 TYPE tline-tdline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  reverse_sign = '1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE bilkt xbilk&lt;/P&gt;&lt;P&gt;    FROM ska1&lt;/P&gt;&lt;P&gt;    INTO (l_hyperion_acct,l_balance_sheet)&lt;/P&gt;&lt;P&gt;    WHERE ktopl = c_global_tcoa&lt;/P&gt;&lt;P&gt;      AND   saknr = racct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  balance_sheet = l_balance_sheet.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_string = w_zall_gl-hyper.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SEARCH l_string FOR '-'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = '0'.&lt;/P&gt;&lt;P&gt;    reverse_sign = -1.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    reverse_sign = 1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK w_zall_gl-hyper IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: l_hyp_account_1, l_hyp_account_2, l_hyp_account_3.&lt;/P&gt;&lt;P&gt;  SPLIT w_zall_gl-hyper&lt;/P&gt;&lt;P&gt;    AT ';'&lt;/P&gt;&lt;P&gt;    INTO l_hyp_account_1 l_hyp_account_2 l_hyp_account_3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF l_hyp_account_2 IS INITIAL.      " Only one hyperion account&lt;/P&gt;&lt;P&gt;    hyperion_acct = l_hyp_account_1+0(7).&lt;/P&gt;&lt;P&gt;    l_strl = STRLEN( hyperion_acct ) - 1.&lt;/P&gt;&lt;P&gt;    IF hyperion_acct+l_strl(1) EQ '1'.&lt;/P&gt;&lt;P&gt;      CLEAR sub_account.&lt;/P&gt;&lt;P&gt;      PERFORM repopulate_strategic_segment&lt;/P&gt;&lt;P&gt;        USING rassc prctr&lt;/P&gt;&lt;P&gt;        CHANGING strat_seg.&lt;/P&gt;&lt;P&gt;      zzsareaim = g_hold_sales_type.&lt;/P&gt;&lt;P&gt;      zzsarea = g_hold_sales_area.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.                                " Two or more hyperion accounts&lt;/P&gt;&lt;P&gt;    IF sub_account &amp;gt; ''.&lt;/P&gt;&lt;P&gt;      hyperion_acct = l_hyp_account_2+0(7).&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      hyperion_acct = l_hyp_account_1+0(7).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: w_hyperion.&lt;/P&gt;&lt;P&gt;  w_hyperion-racct           = racct.&lt;/P&gt;&lt;P&gt;  w_hyperion-hyperion_acct   = hyperion_acct.&lt;/P&gt;&lt;P&gt;  w_hyperion-reverse_sign    = reverse_sign.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " derive_hyperion_account&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  derive_sub_account&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine the sub account based on the company ID of the trading&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;partner.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;RASSC    - Company ID of trading partner.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--SUB_ACCT - Sub account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*FORM derive_sub_account USING rassc    TYPE t_faglflext-rassc&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    CHANGING sub_acct TYPE t_faglflext-sub_acct.&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; IF rassc IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR: sub_acct.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   sub_acct  = rassc.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   TRANSLATE sub_acct TO UPPER CASE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*ENDFORM.                    " derive_sub_account&lt;/P&gt;&lt;P&gt;FORM derive_sub_account USING rcomp  TYPE t_t001-rcomp&lt;/P&gt;&lt;P&gt;                              rassc  TYPE t_faglflext-rassc&lt;/P&gt;&lt;P&gt;                CHANGING sub_acct TYPE t_faglflext-sub_acct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF rassc IS INITIAL.&lt;/P&gt;&lt;P&gt;    CLEAR: sub_acct.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    READ TABLE i_t880 INTO w_t880&lt;/P&gt;&lt;P&gt;      WITH KEY rcomp = rassc&lt;/P&gt;&lt;P&gt;               BINARY SEARCH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      sub_acct  = w_t880-name2.&lt;/P&gt;&lt;P&gt;      TRANSLATE sub_acct TO UPPER CASE.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE e060&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WITH w_t001-rcomp.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Company code &amp;amp; not found on table T880&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " derive_sub_account&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  repopulate_strategic_segment&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Derive the strategic segment based on the company ID of the trading&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;partner or the profit center.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;RASSC     - Company ID of trading partner.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;PRCTR     - Profit center.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--STRAT_SEG - Strategic segment.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM repopulate_strategic_segment USING rassc     TYPE t_faglflext-rassc&lt;/P&gt;&lt;P&gt;                                    prctr     TYPE t_faglflext-prctr&lt;/P&gt;&lt;P&gt;                           CHANGING strat_seg TYPE t_faglflext-strat_seg&lt;/P&gt;&lt;P&gt;                           .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lv_segment              TYPE cepc-segment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR:&lt;/P&gt;&lt;P&gt;    strat_seg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Find the valid profit center record.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_cepc INTO w_cepc&lt;/P&gt;&lt;P&gt;    WHERE prctr =  prctr    AND&lt;/P&gt;&lt;P&gt;          datab &amp;lt;= sy-datum AND&lt;/P&gt;&lt;P&gt;          datbi &amp;gt;= sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Pad segment with leading zeros if necessary.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    lv_segment      = w_cepc-segment.&lt;/P&gt;&lt;P&gt;    SHIFT lv_segment RIGHT DELETING TRAILING ' '.&lt;/P&gt;&lt;P&gt;    TRANSLATE lv_segment USING ' 0'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the segment name from FAGL_SEGMT (Master Data for Segments).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT SINGLE *&lt;/P&gt;&lt;P&gt;      FROM fagl_segmt&lt;/P&gt;&lt;P&gt;      WHERE langu   = sy-langu AND&lt;/P&gt;&lt;P&gt;            segment = lv_segment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      strat_seg      = fagl_segmt-name+0(3).&lt;/P&gt;&lt;P&gt;      TRANSLATE strat_seg TO UPPER CASE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "repopulate_strategic_segment&lt;/P&gt;&lt;P&gt;" repopulate_strategic_segment&amp;amp;----&lt;/P&gt;&lt;HR originaltext="------------------------------------" /&gt;&lt;P&gt;"----&lt;/P&gt;&lt;HR originaltext="-----------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  derive_strategic_segment&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Derive the strategic segment based on the company ID of the trading&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;partner or the profit center.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;RASSC     - Company ID of trading partner.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;PRCTR     - Profit center.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--STRAT_SEG - Strategic segment.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM derive_strategic_segment USING rassc     TYPE t_faglflext-rassc&lt;/P&gt;&lt;P&gt;                                    prctr     TYPE t_faglflext-prctr&lt;/P&gt;&lt;P&gt;                           CHANGING strat_seg TYPE t_faglflext-strat_seg&lt;/P&gt;&lt;P&gt;                                    sales_type TYPE t_faglflext-zzsareaim&lt;/P&gt;&lt;P&gt;                                    sales_area TYPE t_faglflext-zzsarea.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lv_segment              TYPE cepc-segment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR:&lt;/P&gt;&lt;P&gt;    strat_seg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Hold values in Sales Type and Sales area before setting to default&lt;/P&gt;&lt;P&gt;*values&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;In case need to use them later&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  g_hold_sales_type = sales_type.&lt;/P&gt;&lt;P&gt;  g_hold_sales_area = sales_area.&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;If the company ID of the trading partner is populated, then set the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;strategic segment to a default value.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;And set Sales Type and Sales area to default values     **NEM 07/13/06&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT rassc IS INITIAL.&lt;/P&gt;&lt;P&gt;    strat_seg   = c_def_strat_seg.&lt;/P&gt;&lt;P&gt;    sales_type  = c_sales_type.&lt;/P&gt;&lt;P&gt;    sales_area  = c_sales_area.&lt;/P&gt;&lt;P&gt;    TRANSLATE strat_seg TO UPPER CASE.&lt;/P&gt;&lt;P&gt;    TRANSLATE sales_type TO UPPER CASE.&lt;/P&gt;&lt;P&gt;    TRANSLATE sales_area TO UPPER CASE.&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;Find the valid profit center record.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_cepc INTO w_cepc&lt;/P&gt;&lt;P&gt;    WHERE prctr =  prctr    AND&lt;/P&gt;&lt;P&gt;          datab &amp;lt;= sy-datum AND&lt;/P&gt;&lt;P&gt;          datbi &amp;gt;= sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Pad segment with leading zeros if necessary.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    lv_segment      = w_cepc-segment.&lt;/P&gt;&lt;P&gt;    SHIFT lv_segment RIGHT DELETING TRAILING ' '.&lt;/P&gt;&lt;P&gt;    TRANSLATE lv_segment USING ' 0'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the segment name from FAGL_SEGMT (Master Data for Segments).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT SINGLE *&lt;/P&gt;&lt;P&gt;      FROM fagl_segmt&lt;/P&gt;&lt;P&gt;      WHERE langu   = sy-langu AND&lt;/P&gt;&lt;P&gt;            segment = lv_segment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      strat_seg      = fagl_segmt-name+0(3).&lt;/P&gt;&lt;P&gt;      TRANSLATE strat_seg TO UPPER CASE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " derive_strategic_segment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_cepc_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get CEPC (Profit Center Master Data Table) data from the database.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_cepc_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT prctr datbi kokrs datab khinr segment&lt;/P&gt;&lt;P&gt;    INTO TABLE i_cepc&lt;/P&gt;&lt;P&gt;    FROM cepc&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN i_faglflext&lt;/P&gt;&lt;P&gt;    WHERE prctr = i_faglflext-prctr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT i_cepc BY prctr datab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_cepc_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  derive_strat_seg_chnl&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Derive the strategic segment channel based on the company ID of the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;trading partner or the profit center area.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;RASSC          - Company ID of trading partner.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;PRCTR          - Profit center.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--STRAT_SEG_CHNL - Strategic segment channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM derive_strat_seg_chnl USING rassc          TYPE t_faglflext-rassc&lt;/P&gt;&lt;P&gt;                                 prctr          TYPE t_faglflext-prctr&lt;/P&gt;&lt;P&gt;                        CHANGING strat_seg_chnl TYPE&lt;/P&gt;&lt;P&gt;                        t_faglflext-strat_seg_chnl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR:&lt;/P&gt;&lt;P&gt;    g_setclass,&lt;/P&gt;&lt;P&gt;    g_subclass,&lt;/P&gt;&lt;P&gt;    g_setname,&lt;/P&gt;&lt;P&gt;    strat_seg_chnl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If the company ID of the trading partner is populated, then set the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;strategic segment to a default value.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT rassc IS INITIAL.&lt;/P&gt;&lt;P&gt;    strat_seg_chnl  = c_def_strat_seg_chnl.&lt;/P&gt;&lt;P&gt;    TRANSLATE strat_seg_chnl TO UPPER CASE.&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 SETNAME = 2*** in setleaf table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_setleaf_data USING c_prctr_group&lt;/P&gt;&lt;P&gt;                                   prctr&lt;/P&gt;&lt;P&gt;                          CHANGING g_subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF g_subrc NE c_no_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM find_setleaf_record CHANGING g_subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT SINGLE *&lt;/P&gt;&lt;P&gt;    FROM setheadert&lt;/P&gt;&lt;P&gt;    WHERE  setclass = g_setclass AND&lt;/P&gt;&lt;P&gt;           subclass = g_subclass AND&lt;/P&gt;&lt;P&gt;           setname  = g_setname  AND&lt;/P&gt;&lt;P&gt;           langu    = sy-langu.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      strat_seg_chnl    = setheadert-descript+0(2).&lt;/P&gt;&lt;P&gt;      TRANSLATE strat_seg_chnl TO UPPER CASE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Find the valid profit center record.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT i_cepc INTO w_cepc&lt;/P&gt;&lt;P&gt;      WHERE prctr =  prctr    AND&lt;/P&gt;&lt;P&gt;            datab &amp;lt;= sy-datum AND&lt;/P&gt;&lt;P&gt;            datbi &amp;gt;= sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the correct SETNODE (Lower-level sets in sets) record.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM get_setnode_data USING c_prctr_group&lt;/P&gt;&lt;P&gt;                                     w_cepc-khinr&lt;/P&gt;&lt;P&gt;                            CHANGING g_subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM find_setnode_record CHANGING g_subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF g_subrc = c_no_record.&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;If an appropriate SETNODE record still has not been found, then&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;keep looking.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF g_subrc = c_wrong_record.&lt;/P&gt;&lt;P&gt;        DO.&lt;/P&gt;&lt;P&gt;          PERFORM get_setnode_data USING c_prctr_group&lt;/P&gt;&lt;P&gt;                                         w_setnode-setname&lt;/P&gt;&lt;P&gt;                                CHANGING g_subrc.&lt;/P&gt;&lt;P&gt;          PERFORM find_setnode_record CHANGING g_subrc.&lt;/P&gt;&lt;P&gt;          IF g_subrc = c_no_record OR&lt;/P&gt;&lt;P&gt;             g_subrc = c_correct_record.&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;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;In the end, there was no SETNODE record to find.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF g_subrc = c_no_record.&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;      SELECT SINGLE *&lt;/P&gt;&lt;P&gt;        FROM setheadert&lt;/P&gt;&lt;P&gt;        WHERE  setclass = g_setclass AND&lt;/P&gt;&lt;P&gt;               subclass = g_subclass AND&lt;/P&gt;&lt;P&gt;               setname  = g_setname  AND&lt;/P&gt;&lt;P&gt;               langu    = sy-langu.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        strat_seg_chnl    = setheadert-descript+0(2).&lt;/P&gt;&lt;P&gt;        TRANSLATE strat_seg_chnl TO UPPER CASE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " derive_strat_seg_chnl&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_setnode_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get SETNODE (Lower-level sets in sets) data from the database.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;SETCLASS   - Set class.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;SUBSETNAME - Subordinate set ID.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--SUBRC      - Return code.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_setnode_data USING setclass   TYPE c&lt;/P&gt;&lt;P&gt;                            subsetname TYPE c&lt;/P&gt;&lt;P&gt;                   CHANGING subrc      TYPE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT setclass subclass setname&lt;/P&gt;&lt;P&gt;    INTO TABLE i_setnode&lt;/P&gt;&lt;P&gt;    FROM setnode&lt;/P&gt;&lt;P&gt;    WHERE setclass   = c_prctr_group AND&lt;/P&gt;&lt;P&gt;          subsetname = subsetname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  subrc  = sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_setnode_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_setleaf_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get SETLEAF (Values in Sets) data from the database.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;SETCLASS   - Set class.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;VALFROM    - Subordinate set ID.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--SUBRC      - Return code.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_setleaf_data USING setclass   TYPE c&lt;/P&gt;&lt;P&gt;                            valfrom    TYPE c&lt;/P&gt;&lt;P&gt;                   CHANGING subrc      TYPE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  subrc = c_correct_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT setclass setname valfrom subclass&lt;/P&gt;&lt;P&gt;    INTO TABLE i_setleaf&lt;/P&gt;&lt;P&gt;    FROM setleaf&lt;/P&gt;&lt;P&gt;    WHERE setclass   = c_prctr_group AND&lt;/P&gt;&lt;P&gt;          valfrom = valfrom AND&lt;/P&gt;&lt;P&gt;          setname GE '2000' AND&lt;/P&gt;&lt;P&gt;          setname LE '2999'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    subrc  = c_no_record.&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;ENDFORM.                    " get_setleaf_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  find_setleaf_record&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Find the appropriate SETLEAF record.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--SUBRC      - Return code.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM find_setleaf_record CHANGING subrc TYPE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  subrc  = c_wrong_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If no records were found during selection, then exit the routine.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  READ TABLE i_setleaf INDEX 1 TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    subrc  = c_no_record.&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 to see if one of the records has a setname in the 2000 series of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;numbers.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_setleaf INTO w_setleaf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    g_setclass = w_setleaf-setclass.&lt;/P&gt;&lt;P&gt;    g_subclass = w_setleaf-subclass.&lt;/P&gt;&lt;P&gt;    g_setname  = w_setleaf-setname.&lt;/P&gt;&lt;P&gt;    subrc  = c_correct_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " find_setleaf_record&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  find_setnode_record&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Find the appropriate SETNODE record.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--SUBRC      - Return code.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM find_setnode_record CHANGING subrc TYPE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  subrc  = c_wrong_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If no records were found during selection, then exit the routine.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  READ TABLE i_setnode INDEX 1 TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    subrc  = c_no_record.&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 to see if one of the records has a setname in the 2000 series of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;numbers.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_setnode INTO w_setnode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF w_setnode-setname+0(1) = c_valid_number.&lt;/P&gt;&lt;P&gt;      g_setclass = w_setnode-setclass.&lt;/P&gt;&lt;P&gt;      g_subclass = w_setnode-subclass.&lt;/P&gt;&lt;P&gt;      g_setname  = w_setnode-setname.&lt;/P&gt;&lt;P&gt;      subrc  = c_correct_record.&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " find_setnode_record&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  split_records_by_period&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Split the i_FAGLFLEXT records by fiscal period.  This is necessary&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;because all (16) fiscal periods are on one record.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM split_records_by_period .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH:&lt;/P&gt;&lt;P&gt;    i_output_detail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_faglflext INTO w_faglflext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;START OF CHANGES BY BAYAPV on 07/07/2007&lt;/STRONG&gt;**********************&lt;/P&gt;&lt;P&gt;*SELECT SINGLE BUKRS&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      SAKNR&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      XOPVW&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      into w_skb1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      from skb1&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;      FOR ALL ENTRIES IN I_FAGLFLEXT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      where bukrs = w_faglflext-rbukrs&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        and SAKNR = w_faglflext-racct.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*IF w_skb1-XOPVW = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*SELECT BUKRS&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      HKONT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      BELNR&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      into table i_bsas&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      from bsas&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      where bukrs = w_SKB1-bukrs&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        and hkont = w_skb1-saknr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;*CONTINUE.&lt;/P&gt;&lt;P&gt;*ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*endif.&lt;/P&gt;&lt;P&gt;**&lt;STRONG&gt;END OF CHANGES BY BAYAPV.&lt;/STRONG&gt;*********************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BEGIN changes by NEM8/23/06&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If a balance sheet account add record to detail records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF w_faglflext-balance_sheet = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM build_i_output_detail_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR:&lt;/P&gt;&lt;P&gt;        g_loop_count.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      DO 16 TIMES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        g_loop_count = g_loop_count + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check to see if this period is to be included in the data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CHECK g_loop_count EQ s_rpmax.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create the field symbol pointer to the correct hslxx field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        g_hslxx  = c_hslxx.&lt;/P&gt;&lt;P&gt;        REPLACE 'xx' WITH g_loop_count+1(2) INTO g_hslxx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ASSIGN (g_hslxx)       TO &amp;lt;fs_hslxx&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF &amp;lt;fs_hslxx&amp;gt; &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          PERFORM build_i_output_detail_record.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " split_records_by_period&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_year_to_date_total&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build year-to-date total based on period selected.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_year_to_date_total CHANGING year_to_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR:&lt;/P&gt;&lt;P&gt;  g_loop_count.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  year_to_date = w_faglflext-hslvt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO 16 TIMES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    g_loop_count = g_loop_count + 1.&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;Check to see if this period is to be included in the data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CHECK g_loop_count IN s_rpmax.&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;Create the field symbol pointer to the correct hslxx field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    g_hslxx  = c_hslxx.&lt;/P&gt;&lt;P&gt;    REPLACE 'xx' WITH g_loop_count+1(2) INTO g_hslxx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ASSIGN (g_hslxx)       TO &amp;lt;fs_hslxx&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    year_to_date = year_to_date + &amp;lt;fs_hslxx&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF g_loop_count EQ s_rpmax.&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;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_year_to_date_total&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_i_output_detail_record&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build i_OUTPUT_DETAIL record.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_i_output_detail_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: w_output_detail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_output_detail-entity          = w_faglflext-entity.&lt;/P&gt;&lt;P&gt;  w_output_detail-strat_seg       = w_faglflext-strat_seg.&lt;/P&gt;&lt;P&gt;  w_output_detail-strat_seg_chnl  = w_faglflext-strat_seg_chnl.&lt;/P&gt;&lt;P&gt;  w_output_detail-all_item_id     = w_faglflext-all_item_id.&lt;/P&gt;&lt;P&gt;  w_output_detail-all_products    = w_faglflext-all_products.&lt;/P&gt;&lt;P&gt;  w_output_detail-zzsareaim       = w_faglflext-zzsareaim.&lt;/P&gt;&lt;P&gt;  w_output_detail-zzsarea         = w_faglflext-zzsarea.&lt;/P&gt;&lt;P&gt;  w_output_detail-all_cust        = w_faglflext-all_cust.&lt;/P&gt;&lt;P&gt;  w_output_detail-all_cust_chnl   = w_faglflext-all_cust_chnl.&lt;/P&gt;&lt;P&gt;  w_output_detail-hyperion_acct   = w_faglflext-hyperion_acct.&lt;/P&gt;&lt;P&gt;  w_output_detail-sub_acct        = w_faglflext-sub_acct.&lt;/P&gt;&lt;P&gt;  w_output_detail-ryear           = w_faglflext-ryear.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_output_detail-fiscal_period   = g_loop_count.&lt;/P&gt;&lt;P&gt;  SHIFT w_output_detail-fiscal_period RIGHT DELETING TRAILING ' '.&lt;/P&gt;&lt;P&gt;  TRANSLATE w_output_detail-fiscal_period USING ' 0'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BEGIN changes by NEM8/23/06&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;use year-to-date total for balance sheet accounts&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF w_faglflext-balance_sheet = 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM build_year_to_date_total CHANGING w_output_detail-amount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*w_output_detail-amount = w_faglflext-hslvt + w_faglflext-hsl01 +&lt;/P&gt;&lt;P&gt;*w_faglflext-hsl02 + w_faglflext-hsl03 + w_faglflext-hsl04 +&lt;/P&gt;&lt;P&gt;*w_faglflext-hsl05 + w_faglflext-hsl06 + w_faglflext-hsl07 +&lt;/P&gt;&lt;P&gt;*w_faglflext-hsl08 + w_faglflext-hsl09 +&lt;/P&gt;&lt;P&gt;*w_faglflext-hsl10 + w_faglflext-hsl11 + w_faglflext-hsl12 +&lt;/P&gt;&lt;P&gt;*w_faglflext-hsl13 + w_faglflext-hsl14 +&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                               w_faglflext-hsl15 + w_faglflext-hsl16.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    w_output_detail-fiscal_period   = s_rpmax.&lt;/P&gt;&lt;P&gt;    SHIFT w_output_detail-fiscal_period RIGHT DELETING TRAILING ' '.&lt;/P&gt;&lt;P&gt;    TRANSLATE w_output_detail-fiscal_period USING ' 0'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    w_output_detail-amount          = ( &amp;lt;fs_hslxx&amp;gt; ).&lt;/P&gt;&lt;P&gt;  ENDIF.&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;END changes by NEM8/23/06&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;BEGIN changes by NEM8/21/06&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;reverse sign if indicated by "reverse" flag&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_output_detail-amount = w_output_detail-amount *&lt;/P&gt;&lt;P&gt;  w_faglflext-reverse_sign.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;END changes by NEM8/21/06&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND w_output_detail    TO i_output_detail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_i_output_detail_record&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  summarize_records_by_period&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sumamrize the detail records for file creation and reporting purposes.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM summarize_records_by_period .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH:&lt;/P&gt;&lt;P&gt;    i_output_summary.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_output_detail INTO w_output_detail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    COLLECT w_output_detail   INTO i_output_summary.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Depending on user input (CB_ZEROS), determine if summary records that&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;net to zero should be displayed.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF cb_zeros = space.&lt;/P&gt;&lt;P&gt;    LOOP AT i_output_summary INTO w_output_summary.&lt;/P&gt;&lt;P&gt;      IF w_output_summary-amount = 0.&lt;/P&gt;&lt;P&gt;        DELETE i_output_summary.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " summarize_records_by_period&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  sort_output_tables&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Sort the output tables (detail and summary) into the required sequence.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM sort_output_tables .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sort output detail table by required fields.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SORT i_faglflexa BY entity&lt;/P&gt;&lt;P&gt;                      strat_seg&lt;/P&gt;&lt;P&gt;                      strat_seg_chnl&lt;/P&gt;&lt;P&gt;                      all_item_id&lt;/P&gt;&lt;P&gt;                      all_products&lt;/P&gt;&lt;P&gt;                      zzsareaim&lt;/P&gt;&lt;P&gt;                      zzsarea&lt;/P&gt;&lt;P&gt;                      all_cust&lt;/P&gt;&lt;P&gt;                      all_cust_chnl&lt;/P&gt;&lt;P&gt;                      hyperion_acct&lt;/P&gt;&lt;P&gt;                      sub_acct&lt;/P&gt;&lt;P&gt;                      ryear&lt;/P&gt;&lt;P&gt;                      fiscal_period.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sort output summary table by required fields.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SORT i_output_summary   BY entity&lt;/P&gt;&lt;P&gt;                             strat_seg&lt;/P&gt;&lt;P&gt;                             strat_seg_chnl&lt;/P&gt;&lt;P&gt;                             all_item_id&lt;/P&gt;&lt;P&gt;                             all_products&lt;/P&gt;&lt;P&gt;                             zzsareaim&lt;/P&gt;&lt;P&gt;                             zzsarea&lt;/P&gt;&lt;P&gt;                             all_cust&lt;/P&gt;&lt;P&gt;                             all_cust_chnl&lt;/P&gt;&lt;P&gt;                             hyperion_acct&lt;/P&gt;&lt;P&gt;                             sub_acct&lt;/P&gt;&lt;P&gt;                             ryear&lt;/P&gt;&lt;P&gt;                             fiscal_period.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FREE:&lt;/P&gt;&lt;P&gt;    i_output_detail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sort_output_tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  create_output_file&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create the file requested by the user.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM create_output_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Do not generate a file if there is no data to output.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  READ TABLE i_output_summary INDEX 1 TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&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;Build the ouput filename.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM build_output_filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open the output file.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM open_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_need_headers = c_selected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_output_summary INTO w_output_summary.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Do not send summarized records where the netted amount is equal to&lt;/P&gt;&lt;P&gt;*zero.&lt;/P&gt;&lt;P&gt;    IF w_output_summary-amount = 0.&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 this is the first summary record to output, then create the&lt;/P&gt;&lt;P&gt;*appropriate&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;file header records.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF g_need_headers = c_selected.&lt;/P&gt;&lt;P&gt;      PERFORM create_file_header_records USING c_monthend_file.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM build_file_detail_records USING c_monthend_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Close the output file.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM close_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_output_file&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  create_file_header_records&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create the file header records.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FILE_TYPE - Type of file to create (local or not).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM create_file_header_records USING file_type TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the first header record.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR: w_header_record.&lt;/P&gt;&lt;P&gt;  w_header_record+0(6)          = c_header_actual_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Output the header record to the appropriate destination.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF file_type = c_local_file.&lt;/P&gt;&lt;P&gt;    w_local_file           = w_header_record.&lt;/P&gt;&lt;P&gt;    APPEND w_local_file    TO i_local_file.&lt;/P&gt;&lt;P&gt;  ELSEIF file_type = c_monthend_file.&lt;/P&gt;&lt;P&gt;    TRANSFER w_header_record      TO p_fileot.&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;Determine the first and last period used to generate the file.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DO 16 TIMES.&lt;/P&gt;&lt;P&gt;    g_loop_count = sy-index.&lt;/P&gt;&lt;P&gt;    PERFORM find_first_and_last_period USING g_loop_count.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the second header record.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR: w_header_record.&lt;/P&gt;&lt;P&gt;  w_header_record&lt;EM&gt;0(2)          = g_first_period&lt;/EM&gt;1(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Output the header record to the appropriate destination.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF file_type = c_local_file.&lt;/P&gt;&lt;P&gt;    w_local_file           = w_header_record.&lt;/P&gt;&lt;P&gt;    APPEND w_local_file    TO i_local_file.&lt;/P&gt;&lt;P&gt;  ELSEIF file_type = c_monthend_file.&lt;/P&gt;&lt;P&gt;    TRANSFER w_header_record      TO p_fileot.&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;Build the third header record.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR: w_header_record.&lt;/P&gt;&lt;P&gt;  w_header_record&lt;EM&gt;0(2)          = g_last_period&lt;/EM&gt;1(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Output the header record to the appropriate destination.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF file_type = c_local_file.&lt;/P&gt;&lt;P&gt;    w_local_file           = w_header_record.&lt;/P&gt;&lt;P&gt;    APPEND w_local_file    TO i_local_file.&lt;/P&gt;&lt;P&gt;  ELSEIF file_type = c_monthend_file.&lt;/P&gt;&lt;P&gt;    TRANSFER w_header_record      TO p_fileot.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: g_need_headers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_file_header_records&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_summary_layout&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the ALV layout structure for the summary view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_summary_layout .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: w_summary_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_summary_layout-zebra                = c_selected.&lt;/P&gt;&lt;P&gt;  w_summary_layout-colwidth_optimize    = c_selected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_summary_layout&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_summary_field_catalog&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the ALV field catalog table for the summary view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_summary_field_catalog .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH:&lt;/P&gt;&lt;P&gt;    i_summary_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Entity.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_summary_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_summary_table&lt;/P&gt;&lt;P&gt;                                            c_summary_field01&lt;/P&gt;&lt;P&gt;                                            text-300&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Strategic segment.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_summary_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_summary_table&lt;/P&gt;&lt;P&gt;                                            c_summary_field02&lt;/P&gt;&lt;P&gt;                                            text-301&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Strategic segment channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_summary_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_summary_table&lt;/P&gt;&lt;P&gt;                                            c_summary_field03&lt;/P&gt;&lt;P&gt;                                            text-302&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All item ID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_summary_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_summary_table&lt;/P&gt;&lt;P&gt;                                            c_summary_field04&lt;/P&gt;&lt;P&gt;                                            text-303&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All products.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_summary_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_summary_table&lt;/P&gt;&lt;P&gt;                                            c_summary_field05&lt;/P&gt;&lt;P&gt;                                            text-304&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales area Imp.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_summary_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_summary_table&lt;/P&gt;&lt;P&gt;                                            c_summary_field06&lt;/P&gt;&lt;P&gt;                                            text-305&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Geographic sales area.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_summary_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_summary_table&lt;/P&gt;&lt;P&gt;                                            c_summary_field07&lt;/P&gt;&lt;P&gt;                                            text-306&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All customers.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_summary_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_summary_table&lt;/P&gt;&lt;P&gt;                                            c_summary_field08&lt;/P&gt;&lt;P&gt;                                            text-307&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All customers channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_summary_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_summary_table&lt;/P&gt;&lt;P&gt;                                            c_summary_field09&lt;/P&gt;&lt;P&gt;                                            text-308&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Hyperion account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_summary_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_summary_table&lt;/P&gt;&lt;P&gt;                                            c_summary_field10&lt;/P&gt;&lt;P&gt;                                            text-309&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            7.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sub account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_summary_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_summary_table&lt;/P&gt;&lt;P&gt;                                            c_summary_field11&lt;/P&gt;&lt;P&gt;                                            text-310&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fiscal year.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_summary_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_summary_table&lt;/P&gt;&lt;P&gt;                                            c_summary_field12&lt;/P&gt;&lt;P&gt;                                            text-311&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fiscal period.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_summary_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_summary_table&lt;/P&gt;&lt;P&gt;                                            c_summary_field13&lt;/P&gt;&lt;P&gt;                                            text-312&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Amount.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_summary_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_summary_table&lt;/P&gt;&lt;P&gt;                                            c_summary_field14&lt;/P&gt;&lt;P&gt;                                            text-313&lt;/P&gt;&lt;P&gt;                                            c_curr&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            31.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_summary_field_catalog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  add_field_to_field_catalog&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add field to the summary field catalog table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FIELDCATTAB - Table of ALV field catalog fields.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;TABLE_NAME  - Name of the internal table contain data.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FIELD_NAME  - Field name within internal table.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;SEL_TEXT    - Column heading text.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;DATATYPE    - Type of field being processed.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;HOTSPOT     - Set field as hotspot.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;LENGTH      - Output length of field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM add_field_to_field_catalog TABLES fieldcattab TYPE&lt;/P&gt;&lt;P&gt;slis_t_fieldcat_alv&lt;/P&gt;&lt;P&gt;                                USING  table_name TYPE c&lt;/P&gt;&lt;P&gt;                                       field_name TYPE c&lt;/P&gt;&lt;P&gt;                                       sel_text   TYPE c&lt;/P&gt;&lt;P&gt;                                       datatype   TYPE c&lt;/P&gt;&lt;P&gt;                                       hotspot    TYPE c&lt;/P&gt;&lt;P&gt;                                       length     TYPE int1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: w_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_fieldcat-tabname           = table_name.&lt;/P&gt;&lt;P&gt;  w_fieldcat-fieldname         = field_name.&lt;/P&gt;&lt;P&gt;  w_fieldcat-seltext_l         = sel_text.&lt;/P&gt;&lt;P&gt;  w_fieldcat-outputlen         = length.&lt;/P&gt;&lt;P&gt;  w_fieldcat-hotspot           = hotspot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND w_fieldcat            TO fieldcattab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " add_field_to_field_catalog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_summary_sort_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the ALV sort table for the summary view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_summary_sort_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH:&lt;/P&gt;&lt;P&gt;    i_summary_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Entity.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_summary_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_summary_field01&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Strategic segment.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_summary_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_summary_field02&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '02'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Strategic segment channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_summary_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_summary_field03&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '03'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All item ID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_summary_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_summary_field04&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '04'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All products.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_summary_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_summary_field05&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '05'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales area Imp.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_summary_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_summary_field06&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '06'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Geographic sales area.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_summary_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_summary_field07&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '07'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All customers.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_summary_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_summary_field08&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '08'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All customers channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_summary_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_summary_field09&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '09'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Hyperion account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_summary_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_summary_field10&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '10'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sub account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_summary_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_summary_field11&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '11'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fiscal year.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_summary_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_summary_field12&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '12'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fiscal period.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_summary_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_summary_field13&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '13'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_summary_sort_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  add_field_to_sort_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add field to the summary sort table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;SORTAB    - Table of ALV sort fields.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FIELDNAME - Name of field for sorting.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;DIRECTION - Direction of sort (ascending or descending).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;POSITION  - Position of field within sort sequence.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM add_field_to_sort_table TABLES sorttab   TYPE slis_t_sortinfo_alv&lt;/P&gt;&lt;P&gt;                             USING  fieldname TYPE c&lt;/P&gt;&lt;P&gt;                                    direction TYPE c&lt;/P&gt;&lt;P&gt;                                    position  TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: w_sorttab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_sorttab-spos           = position.&lt;/P&gt;&lt;P&gt;  w_sorttab-fieldname      = fieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF direction = c_sort_ascending.&lt;/P&gt;&lt;P&gt;    w_sorttab-up           = c_selected.&lt;/P&gt;&lt;P&gt;  ELSEIF direction = c_sort_descending.&lt;/P&gt;&lt;P&gt;    w_sorttab-down         = c_selected.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND w_sorttab         TO sorttab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " add_field_to_sort_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  SUMMARY_SET_STATUS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set the PF status for the summary view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;EXCLTAB - Table of function codes to exclude from status.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM summary_set_status USING excltab TYPE slis_t_extab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lw_excltab        TYPE slis_extab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Turn off the function code for the summary view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  REFRESH:&lt;/P&gt;&lt;P&gt;    excltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lw_excltab-fcode         = c_summary_view.&lt;/P&gt;&lt;P&gt;  APPEND lw_excltab        TO excltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET PF-STATUS c_report_status EXCLUDING excltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SUMMARY_SET_STATUS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  generate_summary_alv_report&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Generate the summary ALV report view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM generate_summary_alv_report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lv_grid_title   TYPE lvc_title.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_program_id      = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lv_grid_title      = text-100.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Summary View&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;Generate the ALV grid display, for the summary data, to present&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to the user.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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_program       = g_program_id&lt;/P&gt;&lt;P&gt;      i_callback_pf_status_set = c_summary_status&lt;/P&gt;&lt;P&gt;      i_callback_user_command  = c_summary_user_comm&lt;/P&gt;&lt;P&gt;      i_grid_title             = lv_grid_title&lt;/P&gt;&lt;P&gt;      is_layout                = w_summary_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat              = i_summary_fieldcat&lt;/P&gt;&lt;P&gt;      it_sort                  = i_summary_sort&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                 = i_output_summary&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      program_error            = 1&lt;/P&gt;&lt;P&gt;      OTHERS                   = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e063&lt;/P&gt;&lt;P&gt;      WITH sy-subrc.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Function REUSE_ALV_GRID_DISPLAY failed on summary view SY-SUBRC = &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " generate_summary_alv_report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  summary_user_comm&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Process user commands on the summary view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  UCOMM    - User command.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  SELFIELD - Structure with information on the selecton field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM summary_user_comm USING ucomm     LIKE sy-ucomm&lt;/P&gt;&lt;P&gt;                             selfield TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine what function code was passed and take appropriate action.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CASE ucomm.&lt;/P&gt;&lt;P&gt;    WHEN c_choose_row.&lt;/P&gt;&lt;P&gt;      PERFORM generate_item_dtl_alv_report USING selfield-tabindex.&lt;/P&gt;&lt;P&gt;    WHEN c_detail_view.&lt;/P&gt;&lt;P&gt;      PERFORM generate_detail_alv_report.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " summary_user_comm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  generate_detail_alv_report&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Generate the detail ALV report view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM generate_detail_alv_report .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lv_grid_title   TYPE lvc_title.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_program_id      = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lv_grid_title      = text-101.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Detail View&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;Create the necessary tables for detail ALV report.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM build_detail_layout.&lt;/P&gt;&lt;P&gt;  PERFORM build_detail_field_catalog.&lt;/P&gt;&lt;P&gt;  PERFORM build_detail_sort_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Generate the ALV grid display, for the detail data, to present&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to the user.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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_program       = g_program_id&lt;/P&gt;&lt;P&gt;      i_callback_pf_status_set = c_detail_status&lt;/P&gt;&lt;P&gt;      i_callback_user_command  = c_detail_user_comm&lt;/P&gt;&lt;P&gt;      i_grid_title             = lv_grid_title&lt;/P&gt;&lt;P&gt;      is_layout                = w_detail_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat              = i_detail_fieldcat&lt;/P&gt;&lt;P&gt;      it_sort                  = i_detail_sort&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                 = i_faglflexa[]   "NEM - detail&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      program_error            = 1&lt;/P&gt;&lt;P&gt;      OTHERS                   = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e064&lt;/P&gt;&lt;P&gt;      WITH sy-subrc.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Function REUSE_ALV_GRID_DISPLAY failed on detail view SY-SUBRC = &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " generate_detail_alv_report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  DETAIL_SET_STATUS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set the PF status for the detail view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;EXCLTAB - Table of function codes to exclude from status.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM detail_set_status USING excltab TYPE slis_t_extab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lw_excltab        TYPE slis_extab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Turn off the function code for the detail view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  REFRESH:&lt;/P&gt;&lt;P&gt;    excltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lw_excltab-fcode         = c_detail_view.&lt;/P&gt;&lt;P&gt;  APPEND lw_excltab        TO excltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET PF-STATUS c_report_status EXCLUDING excltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " DETAIL_SET_STATUS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_detail_layout&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the ALV layout structure for the detail view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_detail_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: w_detail_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_detail_layout-zebra                = c_selected.&lt;/P&gt;&lt;P&gt;  w_detail_layout-colwidth_optimize    = c_selected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_detail_layout&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_detail_field_catalog&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the ALV field catalog table for the detail view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_detail_field_catalog .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH:&lt;/P&gt;&lt;P&gt;    i_detail_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP document number.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field15&lt;/P&gt;&lt;P&gt;                                            text-354&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_selected&lt;/P&gt;&lt;P&gt;                                            10.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP company code.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field16&lt;/P&gt;&lt;P&gt;                                            text-355&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP profit center.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field17&lt;/P&gt;&lt;P&gt;                                            text-356&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP partner profit center.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field18&lt;/P&gt;&lt;P&gt;                                            text-357&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP G/L account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field19&lt;/P&gt;&lt;P&gt;                                            text-358&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP functional area.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field20&lt;/P&gt;&lt;P&gt;                                            text-359&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            16.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP trading partner.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field21&lt;/P&gt;&lt;P&gt;                                            text-362&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP Geo sales area.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field22&lt;/P&gt;&lt;P&gt;                                            text-360&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP G sales area part.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field23&lt;/P&gt;&lt;P&gt;                                            text-361&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP import/export.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field24&lt;/P&gt;&lt;P&gt;                                            text-363&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP product type.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field25&lt;/P&gt;&lt;P&gt;                                            text-364&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP product source.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field26&lt;/P&gt;&lt;P&gt;                                            text-365&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Entity.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field01&lt;/P&gt;&lt;P&gt;                                            text-328&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Strategic segment.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field02&lt;/P&gt;&lt;P&gt;                                            text-329&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Strategic segment channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field03&lt;/P&gt;&lt;P&gt;                                            text-330&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All item ID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field04&lt;/P&gt;&lt;P&gt;                                            text-331&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All products.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field05&lt;/P&gt;&lt;P&gt;                                            text-332&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales area Imp.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field06&lt;/P&gt;&lt;P&gt;                                            text-333&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Geographic sales area.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field07&lt;/P&gt;&lt;P&gt;                                            text-334&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All customers.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field08&lt;/P&gt;&lt;P&gt;                                            text-335&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All customers channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field09&lt;/P&gt;&lt;P&gt;                                            text-336&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Hyperion account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field10&lt;/P&gt;&lt;P&gt;                                            text-337&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            7.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sub account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field11&lt;/P&gt;&lt;P&gt;                                            text-338&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fiscal year.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field12&lt;/P&gt;&lt;P&gt;                                            text-339&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fiscal period.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field13&lt;/P&gt;&lt;P&gt;                                            text-340&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Amount.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_detail_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_detail_table&lt;/P&gt;&lt;P&gt;                                            c_detail_field14&lt;/P&gt;&lt;P&gt;                                            text-341&lt;/P&gt;&lt;P&gt;                                            c_curr&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            31.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_detail_field_catalog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_detail_sort_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the ALV sort table for the detail view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_detail_sort_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH:&lt;/P&gt;&lt;P&gt;    i_detail_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Entity.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field01&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Strategic segment.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field02&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '02'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Strategic segment channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field03&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '03'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All item ID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field04&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '04'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All products.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field05&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '05'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales area Imp.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field06&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '06'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Geographic sales area.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field07&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '07'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All customers.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field08&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '08'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All customers channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field09&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '09'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Hyperion account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field10&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '10'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sub account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field11&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '11'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fiscal year.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field12&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '12'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fiscal period.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field13&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '13'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_detail_sort_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  detail_user_comm&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Process user commands on the detail view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  UCOMM    - User command.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  SELFIELD - Structure with information on the selecton field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM detail_user_comm USING ucomm     LIKE sy-ucomm&lt;/P&gt;&lt;P&gt;                             selfield TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine what function code was passed and take appropriate action.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CASE ucomm.&lt;/P&gt;&lt;P&gt;    WHEN c_hotspot_selected.&lt;/P&gt;&lt;P&gt;      PERFORM process_hotspot USING selfield.&lt;/P&gt;&lt;P&gt;    WHEN c_summary_view.&lt;/P&gt;&lt;P&gt;      PERFORM generate_summary_alv_report.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " detail_user_comm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  generate_item_dtl_alv_report&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Generate the item detail ALV report.  This will allow the user to only&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;see the detail that makes up a particular row within the summary view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  TABINDEX - Index of summary record being processed.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM generate_item_dtl_alv_report USING tabindex TYPE&lt;/P&gt;&lt;P&gt;slis_selfield-tabindex.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lv_grid_title   TYPE lvc_title.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_program_id      = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lv_grid_title      = text-102.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Item Detail View&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;Build output item detail records for associated summary view line.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM build_output_item_dt_entries USING tabindex.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create the necessary tables for item detail ALV report.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM build_item_detail_layout.&lt;/P&gt;&lt;P&gt;  PERFORM build_item_detail_field_cat.&lt;/P&gt;&lt;P&gt;  PERFORM build_item_detail_sort_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Generate the ALV grid display, for the item detail data, to present&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to the user.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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_program       = g_program_id&lt;/P&gt;&lt;P&gt;      i_callback_pf_status_set = c_item_detail_status&lt;/P&gt;&lt;P&gt;      i_callback_user_command  = c_dtl_item_user_comm&lt;/P&gt;&lt;P&gt;      i_grid_title             = lv_grid_title&lt;/P&gt;&lt;P&gt;      is_layout                = w_item_detail_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat              = i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;      it_sort                  = i_item_detail_sort&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                 = i_faglflexa_item&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      program_error            = 1&lt;/P&gt;&lt;P&gt;      OTHERS                   = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e065&lt;/P&gt;&lt;P&gt;      WITH sy-subrc.&lt;/P&gt;&lt;P&gt;*Function REUSE_ALV_GRID_DISPLAY failed on item detail view SY-SUBRC = &amp;amp;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " generate_item_dtl_alv_report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_ITEM_detail_layout&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the ALV layout structure for the item detail view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_item_detail_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: w_item_detail_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_item_detail_layout-zebra                = c_selected.&lt;/P&gt;&lt;P&gt;  w_item_detail_layout-colwidth_optimize    = c_selected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_item_detail_layout&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_item_detail_field_cat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the ALV field catalog table for the item detail view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_item_detail_field_cat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH:&lt;/P&gt;&lt;P&gt;    i_item_dtl_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP document number.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field15&lt;/P&gt;&lt;P&gt;                                            text-342&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_selected&lt;/P&gt;&lt;P&gt;                                            10.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP company code.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field16&lt;/P&gt;&lt;P&gt;                                            text-343&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP profit center.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field17&lt;/P&gt;&lt;P&gt;                                            text-344&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP partner profit center.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field18&lt;/P&gt;&lt;P&gt;                                            text-345&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP G/L account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field19&lt;/P&gt;&lt;P&gt;                                            text-346&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP functional area.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field20&lt;/P&gt;&lt;P&gt;                                            text-347&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            16.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP trading partner.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field21&lt;/P&gt;&lt;P&gt;                                            text-350&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP Geo sales area.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field22&lt;/P&gt;&lt;P&gt;                                            text-348&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP G sales area part.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field23&lt;/P&gt;&lt;P&gt;                                            text-349&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP import/export.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field24&lt;/P&gt;&lt;P&gt;                                            text-351&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP product type.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field25&lt;/P&gt;&lt;P&gt;                                            text-352&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP product source.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field26&lt;/P&gt;&lt;P&gt;                                            text-353&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Entity.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field01&lt;/P&gt;&lt;P&gt;                                            text-314&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Strategic segment.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field02&lt;/P&gt;&lt;P&gt;                                            text-315&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Strategic segment channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field03&lt;/P&gt;&lt;P&gt;                                            text-316&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All item ID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field04&lt;/P&gt;&lt;P&gt;                                            text-317&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All products.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field05&lt;/P&gt;&lt;P&gt;                                            text-318&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales area Imp.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field06&lt;/P&gt;&lt;P&gt;                                            text-319&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Geographic sales area.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field07&lt;/P&gt;&lt;P&gt;                                            text-320&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All customers.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field08&lt;/P&gt;&lt;P&gt;                                            text-321&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All customers channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field09&lt;/P&gt;&lt;P&gt;                                            text-322&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Hyperion account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field10&lt;/P&gt;&lt;P&gt;                                            text-323&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            7.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sub account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field11&lt;/P&gt;&lt;P&gt;                                            text-324&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fiscal year.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field12&lt;/P&gt;&lt;P&gt;                                            text-325&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fiscal period.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field13&lt;/P&gt;&lt;P&gt;                                            text-326&lt;/P&gt;&lt;P&gt;                                            c_char&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Amount.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_field_catalog TABLES i_item_dtl_fieldcat&lt;/P&gt;&lt;P&gt;                                     USING  c_item_detail_table&lt;/P&gt;&lt;P&gt;                                            c_item_detail_field14&lt;/P&gt;&lt;P&gt;                                            text-327&lt;/P&gt;&lt;P&gt;                                            c_curr&lt;/P&gt;&lt;P&gt;                                            c_not_selected&lt;/P&gt;&lt;P&gt;                                            31.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_item_detail_field_cat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_item_detail_sort_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the ALV sort table for the item detail view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_item_detail_sort_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH:&lt;/P&gt;&lt;P&gt;    i_detail_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Entity.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field01&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Strategic segment.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field02&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '02'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Strategic segment channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field03&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '03'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All item ID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field04&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '04'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All products.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field05&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '05'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales area Imp.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field06&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '06'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Geographic sales area.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field07&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '07'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All customers.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field08&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '08'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;All customers channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field09&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '09'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Hyperion account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field10&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '10'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sub account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field11&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '11'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fiscal year.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field12&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '12'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fiscal period.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM add_field_to_sort_table TABLES i_detail_sort&lt;/P&gt;&lt;P&gt;                                  USING  c_detail_field13&lt;/P&gt;&lt;P&gt;                                         c_sort_ascending&lt;/P&gt;&lt;P&gt;                                         '13'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_item_detail_sort_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  ITEM_DETAIL_SET_STATUS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set the PF status for the item detail view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;EXCLTAB - Table of function codes to exclude from status.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM item_detail_set_status USING excltab TYPE slis_t_extab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lw_excltab        TYPE slis_extab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Turn off the function codes for the summary and detail views.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  REFRESH:&lt;/P&gt;&lt;P&gt;    excltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lw_excltab-fcode         = c_summary_view.&lt;/P&gt;&lt;P&gt;  APPEND lw_excltab        TO excltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lw_excltab-fcode         = c_detail_view.&lt;/P&gt;&lt;P&gt;  APPEND lw_excltab        TO excltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET PF-STATUS c_report_status EXCLUDING excltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " ITEM_DETAIL_SET_STATUS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_output_item_dt_entries&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build i_OUTPUT_ITEM_DETAIL table entries.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;TABINDEX - Index of summary record being processed.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_output_item_dt_entries USING tabindex TYPE&lt;/P&gt;&lt;P&gt;slis_selfield-tabindex.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH:&lt;/P&gt;&lt;P&gt;    i_faglflexa_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE i_output_summary INTO w_output_summary INDEX tabindex.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ITR 26888&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Retrieve all of the associated detail records.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_faglflexa INTO w_faglflexa&lt;/P&gt;&lt;P&gt;    WHERE entity         = w_output_summary-entity         AND&lt;/P&gt;&lt;P&gt;          strat_seg      = w_output_summary-strat_seg      AND&lt;/P&gt;&lt;P&gt;          strat_seg_chnl = w_output_summary-strat_seg_chnl AND&lt;/P&gt;&lt;P&gt;          all_item_id    = w_output_summary-all_item_id    AND&lt;/P&gt;&lt;P&gt;          all_products   = w_output_summary-all_products   AND&lt;/P&gt;&lt;P&gt;          zzsareaim      = w_output_summary-zzsareaim      AND&lt;/P&gt;&lt;P&gt;          zzsarea        = w_output_summary-zzsarea        AND&lt;/P&gt;&lt;P&gt;          all_cust       = w_output_summary-all_cust       AND&lt;/P&gt;&lt;P&gt;          all_cust_chnl  = w_output_summary-all_cust_chnl  AND&lt;/P&gt;&lt;P&gt;          hyperion_acct  = w_output_summary-hyperion_acct  AND&lt;/P&gt;&lt;P&gt;          sub_acct       = w_output_summary-sub_acct       AND&lt;/P&gt;&lt;P&gt;          ryear          = w_output_summary-ryear          AND&lt;/P&gt;&lt;P&gt;          fiscal_period  = w_output_summary-fiscal_period.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR:&lt;/P&gt;&lt;P&gt;      w_faglflexa_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    w_faglflexa_item           = w_faglflexa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND w_faglflexa_item   TO i_faglflexa_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_output_item_dt_entries&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_output_filename&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the output filename for the month-end run.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_output_filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the entity for the filename.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  READ TABLE i_output_summary INTO w_output_summary INDEX 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    REPLACE 'uuu' WITH w_output_summary-entity INTO p_fileot.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Begin changes by NEM 07/1/06&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Put the period into filename.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  REPLACE 'mm' WITH s_rpmax INTO p_fileot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Put the year into filename.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  REPLACE 'yy' WITH p_ryear INTO p_fileot.&lt;/P&gt;&lt;P&gt;&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;Get the period for the filename.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; READ TABLE i_tvarvc INTO w_tvarvc&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WITH KEY c_tvarvc_period.&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; IF sy-subrc = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   REPLACE 'mm' WITH w_tvarvc-low+0(2) INTO p_fileot.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Get the year for the filename.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; READ TABLE i_tvarvc INTO w_tvarvc&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WITH KEY c_tvarvc_year.&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; IF sy-subrc = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   REPLACE 'yy' WITH w_tvarvc-low+2(2) INTO p_fileot.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;End changes by NEM 07/1/06&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_output_filename&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  find_first_and_last_period&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine the first and last periods used to generate the output file.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;PERIOD - Number of period to test.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM find_first_and_last_period USING period TYPE n.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF period EQ s_rpmax.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set the first period used to generate the file.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF period &amp;lt; g_first_period OR&lt;/P&gt;&lt;P&gt;       g_first_period IS INITIAL.&lt;/P&gt;&lt;P&gt;      g_first_period = period.&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;Set the last period used to generate the file.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF period &amp;gt; g_last_period OR&lt;/P&gt;&lt;P&gt;       g_last_period IS INITIAL.&lt;/P&gt;&lt;P&gt;      g_last_period = period.&lt;/P&gt;&lt;P&gt;    ENDIF.&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;ENDFORM.                    " find_first_and_last_period&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_file_detail_records&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create the file detail records.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FILE_TYPE - Type of file to create (local or not).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_file_detail_records USING file_type TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: w_file_detail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_file_detail-entity         = w_output_summary-entity.&lt;/P&gt;&lt;P&gt;  w_file_detail-strat_seg      = w_output_summary-strat_seg.&lt;/P&gt;&lt;P&gt;  w_file_detail-strat_seg_chnl = w_output_summary-strat_seg_chnl.&lt;/P&gt;&lt;P&gt;  w_file_detail-all_item_id    = w_output_summary-all_item_id.&lt;/P&gt;&lt;P&gt;  w_file_detail-all_products   = w_output_summary-all_products.&lt;/P&gt;&lt;P&gt;  w_file_detail-zzsareaim      = w_output_summary-zzsareaim.&lt;/P&gt;&lt;P&gt;  w_file_detail-zzsarea        = w_output_summary-zzsarea.&lt;/P&gt;&lt;P&gt;  w_file_detail-all_cust       = w_output_summary-all_cust.&lt;/P&gt;&lt;P&gt;  w_file_detail-all_cust_chnl  = w_output_summary-all_cust_chnl.&lt;/P&gt;&lt;P&gt;  w_file_detail-period_char1   = c_period.&lt;/P&gt;&lt;P&gt;  w_file_detail-inp            = c_inp.&lt;/P&gt;&lt;P&gt;  w_file_detail-comma_char     = c_comma.&lt;/P&gt;&lt;P&gt;  w_file_detail-hyperion_acct  = w_output_summary-hyperion_acct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM format_amount USING w_output_summary-amount&lt;/P&gt;&lt;P&gt;                     CHANGING g_amount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT w_output_summary-sub_acct IS INITIAL.&lt;/P&gt;&lt;P&gt;    CONCATENATE c_period&lt;/P&gt;&lt;P&gt;                w_output_summary-sub_acct&lt;/P&gt;&lt;P&gt;                c_comma&lt;/P&gt;&lt;P&gt;                g_amount&lt;/P&gt;&lt;P&gt;      INTO w_file_detail-rassc_area.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    CONCATENATE c_comma&lt;/P&gt;&lt;P&gt;                g_amount&lt;/P&gt;&lt;P&gt;      INTO w_file_detail-rassc_area.&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;Output the detail record to the appropriate destination.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF file_type = c_local_file.&lt;/P&gt;&lt;P&gt;    w_local_file           = w_file_detail.&lt;/P&gt;&lt;P&gt;    APPEND w_local_file    TO i_local_file.&lt;/P&gt;&lt;P&gt;  ELSEIF file_type = c_monthend_file.&lt;/P&gt;&lt;P&gt;    TRANSFER w_file_detail        TO p_fileot.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_file_detail_records&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  format_amount&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Format the amount field for the output file (-ZZZZZZZZ9.990000000).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;AMOUNT_IN  - Unformatted amount.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--AMOUNT_OUT - Formatted amount.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM format_amount USING amount_in  TYPE faglflext-hsl01&lt;/P&gt;&lt;P&gt;                CHANGING amount_out TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lv_sign(1).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR:&lt;/P&gt;&lt;P&gt;    amount_out,&lt;/P&gt;&lt;P&gt;    lv_sign.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_packed_amount = amount_in.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If the amount is negative, remove the trailing sign.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF g_packed_amount &amp;lt; 0.&lt;/P&gt;&lt;P&gt;    g_packed_amount = g_packed_amount * -1.&lt;/P&gt;&lt;P&gt;    lv_sign  = c_minus_sign.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  amount_out = g_packed_amount.&lt;/P&gt;&lt;P&gt;  SHIFT amount_out LEFT DELETING LEADING ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If the amount is negative, add a leading sign.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF lv_sign = c_minus_sign.&lt;/P&gt;&lt;P&gt;    CONCATENATE c_minus_sign&lt;/P&gt;&lt;P&gt;                amount_out&lt;/P&gt;&lt;P&gt;      INTO amount_out.&lt;/P&gt;&lt;P&gt;    CONDENSE amount_out NO-GAPS.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " format_amount&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  create_pc_file&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create a local file on the user's PC.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM create_pc_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lv_lfile          TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_need_headers = c_selected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_output_summary INTO w_output_summary.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Do not send summarized records where the netted amount is equal to&lt;/P&gt;&lt;P&gt;*zero.&lt;/P&gt;&lt;P&gt;    IF w_output_summary-amount = 0.&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 this is the first summary record to output, then create the&lt;/P&gt;&lt;P&gt;*appropriate&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;file header records.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF g_need_headers = c_selected.&lt;/P&gt;&lt;P&gt;      PERFORM create_file_header_records USING c_local_file.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM build_file_detail_records USING c_local_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Download the file to the user's PC.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  lv_lfile    = p_lfile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename                = lv_lfile&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab                = i_local_file&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      file_write_error        = 1&lt;/P&gt;&lt;P&gt;      no_batch                = 2&lt;/P&gt;&lt;P&gt;      gui_refuse_filetransfer = 3&lt;/P&gt;&lt;P&gt;      invalid_type            = 4&lt;/P&gt;&lt;P&gt;      no_authority            = 5&lt;/P&gt;&lt;P&gt;      unknown_error           = 6&lt;/P&gt;&lt;P&gt;      header_not_allowed      = 7&lt;/P&gt;&lt;P&gt;      separator_not_allowed   = 8&lt;/P&gt;&lt;P&gt;      filesize_not_allowed    = 9&lt;/P&gt;&lt;P&gt;      header_too_long         = 10&lt;/P&gt;&lt;P&gt;      dp_error_create         = 11&lt;/P&gt;&lt;P&gt;      dp_error_send           = 12&lt;/P&gt;&lt;P&gt;      dp_error_write          = 13&lt;/P&gt;&lt;P&gt;      unknown_dp_error        = 14&lt;/P&gt;&lt;P&gt;      access_denied           = 15&lt;/P&gt;&lt;P&gt;      dp_out_of_memory        = 16&lt;/P&gt;&lt;P&gt;      disk_full               = 17&lt;/P&gt;&lt;P&gt;      dp_timeout              = 18&lt;/P&gt;&lt;P&gt;      file_not_found          = 19&lt;/P&gt;&lt;P&gt;      dataprovider_exception  = 20&lt;/P&gt;&lt;P&gt;      control_flush_error     = 21&lt;/P&gt;&lt;P&gt;      OTHERS                  = 22.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e070&lt;/P&gt;&lt;P&gt;      WITH sy-subrc.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Function module GUI_DOWNLOAD failed.  SY-SUBRC = &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_pc_file&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_help_with_local_file&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get help with the local filename.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_help_with_local_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      program_name  = sy-repid&lt;/P&gt;&lt;P&gt;      dynpro_number = sy-dynnr&lt;/P&gt;&lt;P&gt;      field_name    = ' '&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      file_name     = g_filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_lfile   =  g_filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_help_with_local_file&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_faglflexa_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get FAGLFLEXA (General Ledger: Actual Line Items) data from the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;database.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_faglflexa_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Use the fiscal year for the selection, if it was populated by the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;user.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT p_ryear IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT ryear docnr rldnr rvers racct rbukrs prctr rfarea kokrs&lt;/P&gt;&lt;P&gt;          segment pprctr zzsarea zzsareapa zzsareaim rassc hsl zzprodsrc&lt;/P&gt;&lt;P&gt;           zzprodtyp poper&lt;/P&gt;&lt;P&gt;      INTO TABLE i_faglflexa&lt;/P&gt;&lt;P&gt;      FROM faglflexa&lt;/P&gt;&lt;P&gt;      WHERE ryear  =  p_ryear        AND&lt;/P&gt;&lt;P&gt;            rldnr = c_run_ledger     AND&lt;/P&gt;&lt;P&gt;            rvers  = c_run_version   AND&lt;/P&gt;&lt;P&gt;            rbukrs IN r_bukrs       AND&lt;/P&gt;&lt;P&gt;            racct  IN r_saknr       AND&lt;/P&gt;&lt;P&gt;            prctr  IN s_prctr        AND&lt;/P&gt;&lt;P&gt;            rfarea IN s_rfarea."       AND&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           poper  EQ s_rpmax.                "ADDED   ON 12/05/2006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*ITR 26158&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    SELECT ryear docnr rldnr rvers racct rbukrs prctr rfarea kokrs&lt;/P&gt;&lt;P&gt;           segment pprctr zzsarea zzsareapa zzsareaim rassc hsl&lt;/P&gt;&lt;P&gt;           zzprodsrc&lt;/P&gt;&lt;P&gt;           zzprodtyp poper&lt;/P&gt;&lt;P&gt;    INTO TABLE i_faglflexa&lt;/P&gt;&lt;P&gt;    FROM faglflexa&lt;/P&gt;&lt;P&gt;    WHERE   rldnr = c_run_ledger     AND&lt;/P&gt;&lt;P&gt;            rvers  = c_run_version   AND&lt;/P&gt;&lt;P&gt;            rbukrs IN r_bukrs       AND&lt;/P&gt;&lt;P&gt;            racct  IN r_saknr       AND&lt;/P&gt;&lt;P&gt;            prctr  IN s_prctr        AND&lt;/P&gt;&lt;P&gt;            rfarea IN s_rfarea.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           poper  EQ s_rpmax.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*End of change ITR # 33616 by DAKSHINM&lt;/P&gt;&lt;P&gt;*Created a Index Z1 and rearranged the select statment accordingly&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;START OF CHANGES BY BAYAPV ITR 49257 ON 07/04/2007&lt;/STRONG&gt;*************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT i_faglflexa[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT bukrs&lt;/P&gt;&lt;P&gt;           saknr&lt;/P&gt;&lt;P&gt;           xopvw&lt;/P&gt;&lt;P&gt;           INTO TABLE i_skb1&lt;/P&gt;&lt;P&gt;           FROM skb1&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN i_faglflexa&lt;/P&gt;&lt;P&gt;           WHERE&lt;/P&gt;&lt;P&gt;           bukrs EQ i_faglflexa-rbukrs&lt;/P&gt;&lt;P&gt;           AND saknr = i_faglflexa-racct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT i_skb1[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      SELECT bukrs&lt;/P&gt;&lt;P&gt;             hkont&lt;/P&gt;&lt;P&gt;             belnr&lt;/P&gt;&lt;P&gt;             INTO TABLE i_bsas&lt;/P&gt;&lt;P&gt;             FROM bsas&lt;/P&gt;&lt;P&gt;             FOR ALL ENTRIES IN i_skb1&lt;/P&gt;&lt;P&gt;             WHERE&lt;/P&gt;&lt;P&gt;             bukrs = i_skb1-bukrs AND&lt;/P&gt;&lt;P&gt;               hkont = i_skb1-saknr.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LOOP AT i_bsas INTO w_bsas.&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;   READ TABLE i_skb1 INTO w_skb1 WITH KEY&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             saknr = w_bsas-hkont&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             xopvw = 'X'.&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;   IF sy-subrc EQ 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     DELETE i_faglflexa WHERE docnr = w_bsas-belnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;END OF CHANGES BY BAYAPV ITR 49257 on 07/04/2007&lt;/STRONG&gt;****************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_faglflexa_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  derive_add_fields_faglflexa&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Derive additional fields needed for the I_FAGLFLEXA.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM derive_add_fields_faglflexa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_faglflexa INTO w_faglflexa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;START OF CHANGES BY loganatk ITR 49257 ON 07/13/2007&lt;/STRONG&gt;*************************&lt;/P&gt;&lt;P&gt;    CLEAR w_bsas.&lt;/P&gt;&lt;P&gt;    CLEAR w_skb1.&lt;/P&gt;&lt;P&gt;    READ TABLE i_bsas INTO w_bsas WITH KEY&lt;/P&gt;&lt;P&gt;                              belnr = w_faglflexa-docnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      READ TABLE i_skb1 INTO w_skb1 WITH KEY&lt;/P&gt;&lt;P&gt;                                saknr = w_faglflexa-racct&lt;/P&gt;&lt;P&gt;                                xopvw = 'X'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        DELETE i_faglflexa WHERE docnr = w_bsas-belnr&lt;/P&gt;&lt;P&gt;              AND racct = w_bsas-hkont.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     from w_faglflexa.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;      ENDIF.&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;Set the fiscal period.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    w_faglflexa-fiscal_period   = w_faglflexa-poper.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get necessary company code data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE i_t001 INTO w_t001&lt;/P&gt;&lt;P&gt;      WITH KEY bukrs = w_faglflexa-rbukrs&lt;/P&gt;&lt;P&gt;               BINARY SEARCH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e059&lt;/P&gt;&lt;P&gt;        WITH w_faglflexa-rbukrs.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Company code &amp;amp; not found on table T001&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;Determine the entity.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM derive_entity USING w_t001-rcomp&lt;/P&gt;&lt;P&gt;                       CHANGING w_faglflexa-entity.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine the strategic segment.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM derive_strategic_segment USING w_faglflexa-rassc&lt;/P&gt;&lt;P&gt;                                           w_faglflexa-prctr&lt;/P&gt;&lt;P&gt;                                  CHANGING w_faglflexa-strat_seg&lt;/P&gt;&lt;P&gt;                                           w_faglflexa-zzsareaim&lt;/P&gt;&lt;P&gt;                                           w_faglflexa-zzsarea.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine the strategic segment channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM derive_strat_seg_chnl USING w_faglflexa-rassc&lt;/P&gt;&lt;P&gt;                                        w_faglflexa-prctr&lt;/P&gt;&lt;P&gt;                               CHANGING w_faglflexa-strat_seg_chnl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine the all item ID and all products.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM derive_all_item_id USING w_t001-waers&lt;/P&gt;&lt;P&gt;                            CHANGING w_faglflexa-all_item_id&lt;/P&gt;&lt;P&gt;                                     w_faglflexa-all_products.&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;Determine the all customers and all customers channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM derive_all_customers_fields USING w_faglflexa-strat_seg&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*w_faglflexa-strat_seg_chnl&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    CHANGING w_faglflexa-all_cust&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*w_faglflexa-all_cust_chnl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine the sub account using the company ID of the trading partner.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM derive_sub_account USING w_t001-rcomp&lt;/P&gt;&lt;P&gt;                                     w_faglflexa-rassc&lt;/P&gt;&lt;P&gt;                                     "NEM6/27/06 -ITR:21977&lt;/P&gt;&lt;P&gt;                       CHANGING w_faglflexa-sub_acct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine the Hyperion account number from G/L account long text.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM derive_hyperion_account USING w_faglflexa-racct&lt;/P&gt;&lt;P&gt;                                          w_faglflexa-rfarea&lt;/P&gt;&lt;P&gt;                                          "KMK5/22/06 -ITR:20592&lt;/P&gt;&lt;P&gt;                                          w_faglflexa-sub_acct&lt;/P&gt;&lt;P&gt;                                          w_faglflexa-rassc&lt;/P&gt;&lt;P&gt;                                          w_faglflexa-prctr&lt;/P&gt;&lt;P&gt;                   CHANGING w_faglflexa-hyperion_acct&lt;/P&gt;&lt;P&gt;                            w_faglflexa-reverse_sign "NEM8/21/06 ITR: 24286&lt;/P&gt;&lt;P&gt;                            w_faglflexa-balance_sheet "NEM8/21/06 ITR: 24286&lt;/P&gt;&lt;P&gt;                            w_faglflexa-zzsarea&lt;/P&gt;&lt;P&gt;                            w_faglflexa-zzsareaim&lt;/P&gt;&lt;P&gt;                            w_faglflexa-strat_seg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine the all customers and all customers channel.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM derive_all_customers_fields USING w_faglflexa-strat_seg&lt;/P&gt;&lt;P&gt;                                              w_faglflexa-strat_seg_chnl&lt;/P&gt;&lt;P&gt;                                     CHANGING w_faglflexa-all_cust&lt;/P&gt;&lt;P&gt;                                              w_faglflexa-all_cust_chnl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Remove leading zeros from SAP profit center.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM remove_leading_zeros USING w_faglflexa-prctr&lt;/P&gt;&lt;P&gt;                              CHANGING w_faglflexa-prctr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Remove leading zeros from SAP partner profit center.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM remove_leading_zeros USING w_faglflexa-pprctr&lt;/P&gt;&lt;P&gt;                              CHANGING w_faglflexa-pprctr.&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;Remove leading zeros from SAP G/L account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM remove_leading_zeros USING w_faglflexa-racct&lt;/P&gt;&lt;P&gt;                              CHANGING w_faglflexa-racct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Update i_FAGLFLEXA with the newly derive fields.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MODIFY i_faglflexa FROM w_faglflexa&lt;/P&gt;&lt;P&gt;      TRANSPORTING prctr&lt;/P&gt;&lt;P&gt;                   pprctr&lt;/P&gt;&lt;P&gt;                   racct&lt;/P&gt;&lt;P&gt;                   entity&lt;/P&gt;&lt;P&gt;                   strat_seg&lt;/P&gt;&lt;P&gt;                   strat_seg_chnl&lt;/P&gt;&lt;P&gt;                   all_item_id&lt;/P&gt;&lt;P&gt;                   all_products&lt;/P&gt;&lt;P&gt;                   all_cust&lt;/P&gt;&lt;P&gt;                   all_cust_chnl&lt;/P&gt;&lt;P&gt;                   hyperion_acct&lt;/P&gt;&lt;P&gt;                   sub_acct&lt;/P&gt;&lt;P&gt;                   fiscal_period&lt;/P&gt;&lt;P&gt;                   zzsarea&lt;/P&gt;&lt;P&gt;                   zzsareaim&lt;/P&gt;&lt;P&gt;                   reverse_sign     "NEM8/21/06 ITR: 24286&lt;/P&gt;&lt;P&gt;                   balance_sheet.   "NEM8/21/06 ITR: 24286&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK s_rhype IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;  SORT s_rhype BY low.&lt;/P&gt;&lt;P&gt;  LOOP AT i_faglflexa INTO w_faglflexa.&lt;/P&gt;&lt;P&gt;    READ TABLE s_rhype WITH KEY low = w_faglflexa-hyperion_acct.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      CLEAR w_faglflexa-hyperion_acct.&lt;/P&gt;&lt;P&gt;      MODIFY i_faglflexa FROM w_faglflexa.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  DELETE i_faglflexa WHERE hyperion_acct IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " derive_add_fields_faglflexa&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_hotspot&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Process hotspot selected by the user.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  SELFIELD - Structure with information on the selecton field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_hotspot USING selfield TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Exit this routine if the user has selected an invalid hotspot.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF selfield-value IS 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The document number is currently the only hotspot field on the report.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF selfield-sel_tab_field = c_detail_docnr.&lt;/P&gt;&lt;P&gt;    PERFORM call_transaction_fb03 USING c_detail_table&lt;/P&gt;&lt;P&gt;                                        selfield-value&lt;/P&gt;&lt;P&gt;                                        selfield-tabindex.&lt;/P&gt;&lt;P&gt;  ELSEIF selfield-sel_tab_field = c_detail_item_docnr.&lt;/P&gt;&lt;P&gt;    PERFORM call_transaction_fb03 USING c_item_detail_table&lt;/P&gt;&lt;P&gt;                                        selfield-value&lt;/P&gt;&lt;P&gt;                                        selfield-tabindex.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " process_hotspot&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  call_transaction_fb03&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;TABLE    - Name of table to read to get the required data.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;VALUE    - Document number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;TABINDEX - Index of record within table to retrieve.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM call_transaction_fb03  USING table    TYPE slis_tabname&lt;/P&gt;&lt;P&gt;                                  value    TYPE slis_selfield-value&lt;/P&gt;&lt;P&gt;                                  tabindex TYPE slis_selfield-tabindex.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF table = c_detail_table.&lt;/P&gt;&lt;P&gt;    READ TABLE i_faglflexa      INTO w_faglflexa INDEX tabindex.&lt;/P&gt;&lt;P&gt;  ELSEIF table = c_item_detail_table.&lt;/P&gt;&lt;P&gt;    READ TABLE i_faglflexa_item INTO w_faglflexa_item INDEX tabindex.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e075&lt;/P&gt;&lt;P&gt;      WITH tabindex.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Invalid pointer to requested detail table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;Set the required parameter IDs for transaction FB03.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF table = c_detail_table.&lt;/P&gt;&lt;P&gt;    SET PARAMETER ID 'BLN' FIELD value.&lt;/P&gt;&lt;P&gt;    SET PARAMETER ID 'BUK' FIELD w_faglflexa-rbukrs.&lt;/P&gt;&lt;P&gt;    SET PARAMETER ID 'GJR' FIELD w_faglflexa-ryear.&lt;/P&gt;&lt;P&gt;  ELSEIF table = c_item_detail_table.&lt;/P&gt;&lt;P&gt;    SET PARAMETER ID 'BLN' FIELD value.&lt;/P&gt;&lt;P&gt;    SET PARAMETER ID 'BUK' FIELD w_faglflexa_item-rbukrs.&lt;/P&gt;&lt;P&gt;    SET PARAMETER ID 'GJR' FIELD w_faglflexa_item-ryear.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL TRANSACTION c_document_display AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " call_transaction_fb03&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  DETAIL_ITEM_USER_COMM&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Process user commands on the item detail view.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  UCOMM    - User command.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  SELFIELD - Structure with information on the selecton field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM detail_item_user_comm USING ucomm    LIKE sy-ucomm&lt;/P&gt;&lt;P&gt;                                 selfield TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine what function code was passed and take appropriate action.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CASE ucomm.&lt;/P&gt;&lt;P&gt;    WHEN c_hotspot_selected.&lt;/P&gt;&lt;P&gt;      PERFORM process_hotspot USING selfield.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " DETAIL_ITEM_USER_COMM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  remove_leading_zeros&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Remove leading zeros from field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FIELD_IN  - Field with leading zeros.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--FIELD_OUT - Field without leading zeros.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM remove_leading_zeros USING field_in&lt;/P&gt;&lt;P&gt;                       CHANGING field_out.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      input  = field_in&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      output = field_out.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " remove_leading_zeros&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Oct 2007 18:15:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-grid-not-displaying-data/m-p/2904104#M683055</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-08T18:15:54Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with ALV Grid Not Displaying Data</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-grid-not-displaying-data/m-p/2904105#M683056</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No solution&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 Oct 2007 16:59:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-grid-not-displaying-data/m-p/2904105#M683056</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-09T16:59:40Z</dc:date>
    </item>
  </channel>
</rss>

