<?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: ​host variable in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427137#M1997671</link>
    <description>&lt;P&gt; Why don't we define '@werks and @lager and @s_sernr in my programme?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;TYPE-POOLS: slis.
TABLES: equi,eqbs,zrpp007,aufk.
DATA: gd_repid LIKE sy-repid.
DATA: i_grid_settings TYPE lvc_s_glay .
DATA: afield TYPE slis_fieldcat_alv.
DATA: fieldcat TYPE TABLE OF slis_fieldcat_alv WITH HEADER LINE.
DATA: layout TYPE slis_layout_alv.
DATA: l_pos TYPE i VALUE 1.
DATA:lcl_grid TYPE REF TO cl_gui_alv_grid.
DATA: i_values TYPE vrm_values WITH HEADER LINE.


TYPES: BEGIN OF ty_item,
         mark  TYPE char1,
         sel,
         werks LIKE eqbs-b_werk,
         lager LIKE eqbs-b_lager,
         matnr LIKE equi-matnr,
         sernr LIKE equi-sernr,
         lgobe LIKE t001l-lgobe,
         maktx LIKE makt-maktx,
         aufnr LIKE afko-aufnr,
         lgort TYPE lgort_d,
         lgobb LIKE t001l-lgobe,
         djhms LIKE zrpp014-djhms,
       END OF ty_item.
DATA: item TYPE STANDARD TABLE OF ty_item  WITH HEADER LINE.
DATA: lt_zrpp014 LIKE STANDARD TABLE OF zrpp014 WITH HEADER LINE.
**宏的定义
*DEFINE fill.
*  afield-col_pos = l_pos.
*  afield-fieldname = &amp;amp;1.
*  afield-seltext_l = &amp;amp;2.
*  afield-no_zero   = &amp;amp;3.
*  afield-key       = &amp;amp;4.
*  afield-edit      = &amp;amp;5.
*
*  append afield to fieldcat.
*  clear afield.
*  l_pos = l_pos + 1.
*END-OF-DEFINITION.

*二、声明查询屏幕
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: r1 RADIOBUTTON GROUP gr1 USER-COMMAND sele DEFAULT 'X'.
PARAMETERS: r2 RADIOBUTTON GROUP gr1.
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK blc WITH FRAME TITLE text-001.
PARAMETERS:
werks LIKE eqbs-b_werk OBLIGATORY DEFAULT '2200',
lager LIKE eqbs-b_lager OBLIGATORY DEFAULT '2201'.
SELECT-OPTIONS : s_sernr  FOR equi-sernr.
PARAMETERS  p_ywlx(16) AS LISTBOX VISIBLE LENGTH 12 OBLIGATORY   DEFAULT '1000'.   "lit 20210519
SELECTION-SCREEN END OF BLOCK blc.

INITIALIZATION.
  PERFORM f_init_cond.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ywlx.
  PERFORM f_search_help_ywlx.

START-OF-SELECTION.
  PERFORM frm_get_data.                 "获取数据
  IF item[] IS NOT INITIAL.
    PERFORM frm_show_data.
  ELSE.
    MESSAGE s001(00) WITH '没有查询到数据'.
  ENDIF.
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  FRM_GET_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM frm_get_data .
  IF r1 = 'X'."未打印
    IF p_ywlx = '2000'.   "lit 20210519
      SELECT
    eqbs~b_werk AS werks ,
    eqbs~b_lager AS lager,
    equi~matnr,
    equi~sernr
    INTO CORRESPONDING FIELDS OF TABLE @item
    FROM eqbs
    INNER JOIN equi ON eqbs~equnr = equi~equnr
    INNER JOIN zrpp007 ON zrpp007~sernr = equi~sernr
    INNER JOIN AUFK ON aufk~aufnr = zrpp007~aufnr
    WHERE eqbs~b_werk = @werks
    AND eqbs~b_lager = @lager
    AND equi~sernr IN @s_sernr
    AND aufk~auart = 'PP03'.
    ENDIF.
    IF p_ywlx = '1000'.
      SELECT
    eqbs~b_werk AS werks ,
    eqbs~b_lager AS lager,
    equi~matnr,
    equi~sernr
    INTO CORRESPONDING FIELDS OF TABLE @item
    FROM eqbs
    INNER JOIN equi ON eqbs~equnr = equi~equnr
    LEFT JOIN zrpp014 ON zrpp014~sernr = equi~sernr
    WHERE eqbs~b_werk = @werks
    AND eqbs~b_lager = @lager
    AND equi~sernr IN @s_sernr
    AND zrpp014~sernr IS NULL.
*    AND equi~sernr NOT IN
*      ( SELECT sernr FROM zrpp014 )."多年以后需要在这里添加限制条件
    ENDIF.
  ELSEIF r2 = 'X'."已打印
