<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Performance issue. in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/2742858#M637418</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The "#EC CALLED / "#EC * etc are just ways of telling the extended syntax checker that you are happy with the code, and want to override warnings - e.g. in an ALV such as yours, there will be several dynamic subroutine calls such as the user command, and the extended syntax check would warn that the form does not appear to be called ... putting the "#EC * or "#EC CALLED on the end of the line will suppress the message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jonathan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;p.s. should you be reading all the EKETs for each PO, not just the first?  And you may get faster performance if you select from lfa1 with a list on unique LIFNR values that are in sorted order.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 08 Sep 2007 11:46:28 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-09-08T11:46:28Z</dc:date>
    <item>
      <title>Performance issue.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/2742857#M637417</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;when we are checking this report for performance checking, the system is giving message for these "#EC NEEDED, "#EC CALLED, "#EC *  etc. with message (The message can be hidden with "#EC CALLED).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;we are using the code as below after making change, is it right method to do it?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPE-POOLS :    slis.&lt;/P&gt;&lt;P&gt;DATA       :    it_fieldcat  TYPE   slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;                is_fieldcat  TYPE   slis_fieldcat_alv,&lt;/P&gt;&lt;P&gt;                is_events    TYPE   slis_t_event,&lt;/P&gt;&lt;P&gt;                is_grid      TYPE   REF TO cl_gui_alv_grid,&lt;/P&gt;&lt;P&gt;                it_header    TYPE   slis_t_listheader,&lt;/P&gt;&lt;P&gt;                is_header    TYPE   slis_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************&lt;STRONG&gt;TABLE Decleration&lt;/STRONG&gt;***************&lt;/P&gt;&lt;P&gt;TABLES : ekko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************&lt;STRONG&gt;STRUCTURE Decleration&lt;/STRONG&gt;***********&lt;/P&gt;&lt;P&gt;TYPES :   BEGIN OF ty_ekko,&lt;/P&gt;&lt;P&gt;            ebeln     TYPE   ekko-ebeln,&lt;/P&gt;&lt;P&gt;            lifnr     TYPE   ekko-lifnr,&lt;/P&gt;&lt;P&gt;            bstyp     TYPE   ekko-bstyp,&lt;/P&gt;&lt;P&gt;          END OF ty_ekko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES :   BEGIN OF ty_eket,&lt;/P&gt;&lt;P&gt;            ebeln     TYPE   ekko-ebeln,&lt;/P&gt;&lt;P&gt;            ebelp     TYPE   eket-ebelp,&lt;/P&gt;&lt;P&gt;            etenr     TYPE   eket-etenr,&lt;/P&gt;&lt;P&gt;            menge     TYPE   eket-menge,&lt;/P&gt;&lt;P&gt;            wemng     TYPE   eket-wemng,&lt;/P&gt;&lt;P&gt;            yopen_qty TYPE   eket-menge,&lt;/P&gt;&lt;P&gt;          END OF ty_eket.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES :   BEGIN OF ty_final,&lt;/P&gt;&lt;P&gt;            sno(5),&lt;/P&gt;&lt;P&gt;            menge     TYPE   eket-menge,&lt;/P&gt;&lt;P&gt;            wemng     TYPE   eket-wemng,&lt;/P&gt;&lt;P&gt;            yopen_qty TYPE   eket-menge,&lt;/P&gt;&lt;P&gt;            ebeln     TYPE   ekko-ebeln,&lt;/P&gt;&lt;P&gt;            lifnr     TYPE   ekko-lifnr,&lt;/P&gt;&lt;P&gt;            name1     TYPE   lfa1-name1,&lt;/P&gt;&lt;P&gt;          END OF ty_final.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES :  BEGIN OF ty_lfa1,&lt;/P&gt;&lt;P&gt;          lifnr TYPE lfa1-lifnr,&lt;/P&gt;&lt;P&gt;          name1 TYPE lfa1-name1,&lt;/P&gt;&lt;P&gt;         END OF ty_lfa1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************&lt;STRONG&gt;INTERNAL TABLE Decleration&lt;/STRONG&gt;********&lt;/P&gt;&lt;P&gt;DATA :   it_ekko    TYPE TABLE OF   ty_ekko,&lt;/P&gt;&lt;P&gt;         it_eket    TYPE TABLE OF   ty_eket,&lt;/P&gt;&lt;P&gt;         it_final   TYPE TABLE OF   ty_final,&lt;/P&gt;&lt;P&gt;         it_lfa1    TYPE TABLE OF   ty_lfa1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************&lt;STRONG&gt;WORK AREA Decleration&lt;/STRONG&gt;*************&lt;/P&gt;&lt;P&gt;DATA :   is_ekko    TYPE            ty_ekko,&lt;/P&gt;&lt;P&gt;         is_eket    TYPE            ty_eket,&lt;/P&gt;&lt;P&gt;         is_final   TYPE            ty_final,&lt;/P&gt;&lt;P&gt;         is_lfa1    TYPE            ty_lfa1,&lt;/P&gt;&lt;P&gt;         it_sort    TYPE            slis_t_sortinfo_alv,&lt;/P&gt;&lt;P&gt;         is_sort    TYPE            slis_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************&lt;STRONG&gt;VARIABLES Decleration&lt;/STRONG&gt;*************&lt;/P&gt;&lt;P&gt;DATA :   w_idate  TYPE sy-datum,&lt;/P&gt;&lt;P&gt;         w_ltext  TYPE t247-ltx,&lt;/P&gt;&lt;P&gt;         w_day(2),&lt;/P&gt;&lt;P&gt;         w_month(2),&lt;/P&gt;&lt;P&gt;         w_year(4),&lt;/P&gt;&lt;P&gt;         w_oday(2),&lt;/P&gt;&lt;P&gt;         w_omonth(2),                                       "#EC NEEDED&lt;/P&gt;&lt;P&gt;         w_oyear(4),&lt;/P&gt;&lt;P&gt;         w_o_date(20),&lt;/P&gt;&lt;P&gt;         w_total_rec(5),&lt;/P&gt;&lt;P&gt;         w_fill(14).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="17" type="ul"&gt;&lt;P&gt;CONSTANTS ************************&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;CONSTANTS :    c_tabname     TYPE slis_tabname     VALUE 'EKKO',&lt;/P&gt;&lt;P&gt;               c_tabname1    TYPE slis_tabname     VALUE 'LFA1',&lt;/P&gt;&lt;P&gt;               c_tabname2    TYPE slis_tabname     VALUE 'IT_FINAL',&lt;/P&gt;&lt;P&gt;               c_fieldname   TYPE slis_fieldname   VALUE 'LIFNR',&lt;/P&gt;&lt;P&gt;               c_fieldname1  TYPE slis_fieldname   VALUE 'NAME1',&lt;/P&gt;&lt;P&gt;               c_fieldname2  TYPE slis_fieldname   VALUE 'SNO',&lt;/P&gt;&lt;P&gt;               c_fieldname3  TYPE slis_fieldname   VALUE 'EBELN',&lt;/P&gt;&lt;P&gt;               c_up          TYPE alvdynp-sortup   VALUE 'X',&lt;/P&gt;&lt;P&gt;               c_spos        TYPE alvdynp-sortpos  VALUE '1',&lt;/P&gt;&lt;P&gt;               c_spos1       TYPE alvdynp-sortpos  VALUE '2',&lt;/P&gt;&lt;P&gt;               c_one         TYPE sy-cucol         VALUE '1',&lt;/P&gt;&lt;P&gt;               c_three       TYPE sy-cucol         VALUE '3',&lt;/P&gt;&lt;P&gt;               c_eight       TYPE sy-cucol         VALUE '8',&lt;/P&gt;&lt;P&gt;               c_outputlen   TYPE dd03p-outputlen  VALUE '12',&lt;/P&gt;&lt;P&gt;               c_outputlen1  TYPE dd03p-outputlen  VALUE '25',&lt;/P&gt;&lt;P&gt;               c_top_of_page TYPE slis_formname    VALUE 'TOP_OF_PAGE',&lt;/P&gt;&lt;P&gt;               c_end_of_list TYPE slis_formname    VALUE 'END_OF_LIST_HTML',&lt;/P&gt;&lt;P&gt;               c_typ(1)      TYPE c                VALUE 'H',&lt;/P&gt;&lt;P&gt;               c_fill(14)    TYPE c                VALUE 'SET_ROW_HEIGHT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="17" type="ul"&gt;&lt;P&gt;SELECTION  SCREEN ****************&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK purchase WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS :   so_v_no   FOR   ekko-lifnr,&lt;/P&gt;&lt;P&gt;                   so_c_cod  FOR   ekko-bukrs,&lt;/P&gt;&lt;P&gt;                   so_p_typ  FOR   ekko-bsart.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK purchase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="17" type="ul"&gt;&lt;P&gt;DATA RETREIVAL *******************&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;**Select Purchase Orders and Vendor Numbers&lt;/P&gt;&lt;P&gt;SELECT ebeln lifnr bstyp&lt;/P&gt;&lt;P&gt;  FROM ekko&lt;/P&gt;&lt;P&gt;    INTO TABLE it_ekko&lt;/P&gt;&lt;P&gt;      WHERE bukrs IN so_c_cod&lt;/P&gt;&lt;P&gt;      AND lifnr IN so_v_no&lt;/P&gt;&lt;P&gt;      AND bsart IN so_p_typ.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**Select Quantities for Purchase Orders&lt;/P&gt;&lt;P&gt;IF it_ekko[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;  SELECT ebeln ebelp etenr menge wemng&lt;/P&gt;&lt;P&gt;    FROM eket&lt;/P&gt;&lt;P&gt;      INTO TABLE it_eket&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN it_ekko&lt;/P&gt;&lt;P&gt;          WHERE ebeln EQ it_ekko-ebeln.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;**Select Name of Vendor for Vendor Number&lt;/P&gt;&lt;P&gt;IF it_ekko[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;  SELECT lifnr name1&lt;/P&gt;&lt;P&gt;    FROM lfa1&lt;/P&gt;&lt;P&gt;      INTO TABLE it_lfa1&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN it_ekko&lt;/P&gt;&lt;P&gt;          WHERE lifnr EQ it_ekko-lifnr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF it_ekko[] IS INITIAL.&lt;/P&gt;&lt;P&gt;  MESSAGE s000(ysrm) WITH text-008.&lt;/P&gt;&lt;P&gt;  LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;**Sort tables&lt;/P&gt;&lt;P&gt;SORT it_ekko BY lifnr.&lt;/P&gt;&lt;P&gt;SORT it_eket BY ebeln.&lt;/P&gt;&lt;P&gt;SORT it_lfa1 BY lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**Fill the data into Final Internal Table&lt;/P&gt;&lt;P&gt;CLEAR : w_total_rec,&lt;/P&gt;&lt;P&gt;        is_final,&lt;/P&gt;&lt;P&gt;        is_ekko,&lt;/P&gt;&lt;P&gt;        is_eket,&lt;/P&gt;&lt;P&gt;        is_lfa1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT it_ekko INTO is_ekko.&lt;/P&gt;&lt;P&gt;  READ TABLE it_eket INTO is_eket WITH KEY ebeln = is_ekko-ebeln BINARY SEARCH.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    READ TABLE it_lfa1 INTO is_lfa1 WITH KEY lifnr = is_ekko-lifnr BINARY SEARCH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      is_final-yopen_qty   = is_eket-menge - is_eket-wemng.&lt;/P&gt;&lt;P&gt;      is_final-ebeln       = is_ekko-ebeln.&lt;/P&gt;&lt;P&gt;      is_final-lifnr       = is_ekko-lifnr.&lt;/P&gt;&lt;P&gt;      is_final-name1       = is_lfa1-name1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF is_final-yopen_qty NE 0.&lt;/P&gt;&lt;P&gt;        is_final-sno = is_final-sno + c_one.&lt;/P&gt;&lt;P&gt;        APPEND is_final TO it_final.&lt;/P&gt;&lt;P&gt;        w_total_rec = w_total_rec + c_one.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR : is_ekko,&lt;/P&gt;&lt;P&gt;          is_eket,&lt;/P&gt;&lt;P&gt;          is_lfa1.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF it_final[] IS INITIAL.&lt;/P&gt;&lt;P&gt;  MESSAGE s000(ysrm) WITH text-009.&lt;/P&gt;&lt;P&gt;  LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**Sort Final Internal Table with Key Vendor Number Asscending&lt;/P&gt;&lt;P&gt;is_sort-up         = c_up.&lt;/P&gt;&lt;P&gt;is_sort-spos       = c_spos.&lt;/P&gt;&lt;P&gt;is_sort-fieldname  = c_fieldname.&lt;/P&gt;&lt;P&gt;is_sort-tabname    = c_tabname.&lt;/P&gt;&lt;P&gt;APPEND is_sort TO it_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is_sort-spos       = c_spos1.&lt;/P&gt;&lt;P&gt;is_sort-fieldname  = c_fieldname1.&lt;/P&gt;&lt;P&gt;is_sort-tabname    = c_tabname1.&lt;/P&gt;&lt;P&gt;APPEND is_sort TO it_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="17" type="ul"&gt;&lt;P&gt;PRINT  DATA *******************&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;is_fieldcat-tabname     = c_tabname2.&lt;/P&gt;&lt;P&gt;is_fieldcat-fieldname   = c_fieldname2.&lt;/P&gt;&lt;P&gt;is_fieldcat-col_pos     = c_one.&lt;/P&gt;&lt;P&gt;is_fieldcat-outputlen   = c_outputlen.&lt;/P&gt;&lt;P&gt;is_fieldcat-seltext_l   = text-002.&lt;/P&gt;&lt;P&gt;APPEND is_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;CLEAR is_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is_fieldcat-tabname     = c_tabname2.&lt;/P&gt;&lt;P&gt;is_fieldcat-fieldname   = c_fieldname3.&lt;/P&gt;&lt;P&gt;is_fieldcat-col_pos     = c_one.&lt;/P&gt;&lt;P&gt;is_fieldcat-outputlen   = c_outputlen.&lt;/P&gt;&lt;P&gt;is_fieldcat-seltext_l   = text-003.&lt;/P&gt;&lt;P&gt;APPEND is_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;CLEAR is_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is_fieldcat-tabname     = c_tabname2.&lt;/P&gt;&lt;P&gt;is_fieldcat-fieldname   = c_fieldname.&lt;/P&gt;&lt;P&gt;is_fieldcat-col_pos     = c_one.&lt;/P&gt;&lt;P&gt;is_fieldcat-outputlen   = c_outputlen.&lt;/P&gt;&lt;P&gt;is_fieldcat-seltext_l   = text-004.&lt;/P&gt;&lt;P&gt;APPEND is_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;CLEAR is_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is_fieldcat-tabname     = c_tabname2.&lt;/P&gt;&lt;P&gt;is_fieldcat-fieldname   = c_fieldname1.&lt;/P&gt;&lt;P&gt;is_fieldcat-col_pos     = c_one.&lt;/P&gt;&lt;P&gt;is_fieldcat-outputlen   = c_outputlen1.&lt;/P&gt;&lt;P&gt;is_fieldcat-seltext_l   = text-005.&lt;/P&gt;&lt;P&gt;APPEND is_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;CLEAR is_fieldcat.&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          = sy-repid&lt;/P&gt;&lt;P&gt;    it_fieldcat                 = it_fieldcat[]&lt;/P&gt;&lt;P&gt;    i_callback_pf_status_set    = 'STATUS'&lt;/P&gt;&lt;P&gt;    i_callback_user_command     = 'USER_COMMAND'&lt;/P&gt;&lt;P&gt;    i_callback_top_of_page      = c_top_of_page&lt;/P&gt;&lt;P&gt;    i_callback_html_end_of_list = c_end_of_list&lt;/P&gt;&lt;P&gt;    i_save                      = c_up&lt;/P&gt;&lt;P&gt;    it_sort                     = it_sort[]&lt;/P&gt;&lt;P&gt;    it_events                   = is_events[]&lt;/P&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;    t_outtab                    = it_final.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**************&lt;STRONG&gt;Display Top of Page Header&lt;/STRONG&gt;******************&lt;/P&gt;&lt;P&gt;FORM top_of_page.                                           "#EC CALLED&lt;/P&gt;&lt;P&gt;*ALV Header declarations&lt;/P&gt;&lt;P&gt;  CLEAR is_header.&lt;/P&gt;&lt;P&gt;  REFRESH it_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_day    =   sy-datum+6(2).&lt;/P&gt;&lt;P&gt;  w_month  =   sy-datum+4(2).&lt;/P&gt;&lt;P&gt;  w_year   =   sy-datum+0(4).&lt;/P&gt;&lt;P&gt;  CONCATENATE w_year w_month w_day INTO w_idate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'HR_IN_GET_DATE_COMPONENTS'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      idate = w_idate&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      day   = w_oday&lt;/P&gt;&lt;P&gt;      month = w_omonth  "Value assignment&lt;/P&gt;&lt;P&gt;      year  = w_oyear&lt;/P&gt;&lt;P&gt;      ltext = w_ltext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE w_oday '-' w_ltext '-' w_oyear INTO w_o_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  is_header-typ = c_typ.&lt;/P&gt;&lt;P&gt;  CONCATENATE text-006 w_o_date&lt;/P&gt;&lt;P&gt;  INTO is_header-info SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND is_header TO it_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_list_commentary = it_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "top-of-page&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************&lt;STRONG&gt;End of List&lt;/STRONG&gt;****&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM end_of_list_html USING end TYPE REF TO cl_dd_document. "#EC CALLED&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: is_text TYPE sdydo_text_element.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_fill = c_fill.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE text-007 w_total_rec&lt;/P&gt;&lt;P&gt;  INTO is_text SEPARATED BY space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;adds text (via variable)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD end-&amp;gt;add_text&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      text = is_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*set height of this section&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_grid = is_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD is_grid-&amp;gt;parent-&amp;gt;parent-&amp;gt;(w_fill)&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      id     = c_three&lt;/P&gt;&lt;P&gt;      height = c_eight.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "end_of_list_html. "Value assignment&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  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;      text&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;P_EXTAB    text&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 status USING p_extab TYPE slis_t_extab.                "#EC *&lt;/P&gt;&lt;P&gt;*- Pf status&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'STATUS'.&lt;/P&gt;&lt;P&gt;ENDFORM.                 " 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;P&gt;*&amp;amp;      Form  USER_COMMAND&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;      text&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;R_UCOMM      text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;RS_SELFIELD  text&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 user_command USING r_ucomm     LIKE sy-ucomm&lt;/P&gt;&lt;P&gt;                               rs_selfield TYPE slis_selfield."#EC CALLED&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE r_ucomm.&lt;/P&gt;&lt;P&gt;    WHEN 'BACK' OR 'CANC' OR 'EXIT'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN '&amp;amp;IC1'.&lt;/P&gt;&lt;P&gt;      SORT it_ekko BY ebeln.&lt;/P&gt;&lt;P&gt;      READ TABLE it_ekko INTO is_ekko WITH KEY ebeln = rs_selfield-value BINARY SEARCH."#EC *&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF is_ekko-bstyp EQ 'F'.&lt;/P&gt;&lt;P&gt;        SET PARAMETER ID 'BES' FIELD rs_selfield-value.&lt;/P&gt;&lt;P&gt;        CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF is_ekko-bstyp EQ 'L'.&lt;/P&gt;&lt;P&gt;        SET PARAMETER ID 'VRT' FIELD rs_selfield-value.&lt;/P&gt;&lt;P&gt;        CALL TRANSACTION 'ME33' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;  CLEAR is_ekko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "USER_COMMAND&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;points will be rewarded,&lt;/P&gt;&lt;P&gt;P.A.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 08 Sep 2007 10:50:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/2742857#M637417</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-08T10:50:03Z</dc:date>
    </item>
    <item>
      <title>Re: Performance issue.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/2742858#M637418</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The "#EC CALLED / "#EC * etc are just ways of telling the extended syntax checker that you are happy with the code, and want to override warnings - e.g. in an ALV such as yours, there will be several dynamic subroutine calls such as the user command, and the extended syntax check would warn that the form does not appear to be called ... putting the "#EC * or "#EC CALLED on the end of the line will suppress the message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jonathan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;p.s. should you be reading all the EKETs for each PO, not just the first?  And you may get faster performance if you select from lfa1 with a list on unique LIFNR values that are in sorted order.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 08 Sep 2007 11:46:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/2742858#M637418</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-08T11:46:28Z</dc:date>
    </item>
  </channel>
</rss>

