IT干货网

【第二篇】SAP ABAP7.5x新语法之OPEN SQL

flyfish 2022年03月17日 SAP 215 0

当使用CDS实体的名称作为数据源访问SELECT中的CDS视图时,此视图在其SELECT列表中发布关联_assoc以供外部使用,则这些关联可用作路径表达式的根元素。同样的声明。在路径表达式中,关联名称_assoc1,_assoc2,...由反斜杠(\)分隔。必须在路径表达式中直接前缀关联的目标数据源中发布根元素之后指定的关联。路径表达式不能跨多行源代码分割。

使用路径表达式编译SELECT语句时,这些表达式表示的连接将隐式添加到语句的FROM子句中。在路径表达式出现时隐式评估生成的附加数据源。这符合连接条件和CDS视图的其他条件。关注公众号:SAP Technical。

CDS实体

可以使用路径表达式:

在SELECT语句中指定的列中。路径表达式表示左外连接(LEFT OUTER JOIN)。

作为SELECT语句中FROM子句的数据源。路径表达式表示内部联接(INNER JOIN)。

某些限制适用于Open SQL中的路径表达式关联。

@AbapCatalog.sqlViewName: 'SAP_Technical' 
 
@AccessControl.authorizationCheck: #NOT_REQUIRED 
 
define view sap_technical 
 
(_spfli_scarr, id, carrier, flight, departure, destination ) 
 
as select from spfli 
 
association [1..1] to scarr as _spfli_scarr 
 
on $projection.carrid = _spfli_scarr.carrid 
 
{ _spfli_scarr, 
 
key spfli.carrid, 
 
key _spfli_scarr.carrname, 
 
key spfli.connid, 
 
spfli.cityfrom, 
 
spfli.cityto }

程序调用

程序DEMO_CDS_ASSOCIATION使用以下SELECT语句和视图的简单路径\ __spfli_scarr,并将其与对以相同方式工作的数据的访问进行比较。

SELECT id, 
 
\_spfli_scarr-carrname AS carrier, 
 
flight, 
 
departure, 
 
destination 
 
FROM sap_technical 
 
INTO TABLE @DATA(result).

访问视图的完整SELECT列表的SELECT语句和访问具有相同类型的连接的视图的SELECT语句产生相同的结果。


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!