<?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: select inside a loop in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574249#M1271418</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;&lt;CODE&gt;
   SELECT OBJID 
                FROM HRV1218
                INTO TABLE T_WERKS 
                WHERE PLVAR = '01' 
                AND OTYPE = 'RY' 
                AND ENDDA = '99991231'
                AND REFFIELD = 'WERKS' 
                AND EXPR_LOW = LV_PA 
                AND OBJID = LT_OBJID-OBJID.
 
    IF SY-SUBRC = 0.
      SELECT OBJID 
                   INTO TABLE T_BTRTL 
                   FROM HRV1218 
                   FOR ALL ENTRIES IN T_WERKS 
                   WHERE OBJID = T_WERKS-V_WERKS_OBJID 
                    AND REFFIELD = 'BTRTL' 
                   AND EXPR_LOW = LV_PSA 
                  AND PLVAR = '01' 
                  AND OTYPE = 'RY' 
                  AND ENDDA = '99991231'.
 
      IF SY-SUBRC = 0.
 
        SELECT OBJID 
                     INTO V_OBJID UP TO 1 ROWS 
                     FROM HRV1218 
                     FOR ALL ENTRIES IN T_BTRTL 
                     WHERE PLVAR = '01' 
                     AND OTYPE = 'RY' 
                     AND OBJID = T_BTRTL-V_BTRTL_OBJID 
                     AND ENDDA = '99991231' 
                     AND REFFIELD = 'ORGEH' 
                     AND EXPR_LOW LE LV_ORGID 
                     AND EXPR_HIGH GE LV_ORGID.
        ENDSELECT.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The FOR ALL ENTRIES calls are incorrect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The rest is a typical task for a self-join.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Siegfried&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 05 May 2009 13:22:03 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2009-05-05T13:22:03Z</dc:date>
    <item>
      <title>select inside a loop</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574246#M1271415</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi friends&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  I have written a code to find the manager. but am using select statement inside the loop. I tried to do other ways but its in vain. Can any give some idea to change it. Here is my code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;DATA : LV_PERNR LIKE HRP1001-SOBID .
  DATA : RECLIST LIKE SOMLRECI1 OCCURS 1 WITH HEADER LINE.
*  DATA : V_RULE_NO LIKE HRP1240-EXT_OBJID.

*  V_RULE_NO = '95000018'. "CUSTOM RULE NUMBER FOR TRAVEL EXPENSE MANAGER.

  DATA : LV_EXP_PERNR TYPE SOBID.

  DATA : BEGIN OF LT_OBJID OCCURS 0,
         OBJID LIKE HRP1240-EXT_OBJID,
         END OF LT_OBJID.

  DATA : BEGIN OF T_WERKS OCCURS 0,
         V_WERKS_OBJID LIKE HRV1218-OBJID,
         END OF T_WERKS.

  DATA : BEGIN OF T_BTRTL OCCURS 0,
           V_BTRTL_OBJID LIKE HRV1218-OBJID,
           END OF T_BTRTL.

  DATA : V_OBJID LIKE HRV1218-OBJID.

  SELECT OBJID FROM HRP1240 INTO TABLE LT_OBJID WHERE EXT_OBJID = V_RULE_NO.

  LOOP AT LT_OBJID.

    SELECT OBJID FROM HRV1218 INTO TABLE T_WERKS WHERE PLVAR = '01' AND OTYPE = 'RY' AND ENDDA = '99991231'
         AND REFFIELD = 'WERKS' AND EXPR_LOW = LV_PA AND OBJID = LT_OBJID-OBJID.

    IF SY-SUBRC = 0.
      SELECT OBJID INTO TABLE T_BTRTL FROM HRV1218 FOR ALL ENTRIES IN T_WERKS WHERE OBJID = T_WERKS-V_WERKS_OBJID AND
      REFFIELD = 'BTRTL' AND EXPR_LOW = LV_PSA AND PLVAR = '01' AND OTYPE = 'RY' AND ENDDA = '99991231'.

      IF SY-SUBRC = 0.

        SELECT OBJID INTO V_OBJID UP TO 1 ROWS FROM HRV1218 FOR ALL ENTRIES IN T_BTRTL WHERE PLVAR = '01' AND OTYPE = 'RY' AND
        OBJID = T_BTRTL-V_BTRTL_OBJID AND ENDDA = '99991231' AND REFFIELD = 'ORGEH' AND EXPR_LOW LE LV_ORGID AND
        EXPR_HIGH GE LV_ORGID.
        ENDSELECT.

        IF V_OBJID IS INITIAL.
          CONTINUE.
        ELSE.
          EXIT.
        ENDIF.
      ENDIF.
    ENDIF.
  ENDLOOP.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Till the V_OBJID is not initial i am executing the loop. Is there any other way to do this.  The V_OBJID contains the personal number. How to modify the code without using select statement inside the loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 May 2009 12:17:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574246#M1271415</guid>
      <dc:creator>vijy_mukunthan</dc:creator>
      <dc:date>2009-05-05T12:17:40Z</dc:date>
    </item>
    <item>
      <title>Re: select inside a loop</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574247#M1271416</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;write this format...&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
 SELECT objid FROM hrv1218 INTO TABLE t_werks
         for ALL entries of lt_objid "write this
         WHERE plvar = '01' AND otype = 'RY' AND endda = '99991231'
         AND reffield = 'WERKS' AND expr_low = lv_pa 
         AND objid = lt_objid-objid.
