<?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 Optimization - Performance Issue in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimization-performance-issue/m-p/3409590#M818855</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have written the below code, which basically does what CS15 does, since it is recursive in nature, the execution time is very long. Is there anyway i can modify this code, to reduce the run-time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN __jive_macro_name="Code"&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt; Function call&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;    IMPORTING&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;        TOPMAT                     =&lt;/LI&gt;&lt;/UL&gt;IF VA_REF NE EBAN-MATNR.

   WHILE NOT VA_MATNR IS INITIAL.
    CALL FUNCTION 'CS_WHERE_USED_MAT'
      EXPORTING
          DATUB                      = SYST-DATUM
          DATUV                      = SYST-DATUM
          MATNR                      = VA_MATNR
          WERKS                      = EBAN-WERKS


      TABLES
          WULTB                      = IT_WULTB[]
          EQUICAT                    = IT_EQUICAT[]
          KNDCAT                     = IT_KNDCAT[]
          MATCAT                     = IT_MATCAT[]
          STDCAT                     = IT_STDCAT[]
          TPLCAT                     = IT_TPLCAT[]
          PRJCAT                     = IT_PRJCAT[]
      EXCEPTIONS
          CALL_INVALID               = 1
          MATERIAL_NOT_FOUND         = 2
          NO_WHERE_USED_REC_FOUND    = 3
          NO_WHERE_USED_REC_SELECTED = 4
          NO_WHERE_USED_REC_VALID    = 5.
        IF SY-SUBRC EQ 0.
           LOOP AT IT_MATCAT[] INTO HT_MATCAT FROM '0'.
             SEARCH HT_MATCAT-MATNR FOR 'MM'.
             IF SY-FDPOS NE SPACE AND VA_MM IS INITIAL.
               VA_MM = 'X'.
               CONCATENATE 'NUT' '~' A_MTL INTO A_MTL.
             ENDIF.
             SEARCH HT_MATCAT-MATNR FOR 'DM'.
             IF SY-FDPOS NE SPACE AND VA_PM IS INITIAL.
               VA_PM = 'X'.
               CONCATENATE 'WASHER' '~' A_MTL INTO A_MTL.
             ENDIF.
	     SEARCH HT_MATCAT-MATNR FOR 'CM'.
             IF SY-FDPOS NE SPACE AND VA_CM IS INITIAL.
               VA_CM = 'X'.
               CONCATENATE 'SPRING' '~' A_MTL INTO A_MTL.
             ENDIF.
           ITAB-MATNR = HT_MATCAT-MATNR.
           APPEND ITAB.
           CLEAR  ITAB.
           ENDLOOP.
        ENDIF.
        CLEAR: VA_MATNR, HT_MATCAT.               
        REFRESH IT_MATCAT[].
        READ TABLE ITAB INTO VA_MATNR INDEX VA_KEY. "Value assignment
        VA_KEY = VA_KEY + 1.
   ENDWHILE.
ENDIF.
  VA_REF = EBAN-MATNR.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any inputs????&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Vivek on Apr 16, 2008 12:24 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 18 Feb 2008 15:17:59 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-02-18T15:17:59Z</dc:date>
    <item>
      <title>Code Optimization - Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimization-performance-issue/m-p/3409590#M818855</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have written the below code, which basically does what CS15 does, since it is recursive in nature, the execution time is very long. Is there anyway i can modify this code, to reduce the run-time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN __jive_macro_name="Code"&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt; Function call&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;    IMPORTING&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;        TOPMAT                     =&lt;/LI&gt;&lt;/UL&gt;IF VA_REF NE EBAN-MATNR.

   WHILE NOT VA_MATNR IS INITIAL.
    CALL FUNCTION 'CS_WHERE_USED_MAT'
      EXPORTING
          DATUB                      = SYST-DATUM
          DATUV                      = SYST-DATUM
          MATNR                      = VA_MATNR
          WERKS                      = EBAN-WERKS


      TABLES
          WULTB                      = IT_WULTB[]
          EQUICAT                    = IT_EQUICAT[]
          KNDCAT                     = IT_KNDCAT[]
          MATCAT                     = IT_MATCAT[]
          STDCAT                     = IT_STDCAT[]
          TPLCAT                     = IT_TPLCAT[]
          PRJCAT                     = IT_PRJCAT[]
      EXCEPTIONS
          CALL_INVALID               = 1
          MATERIAL_NOT_FOUND         = 2
          NO_WHERE_USED_REC_FOUND    = 3
          NO_WHERE_USED_REC_SELECTED = 4
          NO_WHERE_USED_REC_VALID    = 5.
        IF SY-SUBRC EQ 0.
           LOOP AT IT_MATCAT[] INTO HT_MATCAT FROM '0'.
             SEARCH HT_MATCAT-MATNR FOR 'MM'.
             IF SY-FDPOS NE SPACE AND VA_MM IS INITIAL.
               VA_MM = 'X'.
               CONCATENATE 'NUT' '~' A_MTL INTO A_MTL.
             ENDIF.
             SEARCH HT_MATCAT-MATNR FOR 'DM'.
             IF SY-FDPOS NE SPACE AND VA_PM IS INITIAL.
               VA_PM = 'X'.
               CONCATENATE 'WASHER' '~' A_MTL INTO A_MTL.
             ENDIF.
	     SEARCH HT_MATCAT-MATNR FOR 'CM'.
             IF SY-FDPOS NE SPACE AND VA_CM IS INITIAL.
               VA_CM = 'X'.
               CONCATENATE 'SPRING' '~' A_MTL INTO A_MTL.
             ENDIF.
           ITAB-MATNR = HT_MATCAT-MATNR.
           APPEND ITAB.
           CLEAR  ITAB.
           ENDLOOP.
        ENDIF.
        CLEAR: VA_MATNR, HT_MATCAT.               
        REFRESH IT_MATCAT[].
        READ TABLE ITAB INTO VA_MATNR INDEX VA_KEY. "Value assignment
        VA_KEY = VA_KEY + 1.
   ENDWHILE.
ENDIF.
  VA_REF = EBAN-MATNR.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any inputs????&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Vivek on Apr 16, 2008 12:24 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2008 15:17:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimization-performance-issue/m-p/3409590#M818855</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-18T15:17:59Z</dc:date>
    </item>
    <item>
      <title>Re: Code Optimization - Performance Issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimization-performance-issue/m-p/3409591#M818856</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;May be you can avoid the SEARCH HT_MATCAT-MATNR. If your MM CM DM are coming in an exact position in MATNR field &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Say for example in MT_MATCAT-MATNR is something like 'MATMM001' or 'MATDM001' or 'MATCM001'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;then &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if MT_MATCAT-MATNR+3(2) = 'MM' AND VA_MM IS INITIAL.&lt;/P&gt;&lt;P&gt;VA_MM = 'X'.&lt;/P&gt;&lt;P&gt;CONCATENATE 'NUT' '~' A_MTL INTO A_MTL.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; a®&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Apr 2008 16:38:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimization-performance-issue/m-p/3409591#M818856</guid>
      <dc:creator>former_member194669</dc:creator>
      <dc:date>2008-04-15T16:38:46Z</dc:date>
    </item>
  </channel>
</rss>

