<?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 Dynamic where clause with loop statement in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922868#M383289</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all, &lt;/P&gt;&lt;P&gt;is it possible to use a dynamic where clause with a loop statement?&lt;/P&gt;&lt;P&gt;Can you please advise me, how the syntax needs to be?&lt;/P&gt;&lt;P&gt;Thanks for your suggestions, &lt;/P&gt;&lt;P&gt;kind regards, Kathrin!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 06 Feb 2007 13:54:39 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-02-06T13:54:39Z</dc:date>
    <item>
      <title>Dynamic where clause with loop statement</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922868#M383289</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all, &lt;/P&gt;&lt;P&gt;is it possible to use a dynamic where clause with a loop statement?&lt;/P&gt;&lt;P&gt;Can you please advise me, how the syntax needs to be?&lt;/P&gt;&lt;P&gt;Thanks for your suggestions, &lt;/P&gt;&lt;P&gt;kind regards, Kathrin!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Feb 2007 13:54:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922868#M383289</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-06T13:54:39Z</dc:date>
    </item>
    <item>
      <title>Re: Dynamic where clause with loop statement</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922869#M383290</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kathrin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;           If u are in ECC 6.0, please go through the code...&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;          REPORT  zdynamic_select.&lt;/P&gt;&lt;P&gt;TYPES:&lt;/P&gt;&lt;P&gt;  BEGIN OF ty_sales,&lt;/P&gt;&lt;P&gt;    vbeln  TYPE vbak-vbeln,            " Sales document&lt;/P&gt;&lt;P&gt;    posnr  TYPE vbap-posnr,            " Sales document item&lt;/P&gt;&lt;P&gt;    matnr  TYPE vbap-matnr,            " Material number&lt;/P&gt;&lt;P&gt;    arktx  TYPE vbap-arktx,            " Short text for sales order item&lt;/P&gt;&lt;P&gt;    kwmeng TYPE vbap-kwmeng,           " Order quantity&lt;/P&gt;&lt;P&gt;    vkorg TYPE vbak-vkorg,             " Sales organization&lt;/P&gt;&lt;P&gt;    kunnr TYPE vbak-kunnr,             " Sold-to party&lt;/P&gt;&lt;P&gt;    netwr TYPE vbak-netwr,             " Net Value of the Sales Order&lt;/P&gt;&lt;P&gt;  END OF ty_sales.&lt;/P&gt;&lt;P&gt;DATA :&lt;/P&gt;&lt;P&gt;  gt_sales TYPE STANDARD TABLE OF ty_sales,&lt;/P&gt;&lt;P&gt;  wa_sales TYPE ty_sales.&lt;/P&gt;&lt;P&gt;DATA: ob_select TYPE REF TO cl_rs_where.&lt;/P&gt;&lt;P&gt;DATA: ob_from   TYPE REF TO cl_rs_where.&lt;/P&gt;&lt;P&gt;DATA: ob_where  TYPE REF TO cl_rs_where,&lt;/P&gt;&lt;P&gt;      gv_source TYPE abapsource.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Step 1 : Prepare the select fields.&lt;/P&gt;&lt;P&gt;  PERFORM zf_build_select.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Step 2 : Build the from clause for the select&lt;/P&gt;&lt;P&gt;  PERFORM zf_build_from.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Step 3 : Build the where clause for the select&lt;/P&gt;&lt;P&gt;  PERFORM zf_build_where.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Step 4 : Execute the dynamic select&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT (ob_select-&amp;gt;n_t_where)&lt;/P&gt;&lt;P&gt;      FROM (ob_from-&amp;gt;n_t_where)&lt;/P&gt;&lt;P&gt;        INTO CORRESPONDING FIELDS OF TABLE gt_sales&lt;/P&gt;&lt;P&gt;        WHERE (ob_where-&amp;gt;n_t_where).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gt_sales INTO wa_sales.&lt;/P&gt;&lt;P&gt;    WRITE :   /5 wa_sales-vbeln,&lt;/P&gt;&lt;P&gt;              15 wa_sales-vkorg,&lt;/P&gt;&lt;P&gt;              20 wa_sales-kunnr,&lt;/P&gt;&lt;P&gt;              40 wa_sales-netwr,&lt;/P&gt;&lt;P&gt;              50 wa_sales-posnr,&lt;/P&gt;&lt;P&gt;              60 wa_sales-matnr,&lt;/P&gt;&lt;P&gt;              70 wa_sales-arktx,&lt;/P&gt;&lt;P&gt;              90 wa_sales-kwmeng.&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;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  zf_build_select&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;FORM zf_build_select .&lt;/P&gt;&lt;P&gt;  CREATE OBJECT ob_select.&lt;/P&gt;&lt;P&gt;*********************************************************&lt;/P&gt;&lt;P&gt;*Build the table name/field name combination&lt;/P&gt;&lt;P&gt;*Add Sales order header fields&lt;/P&gt;&lt;P&gt;  CLEAR gv_source.&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_rs_where=&amp;gt;build_tabname_fieldname&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_tabname   = 'VBAK'&lt;/P&gt;&lt;P&gt;      i_fieldname = 'VBELN'&lt;/P&gt;&lt;P&gt;      i_sign      = '~'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_combined  = gv_source.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Add the where line&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_select-&amp;gt;add_line&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_line = gv_source.&lt;/P&gt;&lt;P&gt;  CLEAR gv_source.&lt;/P&gt;&lt;P&gt;************************************************************&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_rs_where=&amp;gt;build_tabname_fieldname&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_tabname   = 'VBAK'&lt;/P&gt;&lt;P&gt;      i_fieldname = 'VKORG'&lt;/P&gt;&lt;P&gt;      i_sign      = '~'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_combined  = gv_source.&lt;/P&gt;&lt;P&gt;*Add the where line&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_select-&amp;gt;add_line&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_line = gv_source.&lt;/P&gt;&lt;P&gt;  CLEAR gv_source.&lt;/P&gt;&lt;P&gt;************************************************************&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_rs_where=&amp;gt;build_tabname_fieldname&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_tabname   = 'VBAK'&lt;/P&gt;&lt;P&gt;      i_fieldname = 'KUNNR'&lt;/P&gt;&lt;P&gt;      i_sign      = '~'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_combined  = gv_source.&lt;/P&gt;&lt;P&gt;*Add the where line&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_select-&amp;gt;add_line&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_line = gv_source.&lt;/P&gt;&lt;P&gt;  CLEAR gv_source.&lt;/P&gt;&lt;P&gt;************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_rs_where=&amp;gt;build_tabname_fieldname&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_tabname   = 'VBAK'&lt;/P&gt;&lt;P&gt;      i_fieldname = 'NETWR'&lt;/P&gt;&lt;P&gt;      i_sign      = '~'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_combined  = gv_source.&lt;/P&gt;&lt;P&gt;*Add the where line&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_select-&amp;gt;add_line&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_line = gv_source.&lt;/P&gt;&lt;P&gt;************************************************************&lt;/P&gt;&lt;P&gt;*Add Sales order item fields&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_rs_where=&amp;gt;build_tabname_fieldname&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_tabname   = 'VBAP'&lt;/P&gt;&lt;P&gt;      i_fieldname = 'POSNR'&lt;/P&gt;&lt;P&gt;      i_sign      = '~'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_combined  = gv_source.&lt;/P&gt;&lt;P&gt;*Add the where line&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_select-&amp;gt;add_line&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_line = gv_source.&lt;/P&gt;&lt;P&gt;  CLEAR gv_source.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_rs_where=&amp;gt;build_tabname_fieldname&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_tabname   = 'VBAP'&lt;/P&gt;&lt;P&gt;      i_fieldname = 'MATNR'&lt;/P&gt;&lt;P&gt;      i_sign      = '~'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_combined  = gv_source.&lt;/P&gt;&lt;P&gt;*Add the where line&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_select-&amp;gt;add_line&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_line = gv_source.&lt;/P&gt;&lt;P&gt;  CLEAR gv_source.&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_rs_where=&amp;gt;build_tabname_fieldname&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_tabname   = 'VBAP'&lt;/P&gt;&lt;P&gt;      i_fieldname = 'ARKTX'&lt;/P&gt;&lt;P&gt;      i_sign      = '~'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_combined  = gv_source.&lt;/P&gt;&lt;P&gt;*Add the where line&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_select-&amp;gt;add_line&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_line = gv_source.&lt;/P&gt;&lt;P&gt;  CLEAR gv_source.&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_rs_where=&amp;gt;build_tabname_fieldname&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_tabname   = 'VBAP'&lt;/P&gt;&lt;P&gt;      i_fieldname = 'KWMENG'&lt;/P&gt;&lt;P&gt;      i_sign      = '~'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_combined  = gv_source.&lt;/P&gt;&lt;P&gt;*Add the where line&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_select-&amp;gt;add_line&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_line = gv_source.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " zf_build_select&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  zf_build_from&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;FORM zf_build_from .&lt;/P&gt;&lt;P&gt;  CREATE OBJECT ob_from.&lt;/P&gt;&lt;P&gt;*Add opening bracket&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_from-&amp;gt;add_opening_bracket&lt;/P&gt;&lt;P&gt;    .&lt;/P&gt;&lt;P&gt;  CLEAR gv_source.&lt;/P&gt;&lt;P&gt;*Add the join condition.This can be made&lt;/P&gt;&lt;P&gt;*fully dynamic as per your requirement&lt;/P&gt;&lt;P&gt;  gv_source = 'VBAK AS VBAK INNER JOIN VBAP AS VBAP'.&lt;/P&gt;&lt;P&gt;*Add the where line&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_from-&amp;gt;add_line&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_line = gv_source.&lt;/P&gt;&lt;P&gt;  CLEAR gv_source.&lt;/P&gt;&lt;P&gt;*Add the join condition.This can be made&lt;/P&gt;&lt;P&gt;*fully dynamic as per your requirement&lt;/P&gt;&lt;P&gt;  gv_source = 'ON VBAK&lt;SUB&gt;VBELN = VBAP&lt;/SUB&gt;VBELN'.&lt;/P&gt;&lt;P&gt;*Add the where line&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_from-&amp;gt;add_line&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_line = gv_source.&lt;/P&gt;&lt;P&gt;*Add the closing bracket&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_from-&amp;gt;add_closing_bracket&lt;/P&gt;&lt;P&gt;    .&lt;/P&gt;&lt;P&gt;ENDFORM.                    " zf_build_from&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  zf_build_where&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;FORM zf_build_where .&lt;/P&gt;&lt;P&gt;  DATA :&lt;/P&gt;&lt;P&gt;  lv_field TYPE REF TO data,&lt;/P&gt;&lt;P&gt;  lv_field_low TYPE REF TO data,&lt;/P&gt;&lt;P&gt;  lv_field_high TYPE REF TO data.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT ob_where.&lt;/P&gt;&lt;P&gt;*Add the field VBELN : Sales Document&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Use this method if you want to assign a single value to a field&lt;/P&gt;&lt;P&gt;*Set the value for VBELN : Sales Document Number&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; CALL METHOD ob_where-&amp;gt;add_field&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_fieldnm  = 'VBAK~VBELN'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_operator = '='&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_intlen   = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_datatp   = 'CHAR'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     e_r_field  = lv_field.&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; CALL METHOD ob_where-&amp;gt;set_value_for_field&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_fieldnm = 'VBAK~VBELN'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_value   = '0000120020'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;********************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Use this method if you want to assign a range of values&lt;/P&gt;&lt;P&gt;*Set a range for the Sales Document number&lt;/P&gt;&lt;P&gt;********************************************************************&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_where-&amp;gt;add_field_between_2values&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_fieldnm      = 'VBAK~VBELN'&lt;/P&gt;&lt;P&gt;      i_intlen       = 10&lt;/P&gt;&lt;P&gt;      i_datatp       = 'CHAR'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_r_field_low  = lv_field_low&lt;/P&gt;&lt;P&gt;      e_r_field_high = lv_field_high.&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_where-&amp;gt;set_2values_for_field&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_fieldnm    = 'VBAK~VBELN'&lt;/P&gt;&lt;P&gt;      i_value_low  = '0000120020'&lt;/P&gt;&lt;P&gt;      i_value_high = '0000120067'.&lt;/P&gt;&lt;P&gt;**********************************************************************&lt;/P&gt;&lt;P&gt;*Set the 'AND' Clause&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_where-&amp;gt;add_and.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Add the field MATNR : Material&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_where-&amp;gt;add_field&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_fieldnm  = 'MATNR'&lt;/P&gt;&lt;P&gt;      i_operator = '='&lt;/P&gt;&lt;P&gt;      i_intlen   = 18&lt;/P&gt;&lt;P&gt;      i_datatp   = 'CHAR'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_r_field  = lv_field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Set the value for the Material field&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_where-&amp;gt;set_value_for_field&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_fieldnm = 'MATNR'&lt;/P&gt;&lt;P&gt;      i_value   = '000000000050111000'.&lt;/P&gt;&lt;P&gt;*Set the 'AND' Clause&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_where-&amp;gt;add_and&lt;/P&gt;&lt;P&gt;    .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Add the field VKORG&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_where-&amp;gt;add_field&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_fieldnm  = 'VKORG'&lt;/P&gt;&lt;P&gt;      i_operator = '='&lt;/P&gt;&lt;P&gt;      i_intlen   = 4&lt;/P&gt;&lt;P&gt;      i_datatp   = 'CHAR'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_r_field  = lv_field.&lt;/P&gt;&lt;P&gt;*Set the value for VKORG : Sales Organization&lt;/P&gt;&lt;P&gt;  CALL METHOD ob_where-&amp;gt;set_value_for_field&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_fieldnm = 'VKORG'&lt;/P&gt;&lt;P&gt;      i_value   = 'GMUS'.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " zf_build_where&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Feb 2007 04:32:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922869#M383290</guid>
      <dc:creator>Shivaji16</dc:creator>
      <dc:date>2007-02-07T04:32:41Z</dc:date>
    </item>
    <item>
      <title>Re: Dynamic where clause with loop statement</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922870#M383291</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you are already working an 6.40 (or higher) than you can simply concatenate the &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;WHERE&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt; condition into a string and code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;DATA:
  gd_where_conditions  TYPE string.
 
