云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

美国服务器_意甲数据库_便宜的

小七 141 0

简介

这个博客介绍了如何使用Table函数将ABAP层的select options特性下推到cd上。在阅读这篇短文之前,我建议你先浏览一下AMDP处理select options

我们在SCN和其他论坛上看到了很多关于如何在AMDP、cd等中使用select options的问题。select options不是SQL特性。这是一个ABAP(或opensql)特性,SQL脚本无法理解。所以,云购网,想把这个select选项变量(范围)直接推到DB层是不可能的。

实现

我们能做什么?SQL唯一能理解的过滤技术是使用where子句。在select options中,我们有许多传递输入的选项,如EQ、NE、CP、BETWEEN等。如果我们能将这些选项转换成SQL所理解的where子句,我们就可以在DB层动态执行它。

是的,但只能在投影完数据之后在外层执行,就像我们在ABAP中所做的那样。也就是说,在使用ABAP层的CD时,可以使用range变量。但这不是我们所看到的。我们需要将其下推到DB层。

让我们先创建一个表函数,获取材料列表及其文本。

此表函数接受字符串作为参数,并返回材料编号和文本。

在相应的实现中,我们使用SQL中的APPLY\ FILTER函数来应用动态where子句。因此,在table函数的sel\u opt参数中,我们应该传递一个与select选项对应的动态where子句。

这里,淘客助手,过滤器应用于mara table,返回的结果集保存在一个变量中以供进一步使用。

这里发生的是,

abap程序有一个选择屏幕,材料编号作为选择选项。

CL\U SHDB\U SELTAB和它的静态方法combine\U sel\U tabs根据我们传递的选择选项变量返回一个动态where子句。

我们可以一起指定多个字段及其范围变量。当目标投影中的所有指定列都可用时,必须执行此操作。(我们可以同时指定MATNR、ERSDA和MATKL,因为所有这些字段在MARA表中都是可用的)。

客户列名是可选参数。如果我们传递了这个字段,客户字段也会添加到动态where子句中。

我在选择屏幕中传递了2个物料编号,现在生成的where子句是

,我们将把这个值(where子句)传递给我们创建的table函数。

where子句在DB层执行,云翌通信,数据被过滤。

现在,我对table函数中的SQL脚本代码做了一个小改动。现在投影的列有了新的名称。

现在我们在一个变量上应用过滤器,该变量有Client、Material、lang和Description字段。因此,移动物联网,将dynamic where子句改为

apply\u filter函数接受范围内的表、视图或表变量,云服务器 免费,并应用dynamic where子句。