*    SELECT
*    eqbs~b_werk AS werks
*    eqbs~b_lager AS lager
*    equi~matnr
*    equi~sernr
*    INTO CORRESPONDING FIELDS OF TABLE item
*    FROM eqbs
*    INNER JOIN equi ON eqbs~equnr = equi~equnr
*    WHERE eqbs~b_werk = werks
*    AND eqbs~b_lager = lager
*    AND equi~sernr IN s_sernr
*    AND equi~sernr IN
*  ( SELECT sernr FROM zrpp014 ).

    SELECT
      werks
      lgfsb AS lager
      matnr
      sernr
      aufnr
      lgort
      djhms
      INTO CORRESPONDING FIELDS OF TABLE item
      FROM zrpp014
      WHERE werks = werks
      AND lgfsb = lager
      AND zbsat = 'S'
      AND sernr IN s_sernr.

  ENDIF.&amp;lt;br&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Thu, 20 May 2021 07:10:18 GMT</pubDate>
    <dc:creator>1190_5939_439</dc:creator>
    <dc:date>2021-05-20T07:10:18Z</dc:date>
    <item>
      <title>​host variable</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427132#M1997666</link>
      <description>&lt;P&gt;Hi Experts&lt;/P&gt;
  &lt;P&gt;I read host variable's definition in the sap help. but I don't understand it . Following is Definition.&lt;/P&gt;
  &lt;P&gt;ABAP data object (usually a variable) specified in an operand position of an Open SQL statement or of a statically embedded Native SQL statement. In Open SQL, a host variable must be prefixed with the escape character @; in Native SQL, with the escape character :. In ADBC, the placeholder ? (to which ABAP data objects are bound) is used instead of host variables.&lt;/P&gt;
  &lt;P&gt;why do I use host variable in the following code ?&lt;/P&gt; 
  &lt;PRE&gt;&lt;CODE&gt;  SELECT
    eqbs~b_werk AS werks ,
    eqbs~b_lager AS lager,
    equi~matnr,
    equi~sernr
    INTO CORRESPONDING FIELDS OF TABLE @item
    FROM eqbs
    INNER JOIN equi ON eqbs~equnr = equi~equnr
    LEFT JOIN zrpp014 ON zrpp014~sernr = equi~sernr
    WHERE eqbs~b_werk = @werks
    AND eqbs~b_lager = @lager
    AND equi~sernr IN @s_sernr
    AND zrpp014~sernr IS NULL.&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 18 May 2021 09:26:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427132#M1997666</guid>
      <dc:creator>1190_5939_439</dc:creator>
      <dc:date>2021-05-18T09:26:28Z</dc:date>
    </item>
    <item>
      <title>Re: ​host variable</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427133#M1997667</link>
      <description>&lt;P&gt;Hello  &lt;SPAN class="mention-scrubbed"&gt;1190_5939_439&lt;/SPAN&gt; &lt;/P&gt;&lt;P&gt;Host variables are used to transfer data from report to SQL query or from SQL query to report.&lt;/P&gt;&lt;P&gt;In your example you have both:&lt;/P&gt;&lt;P&gt;1.  @item - transfers data read in SQL query to report and allows report to access and process it&lt;/P&gt;&lt;P&gt;2.  @werks, @lager,  @s_sernr  - these transfer data from report to a SQL query this making its conditions dynamic. Without these you'd have to hardcode the WHERE condition's values and the SQL query would always return the same results.&lt;/P&gt;Kind regards,&lt;BR /&gt;Mateusz</description>
      <pubDate>Tue, 18 May 2021 09:29:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427133#M1997667</guid>
      <dc:creator>MateuszAdamus</dc:creator>
      <dc:date>2021-05-18T09:29:53Z</dc:date>
    </item>
    <item>
      <title>Re: ​host variable</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427134#M1997668</link>
      <description>&lt;P&gt;You are forced to use  @ because you're using commas(,) in the field list. If you omit those, you won't need the  @.&lt;/P&gt;&lt;P&gt;However, using  @ is good anyway - as it makes it clear what is a host variable. This becomes very important in some complex queries where it can become quite ambiguous.&lt;/P&gt;</description>
      <pubDate>Tue, 18 May 2021 11:41:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427134#M1997668</guid>
      <dc:creator>matt</dc:creator>
      <dc:date>2021-05-18T11:41:43Z</dc:date>
    </item>
    <item>
      <title>Re: ​host variable</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427135#M1997669</link>
      <description>&lt;P&gt;Hi Mateusz Expert&lt;/P&gt;&lt;P&gt;I have other one issue that how to have a fit name.  For example.  the host variables is '@item'.  and  '@werks' .  Why  don't  we use '@item1' and '@werks1' ?&lt;/P&gt;</description>
      <pubDate>Wed, 19 May 2021 01:57:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427135#M1997669</guid>
      <dc:creator>1190_5939_439</dc:creator>
      <dc:date>2021-05-19T01:57:35Z</dc:date>
    </item>
    <item>
      <title>Re: ​host variable</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427136#M1997670</link>
      <description>&lt;P&gt;You can call them anything you like, so long as they're defined somewhere.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;DATA item TYPE STANDARD TABLE OF...  