SELECT * FROM ...
   WHERE ( gd_where_conditions ).&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, if you are working on 6.20 (or less) than you could use the following function module to create your dynamic &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;WHERE&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt; condition(s): &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;RH_DYNAMIC_WHERE_BUILD&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The function module returns the &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;WHERE&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt; conditions in &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;CONDTAB&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;. Thus, you could code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;TYPES: BEGIN OF ty_s_clause.
TYPES:   line(72)  TYPE c.
TYPES: END OF ty_s_clause.
DATA:
  gt_where_clauses  TYPE STANDARD TABLE OF ty_s_clause
                    WITH DEFAULT KEY.
DATA:
  gt_condtab     TYPE STANDARD TABLE OF hrcond.
 
* Fill gt_condtab with the required conditions
  CALL FUNCTION 'RH_DYNAMIC_WHERE_BUILD'
       EXPORTING
            dbtable         = space " can be empty
       TABLES
            condtab         = gt_condtab
            where_clause    = gt_where_clauses
       EXCEPTIONS
            empty_condtab   = 01
            no_db_field     = 02
            unknown_db      = 03
            wrong_condition = 04.
 
* Select your data
  SELECT * FROM ...
    WHERE (gt_where_clauses).&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;Anver&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Feb 2007 04:39:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922870#M383291</guid>
      <dc:creator>anversha_s</dc:creator>
      <dc:date>2007-02-07T04:39:25Z</dc:date>
    </item>
    <item>
      <title>Re: Dynamic where clause with loop statement</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922871#M383292</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Kathrin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I assume that both answers thus far have not yet met your point. You are looking for a piece of code like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt; LOOP AT itab INTO ls_record
                      WHERE ( &amp;lt;dynamic clause&amp;gt; ).