IF sy-subrc  = 0.
  SELECT objid INTO TABLE t_btrtl FROM hrv1218 
          FOR ALL ENTRIES IN t_werks
          WHERE objid = t_werks-v_werks_objid AND
          reffield = 'BTRTL' AND expr_low = lv_psa AND plvar = '01'
          AND otype = 'RY' AND endda = '99991231'.
  IF sy-subrc  = 0.
  ENDIF.
ENDIF.



LOOP AT lt_objid.

  READ TABLE t_werks WITH KEY objid = lt_objid-objid.
  IF sy-subrc = 0.
    READ TABLE with key table t_btrtl objid = t_werks-v_werks_objid .
    IF sy-subrc = 0.
      SELECT objid INTO v_objid UP TO 1 ROWS FROM hrv1218
          FOR ALL ENTRIES IN t_btrtl WHERE plvar = '01'
          AND otype = 'RY' AND objid = t_btrtl-v_btrtl_objid 
          AND endda = '99991231' AND reffield = 'ORGEH' 
           AND expr_low LE lv_orgid AND expr_high GE lv_orgid.
      ENDSELECT.
      IF v_objid IS INITIAL.
        CONTINUE.
      ELSE.
        EXIT.
      ENDIF.
    ENDIF.
  ENDIF.
ENDLOOP.

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Prabhudas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 May 2009 12:23:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574247#M1271416</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-05-05T12:23:13Z</dc:date>
    </item>
    <item>
      <title>Re: select inside a loop</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574248#M1271417</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;&lt;CODE&gt;DATA : LV_PERNR LIKE HRP1001-SOBID .
  DATA : RECLIST LIKE SOMLRECI1 OCCURS 1 WITH HEADER LINE.
*  DATA : V_RULE_NO LIKE HRP1240-EXT_OBJID.
 
*  V_RULE_NO = '95000018'. "CUSTOM RULE NUMBER FOR TRAVEL EXPENSE MANAGER.
 
  DATA : LV_EXP_PERNR TYPE SOBID.
 
  DATA : BEGIN OF LT_OBJID OCCURS 0,
         OBJID LIKE HRP1240-EXT_OBJID,
         END OF LT_OBJID.
 
  DATA : BEGIN OF T_WERKS OCCURS 0,
         V_WERKS_OBJID LIKE HRV1218-OBJID,
         END OF T_WERKS.
 
  DATA : BEGIN OF T_BTRTL OCCURS 0,
           V_BTRTL_OBJID LIKE HRV1218-OBJID,
           END OF T_BTRTL.
 
  DATA : V_OBJID LIKE HRV1218-OBJID.
 

      SELECT OBJID INTO TABLE T_BTRTL FROM HRV1218 FOR ALL ENTRIES IN T_WERKS WHERE OBJID = T_WERKS-V_WERKS_OBJID AND
      REFFIELD = 'BTRTL' AND EXPR_LOW = LV_PSA AND PLVAR = '01' AND OTYPE = 'RY' AND ENDDA = '99991231'.
 
        SELECT PLVAR OTYPE OBJID ENDDA REFFIELD EXPR_LOW EXPR_HIGH INTO table IT_OBJID FROM HRV1218 FOR ALL ENTRIES IN T_BTRTL WHERE PLVAR = '01' AND OTYPE = 'RY' AND
        OBJID = T_BTRTL-V_BTRTL_OBJID AND ENDDA = '99991231' AND REFFIELD = 'ORGEH' AND EXPR_LOW LE LV_ORGID AND
        EXPR_HIGH GE LV_ORGID.

  SELECT OBJID FROM HRP1240 INTO TABLE LT_OBJID WHERE EXT_OBJID = V_RULE_NO.
 
