<?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 Code optimisation in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/3132119#M744098</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, can anyone help me optimise this code...and elemenate the redundancy ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_display TYPE TABLE OF zstatchng  ,&lt;/P&gt;&lt;P&gt;      lt_display LIKE LINE OF t_display ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      BEGIN OF t_ekbe OCCURS 0,&lt;/P&gt;&lt;P&gt;      ebeln TYPE ebeln,&lt;/P&gt;&lt;P&gt;      belnr TYPE mblnr,&lt;/P&gt;&lt;P&gt;      END OF t_ekbe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      BEGIN OF t_ser01 OCCURS 0,&lt;/P&gt;&lt;P&gt;      obknr TYPE objknr,&lt;/P&gt;&lt;P&gt;      END OF t_ser01,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      BEGIN OF t_objk OCCURS 0,&lt;/P&gt;&lt;P&gt;      sernr TYPE gernr,&lt;/P&gt;&lt;P&gt;      matnr TYPE matnr,&lt;/P&gt;&lt;P&gt;      END OF t_objk,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM ekbe INTO CORRESPONDING FIELDS OF TABLE t_ekbe&lt;/P&gt;&lt;P&gt;                 WHERE ebeln IN s_po[] AND bewtp = 'L'.&lt;/P&gt;&lt;P&gt;    LOOP AT t_ekbe.&lt;/P&gt;&lt;P&gt;      SELECT * FROM ser01 INTO CORRESPONDING FIELDS OF TABLE t_ser01&lt;/P&gt;&lt;P&gt;                              WHERE lief_nr = t_ekbe-belnr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        LOOP AT t_ser01.&lt;/P&gt;&lt;P&gt;          SELECT * FROM objk INTO CORRESPONDING FIELDS OF TABLE t_objk&lt;/P&gt;&lt;P&gt;                             WHERE obknr = t_ser01-obknr.&lt;/P&gt;&lt;P&gt;          LOOP AT t_objk.&lt;/P&gt;&lt;P&gt;            MOVE t_objk-sernr TO lt_display-sernr.&lt;/P&gt;&lt;P&gt;            MOVE t_objk-matnr TO lt_display-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            SELECT * FROM equi WHERE sernr = t_objk-sernr.&lt;/P&gt;&lt;P&gt;            ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            CALL FUNCTION 'STATUS_TEXT_EDIT'&lt;/P&gt;&lt;P&gt;                 EXPORTING&lt;/P&gt;&lt;P&gt;                      client           = sy-mandt&lt;/P&gt;&lt;P&gt;                      objnr            = equi-objnr&lt;/P&gt;&lt;P&gt;                      only_active      = 'X'&lt;/P&gt;&lt;P&gt;                      spras            = sy-langu&lt;/P&gt;&lt;P&gt;                 IMPORTING&lt;/P&gt;&lt;P&gt;                      line             = risa0-statusline&lt;/P&gt;&lt;P&gt;                 EXCEPTIONS&lt;/P&gt;&lt;P&gt;                      object_not_found = 1.&lt;/P&gt;&lt;P&gt;            IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;            MOVE risa0-statusline TO lt_display-STATUSLINE.&lt;/P&gt;&lt;P&gt;            move equi-werk to  lt_display-werk.&lt;/P&gt;&lt;P&gt;          ENDLOOP.&lt;/P&gt;&lt;P&gt;          MOVE t_ekbe-ebeln TO lt_display-ebeln.&lt;/P&gt;&lt;P&gt;          MOVE t_ekbe-belnr TO lt_display-vbeln.&lt;/P&gt;&lt;P&gt;          APPEND lt_display TO t_display.&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;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there a better way to code the same ?Please reply.Urgent..Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 04 Dec 2007 17:36:39 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-12-04T17:36:39Z</dc:date>
    <item>
      <title>Code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/3132119#M744098</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, can anyone help me optimise this code...and elemenate the redundancy ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_display TYPE TABLE OF zstatchng  ,&lt;/P&gt;&lt;P&gt;      lt_display LIKE LINE OF t_display ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      BEGIN OF t_ekbe OCCURS 0,&lt;/P&gt;&lt;P&gt;      ebeln TYPE ebeln,&lt;/P&gt;&lt;P&gt;      belnr TYPE mblnr,&lt;/P&gt;&lt;P&gt;      END OF t_ekbe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      BEGIN OF t_ser01 OCCURS 0,&lt;/P&gt;&lt;P&gt;      obknr TYPE objknr,&lt;/P&gt;&lt;P&gt;      END OF t_ser01,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      BEGIN OF t_objk OCCURS 0,&lt;/P&gt;&lt;P&gt;      sernr TYPE gernr,&lt;/P&gt;&lt;P&gt;      matnr TYPE matnr,&lt;/P&gt;&lt;P&gt;      END OF t_objk,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM ekbe INTO CORRESPONDING FIELDS OF TABLE t_ekbe&lt;/P&gt;&lt;P&gt;                 WHERE ebeln IN s_po[] AND bewtp = 'L'.&lt;/P&gt;&lt;P&gt;    LOOP AT t_ekbe.&lt;/P&gt;&lt;P&gt;      SELECT * FROM ser01 INTO CORRESPONDING FIELDS OF TABLE t_ser01&lt;/P&gt;&lt;P&gt;                              WHERE lief_nr = t_ekbe-belnr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        LOOP AT t_ser01.&lt;/P&gt;&lt;P&gt;          SELECT * FROM objk INTO CORRESPONDING FIELDS OF TABLE t_objk&lt;/P&gt;&lt;P&gt;                             WHERE obknr = t_ser01-obknr.&lt;/P&gt;&lt;P&gt;          LOOP AT t_objk.&lt;/P&gt;&lt;P&gt;            MOVE t_objk-sernr TO lt_display-sernr.&lt;/P&gt;&lt;P&gt;            MOVE t_objk-matnr TO lt_display-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            SELECT * FROM equi WHERE sernr = t_objk-sernr.&lt;/P&gt;&lt;P&gt;            ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            CALL FUNCTION 'STATUS_TEXT_EDIT'&lt;/P&gt;&lt;P&gt;                 EXPORTING&lt;/P&gt;&lt;P&gt;                      client           = sy-mandt&lt;/P&gt;&lt;P&gt;                      objnr            = equi-objnr&lt;/P&gt;&lt;P&gt;                      only_active      = 'X'&lt;/P&gt;&lt;P&gt;                      spras            = sy-langu&lt;/P&gt;&lt;P&gt;                 IMPORTING&lt;/P&gt;&lt;P&gt;                      line             = risa0-statusline&lt;/P&gt;&lt;P&gt;                 EXCEPTIONS&lt;/P&gt;&lt;P&gt;                      object_not_found = 1.&lt;/P&gt;&lt;P&gt;            IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;            MOVE risa0-statusline TO lt_display-STATUSLINE.&lt;/P&gt;&lt;P&gt;            move equi-werk to  lt_display-werk.&lt;/P&gt;&lt;P&gt;          ENDLOOP.&lt;/P&gt;&lt;P&gt;          MOVE t_ekbe-ebeln TO lt_display-ebeln.&lt;/P&gt;&lt;P&gt;          MOVE t_ekbe-belnr TO lt_display-vbeln.&lt;/P&gt;&lt;P&gt;          APPEND lt_display TO t_display.&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;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there a better way to code the same ?Please reply.Urgent..Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2007 17:36:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/3132119#M744098</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-04T17:36:39Z</dc:date>
    </item>
    <item>
      <title>Re: Code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/3132120#M744099</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try using this code and make the necessary adjustments&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;TYPES: BEGIN OF ty_ekbe,
         ebeln TYPE ekbe-ebeln,
         belnr TYPE ekbe-belnr,
       END OF ty_ekbe,

       BEGIN OF ty_ser01,
         obknr   TYPE ser01-obknr  ,
         lief_nr TYPE ser01-lief_nr,
       END OF ty_ser01,

       BEGIN OF ty_objk,
         obknr TYPE objk-obknr,
         obzae TYPE objk-obzae,
         sernr TYPE objk-sernr,
         matnr TYPE objk-matnr,
       END OF ty_objk,

       BEGIN OF ty_equi,
         equnr TYPE equi-equnr,
         sernr TYPE equi-sernr,
         matnr TYPE equi-matnr,
         objnr TYPE equi-objnr,
         werks TYPE equi-werks,
       END OF ty_equi.