...
 ENDLOOP.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The short answer is: this is &amp;lt;b&amp;gt;not possible&amp;lt;/b&amp;gt; since the LOOP statement wants to know the static type of the fields used in the WHERE clause. You can also search the forum (&amp;lt;i&amp;gt;dynamic AND where AND clause&amp;lt;/i&amp;gt;) where you will find many threads confirming this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;  Uwe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Feb 2007 04:44:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922871#M383292</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2007-02-07T04:44:24Z</dc:date>
    </item>
    <item>
      <title>Re: Dynamic where clause with loop statement</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922872#M383293</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi kathrin , &lt;/P&gt;&lt;P&gt;As per ur posting , it is possible to have dynamic where clause in the loop statement. Following is the snippet .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;tables: kna1.&lt;/P&gt;&lt;P&gt;data: begin of itab occurs 0,&lt;/P&gt;&lt;P&gt;         nam like kna1-name1,&lt;/P&gt;&lt;P&gt;         snam like kna1-name2,&lt;/P&gt;&lt;P&gt;        kunnr like kna1-kunnr,&lt;/P&gt;&lt;P&gt;        end of itab.&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;Here at first we have to make an entry mannualyinto itab&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;nam = 'kath'.&lt;/P&gt;&lt;P&gt;snam='Guth'.&lt;/P&gt;&lt;P&gt;kunnr='4384'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select name1 name2 kunnr from kna1 into itab where &amp;lt;your condition on kna1&amp;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;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But , onething i wud like to add here, it ios not agood approach to use selec t statement in Looop because i thits the databse evrytime and reduces the performance of the system.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i hope this solves 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;Note: Reward if useful&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Feb 2007 04:46:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922872#M383293</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-07T04:46:07Z</dc:date>
    </item>
    <item>
      <title>Re: Dynamic where clause with loop statement</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922873#M383294</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;you can declare an internal table like :&lt;/P&gt;&lt;P&gt;data: begin of i_flds occurs 0,&lt;/P&gt;&lt;P&gt;          str(132),&lt;/P&gt;&lt;P&gt;        end of i_flds.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Append the where clause into this internal table, for eg:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     concatenate 'matnr = ' p_matnr  into i_flds-str.&lt;/P&gt;&lt;P&gt; "assuming p_matnr is a parameter value&lt;/P&gt;&lt;P&gt;     append i_flds.&lt;/P&gt;&lt;P&gt;     clear i_flds.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     concatenate ' and werks = ' p_werks into i_flds-str.&lt;/P&gt;&lt;P&gt;     append i_flds.&lt;/P&gt;&lt;P&gt;     clear i_flds.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   In the select query's Where class write:&lt;/P&gt;&lt;P&gt;    SELECT ........&lt;/P&gt;&lt;P&gt;      where (i_flds).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Subramanian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Feb 2007 04:53:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922873#M383294</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-07T04:53:04Z</dc:date>
    </item>
    <item>
      <title>Re: Dynamic where clause with loop statement</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922874#M383295</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;thank you very much for all your help, I appreciate the many helpful answers. I was roughly familiar with the dynamic where clause for select statements, but was looking for a similiar solution for a loop statement (to avoid select-loops and performance problems that go along with it...). Anyways, I learned a lot about more elegant ways to build dynamic where clauses, thanks.&lt;/P&gt;&lt;P&gt;cheers, Kathrin!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Feb 2007 08:51:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-where-clause-with-loop-statement/m-p/1922874#M383295</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-08T08:51:52Z</dc:date>
    </item>
  </channel>
</rss>