DATA werks TYPE marc-werks.
...
SELECT
    eqbs~b_werk AS werks ,
    eqbs~b_lager AS lager,
    equi~matnr,
    equi~sernr
    INTO CORRESPONDING FIELDS OF TABLE @item
    FROM eqbs
    INNER JOIN equi ON eqbs~equnr = equi~equnr
    LEFT JOIN zrpp014 ON zrpp014~sernr = equi~sernr
    WHERE eqbs~b_werk = @werks
    AND eqbs~b_lager = @lager
    AND equi~sernr IN @s_sernr
    AND zrpp014~sernr IS NULL.&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;or&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;DATA item1 TYPE STANDARD TABLE OF...  
DATA werks1 TYPE marc-werks. 
...
 SELECT
    eqbs~b_werk AS werks ,
    eqbs~b_lager AS lager,
    equi~matnr,
    equi~sernr
    INTO CORRESPONDING FIELDS OF TABLE @item1
    FROM eqbs
    INNER JOIN equi ON eqbs~equnr = equi~equnr
    LEFT JOIN zrpp014 ON zrpp014~sernr = equi~sernr
    WHERE eqbs~b_werk = @werks1
    AND eqbs~b_lager = @lager
    AND equi~sernr IN @s_sernr
    AND zrpp014~sernr IS NULL.&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;or&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;DATA guardians_of_the TYPE STANDARD TABLE OF...  
DATA galaxy_part_two TYPE marc-werks. 
...
 SELECT
    eqbs~b_werk AS werks ,
    eqbs~b_lager AS lager,
    equi~matnr,
    equi~sernr
    INTO CORRESPONDING FIELDS OF TABLE @guardians_of_the
    FROM eqbs
    INNER JOIN equi ON eqbs~equnr = equi~equnr
    LEFT JOIN zrpp014 ON zrpp014~sernr = equi~sernr
    WHERE eqbs~b_werk = @galaxy_part_two
    AND eqbs~b_lager = @lager
    AND equi~sernr IN @s_sernr
    AND zrpp014~sernr IS NULL.&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 19 May 2021 06:34:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427136#M1997670</guid>
      <dc:creator>matt</dc:creator>
      <dc:date>2021-05-19T06:34:33Z</dc:date>
    </item>
    <item>
      <title>Re: ​host variable</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427137#M1997671</link>
      <description>&lt;P&gt; Why don't we define '@werks and @lager and @s_sernr in my programme?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;TYPE-POOLS: slis.
TABLES: equi,eqbs,zrpp007,aufk.
DATA: gd_repid LIKE sy-repid.
DATA: i_grid_settings TYPE lvc_s_glay .
DATA: afield TYPE slis_fieldcat_alv.
DATA: fieldcat TYPE TABLE OF slis_fieldcat_alv WITH HEADER LINE.
DATA: layout TYPE slis_layout_alv.
DATA: l_pos TYPE i VALUE 1.
DATA:lcl_grid TYPE REF TO cl_gui_alv_grid.
DATA: i_values TYPE vrm_values WITH HEADER LINE.


TYPES: BEGIN OF ty_item,
         mark  TYPE char1,
         sel,
         werks LIKE eqbs-b_werk,
         lager LIKE eqbs-b_lager,
         matnr LIKE equi-matnr,
         sernr LIKE equi-sernr,
         lgobe LIKE t001l-lgobe,
         maktx LIKE makt-maktx,
         aufnr LIKE afko-aufnr,
         lgort TYPE lgort_d,
         lgobb LIKE t001l-lgobe,
         djhms LIKE zrpp014-djhms,
       END OF ty_item.
DATA: item TYPE STANDARD TABLE OF ty_item  WITH HEADER LINE.
DATA: lt_zrpp014 LIKE STANDARD TABLE OF zrpp014 WITH HEADER LINE.
**宏的定义
*DEFINE fill.
*  afield-col_pos = l_pos.
*  afield-fieldname = &amp;amp;1.
*  afield-seltext_l = &amp;amp;2.
*  afield-no_zero   = &amp;amp;3.
*  afield-key       = &amp;amp;4.
*  afield-edit      = &amp;amp;5.
*
*  append afield to fieldcat.
*  clear afield.
*  l_pos = l_pos + 1.
*END-OF-DEFINITION.