DATA: w_ekbe     TYPE                 ty_ekbe ,
      w_ser01    TYPE                 ty_ser01,
      w_objk     TYPE                 ty_objk ,

      t_ekbe     TYPE        TABLE OF ty_ekbe ,
      t_ekbe_tmp TYPE        TABLE OF ty_ekbe ,
      t_ser01    TYPE SORTED TABLE OF ty_ser01
        WITH NON-UNIQUE KEY lief_nr,
      t_objk     TYPE SORTED TABLE OF ty_objk
        WITH NON-UNIQUE KEY obknr,
      t_objk_tmp TYPE        TABLE OF ty_objk ,
      t_equi     TYPE SORTED TABLE OF ty_equi
        WITH NON-UNIQUE KEY sernr matnr.

SELECT ebeln
       belnr
  FROM ekbe
  INTO TABLE t_ekbe
  WHERE ebeln IN s_po
  AND   bewtp EQ 'L'.

IF sy-subrc EQ 0.

  t_ekbe_tmp[] = t_ekbe[].

  SORT t_ekbe_tmp BY belnr.

  DELETE ADJACENT DUPLICATES FROM t_ekbe_tmp COMPARING belnr.

  SELECT obknr
        lief_nr
    FROM ser01
    INTO TABLE t_ser01
    FOR ALL ENTRIES IN t_ekbe_tmp
    WHERE lief_nr EQ t_ekbe_tmp-belnr.

  IF sy-subrc EQ 0.

    SELECT obknr
           obzae
           sernr
           matnr
      FROM objk
      INTO TABLE t_objk
      FOR ALL ENTRIES IN t_ser01
      WHERE obknr EQ t_ser01-obknr.

    IF sy-subrc EQ 0.

      t_objk_tmp[] = t_objk[].

      SORT t_objk_tmp BY sernr matnr.

      DELETE ADJACENT DUPLICATES FROM t_objk_tmp COMPARING sernr matnr.

      SELECT equnr
             sernr
             matnr
             objnr
             werks
        FROM equi
        INTO TABLE t_equi
        FOR ALL ENTRIES IN t_objk_tmp
        WHERE sernr EQ t_objk_tmp-sernr
        AND   matnr EQ t_objk_tmp-matnr.

    ENDIF.

  ENDIF.

  LOOP AT t_ekbe INTO w_ekbe.

    LOOP AT t_ser01 INTO w_ser01
      WHERE lief_nr EQ w_ekbe-belnr.

      LOOP AT t_objk INTO w_objk
        WHERE obknr EQ w_ser01-obknr.

        LOOP AT t_equi INTO w_equi
          WHERE sernr EQ w_objk-sernr
          AND   matnr EQ w_objk-matnr.

          MOVE: w_objk-sernr TO lt_display-sernr,
                w_objk-matnr TO lt_display-matnr.

          CLEAR risa0-statusline.

          CALL FUNCTION 'STATUS_TEXT_EDIT'
            EXPORTING
              objnr  = w_equi-objnr
              spras  = sy-langu
            IMPORTING
              line   = risa0-statusline
            EXCEPTIONS
              OTHERS = 0.

          MOVE: risa0-statusline TO lt_display-statusline,
                w_equi-werk      TO lt_display-werk      ,
                w_ekbe-ebeln     TO lt_display-ebeln     ,
                w_ekbe-belnr     TO lt_display-vbeln     .

          APPEND lt_display TO t_display.

        ENDLOOP.

      ENDLOOP.

    ENDLOOP.

  ENDLOOP.

ENDIF.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2007 20:05:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/3132120#M744099</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-04T20:05:38Z</dc:date>
    </item>
    <item>
      <title>Re: Code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/3132121#M744100</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Deepti,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First of all in your code try to get rid of LOOP in SELECT and ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and it's preferable to use SELECT INTO TABLE, instead of CORRESPONDING FIELDS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try to use INNER JOIN or use FOR ALL ENTRIES instead of this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pavan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2007 20:23:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/3132121#M744100</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-04T20:23:50Z</dc:date>
    </item>
    <item>
      <title>Re: Code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/3132122#M744101</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Mark, It was very hepful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2007 21:47:58 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/3132122#M744101</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-04T21:47:58Z</dc:date>
    </item>
    <item>
      <title>Re: Code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/3132123#M744102</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Pavan.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2007 21:48:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/3132123#M744102</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-04T21:48:28Z</dc:date>
    </item>
  </channel>
</rss>