*  LOOP AT LT_OBJID.
 if not lt_objid[] is initial.
    SELECT OBJID FROM HRV1218 INTO TABLE T_WERKS 
    for all entries in lt_objid
WHERE PLVAR = '01' AND OTYPE = 'RY' AND ENDDA = '99991231'
         AND REFFIELD = 'WERKS' AND EXPR_LOW = LV_PA AND OBJID = LT_OBJID-OBJID.
 
    IF SY-SUBRC = 0.

 read table lt_objid with key PLVAR = '01'  OTYPE = 'RY' 
        OBJID = T_BTRTL-V_BTRTL_OBJID ENDDA = '99991231'  REFFIELD = 'ORGEH'  EXPR_LOW LE LV_ORGID 
        EXPR_HIGH GE LV_ORGID.
v_objid = lt_objid-objid.
        IF V_OBJID IS INITIAL.
          CONTINUE.
        ELSE.
          EXIT.
        ENDIF.
      ENDIF.

*  ENDLOOP.
endif.&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 May 2009 12:26:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574248#M1271417</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-05-05T12:26:06Z</dc:date>
    </item>
    <item>
      <title>Re: select inside a loop</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574249#M1271418</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;&lt;CODE&gt;
   SELECT OBJID 
                FROM HRV1218
                INTO TABLE T_WERKS 
                WHERE PLVAR = '01' 
                AND OTYPE = 'RY' 
                AND ENDDA = '99991231'
                AND REFFIELD = 'WERKS' 
                AND EXPR_LOW = LV_PA 
                AND OBJID = LT_OBJID-OBJID.
 
    IF SY-SUBRC = 0.
      SELECT OBJID 
                   INTO TABLE T_BTRTL 
                   FROM HRV1218 
                   FOR ALL ENTRIES IN T_WERKS 
                   WHERE OBJID = T_WERKS-V_WERKS_OBJID 
                    AND REFFIELD = 'BTRTL' 
                   AND EXPR_LOW = LV_PSA 
                  AND PLVAR = '01' 
                  AND OTYPE = 'RY' 
                  AND ENDDA = '99991231'.
 
      IF SY-SUBRC = 0.
 
        SELECT OBJID 
                     INTO V_OBJID UP TO 1 ROWS 
                     FROM HRV1218 
                     FOR ALL ENTRIES IN T_BTRTL 
                     WHERE PLVAR = '01' 
                     AND OTYPE = 'RY' 
                     AND OBJID = T_BTRTL-V_BTRTL_OBJID 
                     AND ENDDA = '99991231' 
                     AND REFFIELD = 'ORGEH' 
                     AND EXPR_LOW LE LV_ORGID 
                     AND EXPR_HIGH GE LV_ORGID.
        ENDSELECT.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The FOR ALL ENTRIES calls are incorrect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The rest is a typical task for a self-join.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Siegfried&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 May 2009 13:22:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574249#M1271418</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-05-05T13:22:03Z</dc:date>
    </item>
    <item>
      <title>Re: select inside a loop</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574250#M1271419</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;  Can i use many read statement inside a loop. will it affect the performance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 May 2009 06:44:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574250#M1271419</guid>
      <dc:creator>vijy_mukunthan</dc:creator>
      <dc:date>2009-05-06T06:44:30Z</dc:date>
    </item>
    <item>
      <title>Re: select inside a loop</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574251#M1271420</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;gt; Can i use many read statement inside a loop. will it affect the performance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;yes you can, BUT it must be a binary search (standard table with with BS or sorted table)&lt;/P&gt;&lt;P&gt;or a direct read (hashed table or index read)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 May 2009 07:55:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574251#M1271420</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-05-06T07:55:04Z</dc:date>
    </item>
    <item>
      <title>Re: select inside a loop</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574252#M1271421</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Use a read statement....tat will help....but use them on the keys.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 May 2009 04:53:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/select-inside-a-loop/m-p/5574252#M1271421</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-05-15T04:53:50Z</dc:date>
    </item>
  </channel>
</rss>