*二、声明查询屏幕
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: r1 RADIOBUTTON GROUP gr1 USER-COMMAND sele DEFAULT 'X'.
PARAMETERS: r2 RADIOBUTTON GROUP gr1.
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK blc WITH FRAME TITLE text-001.
PARAMETERS:
werks LIKE eqbs-b_werk OBLIGATORY DEFAULT '2200',
lager LIKE eqbs-b_lager OBLIGATORY DEFAULT '2201'.
SELECT-OPTIONS : s_sernr  FOR equi-sernr.
PARAMETERS  p_ywlx(16) AS LISTBOX VISIBLE LENGTH 12 OBLIGATORY   DEFAULT '1000'.   "lit 20210519
SELECTION-SCREEN END OF BLOCK blc.

INITIALIZATION.
  PERFORM f_init_cond.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ywlx.
  PERFORM f_search_help_ywlx.

START-OF-SELECTION.
  PERFORM frm_get_data.                 "获取数据
  IF item[] IS NOT INITIAL.
    PERFORM frm_show_data.
  ELSE.
    MESSAGE s001(00) WITH '没有查询到数据'.
  ENDIF.
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  FRM_GET_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM frm_get_data .
  IF r1 = 'X'."未打印
    IF p_ywlx = '2000'.   "lit 20210519
      SELECT
    eqbs~b_werk AS werks ,
    eqbs~b_lager AS lager,
    equi~matnr,
    equi~sernr
    INTO CORRESPONDING FIELDS OF TABLE @item
    FROM eqbs
    INNER JOIN equi ON eqbs~equnr = equi~equnr
    INNER JOIN zrpp007 ON zrpp007~sernr = equi~sernr
    INNER JOIN AUFK ON aufk~aufnr = zrpp007~aufnr
    WHERE eqbs~b_werk = @werks
    AND eqbs~b_lager = @lager
    AND equi~sernr IN @s_sernr
    AND aufk~auart = 'PP03'.
    ENDIF.
    IF p_ywlx = '1000'.
      SELECT
    eqbs~b_werk AS werks ,
    eqbs~b_lager AS lager,
    equi~matnr,
    equi~sernr
    INTO CORRESPONDING FIELDS OF TABLE @item
    FROM eqbs
    INNER JOIN equi ON eqbs~equnr = equi~equnr
    LEFT JOIN zrpp014 ON zrpp014~sernr = equi~sernr
    WHERE eqbs~b_werk = @werks
    AND eqbs~b_lager = @lager
    AND equi~sernr IN @s_sernr
    AND zrpp014~sernr IS NULL.
*    AND equi~sernr NOT IN
*      ( SELECT sernr FROM zrpp014 )."多年以后需要在这里添加限制条件
    ENDIF.
  ELSEIF r2 = 'X'."已打印
*    SELECT
*    eqbs~b_werk AS werks
*    eqbs~b_lager AS lager
*    equi~matnr
*    equi~sernr
*    INTO CORRESPONDING FIELDS OF TABLE item
*    FROM eqbs
*    INNER JOIN equi ON eqbs~equnr = equi~equnr
*    WHERE eqbs~b_werk = werks
*    AND eqbs~b_lager = lager
*    AND equi~sernr IN s_sernr
*    AND equi~sernr IN
*  ( SELECT sernr FROM zrpp014 ).

    SELECT
      werks
      lgfsb AS lager
      matnr
      sernr
      aufnr
      lgort
      djhms
      INTO CORRESPONDING FIELDS OF TABLE item
      FROM zrpp014
      WHERE werks = werks
      AND lgfsb = lager
      AND zbsat = 'S'
      AND sernr IN s_sernr.

  ENDIF.&amp;lt;br&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 20 May 2021 07:10:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427137#M1997671</guid>
      <dc:creator>1190_5939_439</dc:creator>
      <dc:date>2021-05-20T07:10:18Z</dc:date>
    </item>
    <item>
      <title>Re: ​host variable</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427138#M1997672</link>
      <description>&lt;P&gt;It is defined. It's werks and lager parameters, and s_sernr select options.&lt;/P&gt;&lt;P&gt;Here is something for you to read about the host variables: &lt;A href="https://help.sap.com/doc/abapdocu_750_index_htm/7.50/en-US/abenopen_sql_host_variables.htm" target="test_blank"&gt;https://help.sap.com/doc/abapdocu_750_index_htm/7.50/en-US/abenopen_sql_host_variables.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Kind regards,&lt;/P&gt;&lt;P&gt;Mateusz&lt;/P&gt;</description>
      <pubDate>Thu, 20 May 2021 07:39:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/host-variable/m-p/12427138#M1997672</guid>
      <dc:creator>MateuszAdamus</dc:creator>
      <dc:date>2021-05-20T07:39:19Z</dc:date>
    </item>
  </channel>
</rss>

