将 SAP 查询参数转换为 EXECQUERY 命令

说明查询的参数如何转换为 EXECQUERY 命令文本。 本主题使用自定义 SAP 查询的示例,ZQUERY_TST_NEW。

在 SAP GUI 中打开查询

执行以下步骤,在 SAP 中打开查询。 此处提供的步骤适用于ZQUERY_TST_NEW查询,特定于 SAP 版本。

  1. 运行事务 SQ01。

  2. 在“ 用户组中的查询 ”页中,单击“ 快速查看器”。

  3. “快速查看器 ”页的“ 快速视图 ”文本框中,键入 ZQUERY_TST_NEW,然后单击“ 显示”。

  4. 在“ 快速查看器 ”页中,单击“ 选择字段 ”选项卡列出查询中的所有参数。

    下图显示了查询定义中的所有参数。

    SAP 查询sap_query_param_types的参数列表

  5. 单击执行。 以下页面正在显示。

    提供 SAP 查询sap_query_all_params的参数值

  6. 单击黄色箭头以定义每个参数。 可以定义特定的允许/不可允许的值,也可以定义允许/不可允许的值范围。 必须根据每个参数的 SAP GUI 中配置的值指定 EXECQUERY 语法。

    下一部分提供了有关如何在 SAP GUI 中定义值以及如何将这些值转换为 EXECQUERY 语法的说明。

构建 EXECQUERY 语法

让我们根据查询定义中定义的参数值来了解 EXECQUERY 语法的外观。 为了了解这一点,我们将展示为第一个参数( 两位数数字)配置的值如何转换为 ZQUERY_TST_NEW 查询的示例。

首先,假设 “单个值” 选项卡中的数值(带有绿色点)的定义如以下截图所示:

查询可以采用的参数值列表

注释

单击 两位数数字 参数的黄色箭头后,将显示此对话框。

在这种情况下,EXECQUERY 语法如下所示:

EXECQUERY ZQUERY_TST_NEW @USERGROUP='mygroup', @P1 = '2', @P1 = '3', @P1 = '5'  

对于同一查询,除了在单个值选项卡(带有绿色点)的值外,还可以在单个值选项卡(带有红色点)的值定义为如下:

查询不能采用的参数值列表

在这种情况下,EXECQUERY 语法如下所示:

EXECQUERY ZQUERY_TST_NEW @USERGROUP='mygroup', @P1 = '2', @P1 = '3', @P1 = '5', NOT @P1 = '6', NOT @P1 = '8'  

现在,如果将值添加到 “范围 ”选项卡(带有绿点),如以下屏幕截图所示:

查询可以采用 的参数值范围

EXECQUERY 语法如下所示:

EXECQUERY ZQUERY_TST_NEW @USERGROUP='mygroup', @P1 = '2', @P1 = '3', @P1 = '5', NOT @P1 = '6', NOT @P1 = '8', @P1 BETWEEN '2' and '5'  

同样,如果将值添加到 “范围 ”选项卡(带红点),如以下屏幕截图所示:

查询不能采用的参数值范围

EXECQUERY 语法如下所示:

EXECQUERY ZQUERY_TST_NEW @USERGROUP='mygroup', @P1 = '2', @P1 = '3', @P1 = '5', NOT @P1 = '6', NOT @P1 = '8', @P1 BETWEEN '2' and '5', NOT @P1 BETWEEN '6' AND '8'  

为简单和理解,本主题只讨论第一个参数,两位数。 可以使用类似的方法来确定为其他参数定义的值如何转换为 EXECQUERY 语法。