前言部分
当使用CDS实体的名称作为数据源访问SELECT中的CDS视图时,此视图在其SELECT列表中发布关联_assoc以供外部使用,则这些关联可用作路径表达式的根元素。同样的声明。在路径表达式中,关联名称_assoc1,_assoc2,...由反斜杠()分隔。必须在路径表达式中直接前缀关联的目标数据源中发布根元素之后指定的关联。路径表达式不能跨多行源代码分割。
使用路径表达式编译SELECT语句时,这些表达式表示的连接将隐式添加到语句的FROM子句中。在路径表达式出现时隐式评估生成的附加数据源。这符合连接条件和CDS视图的其他条件。关注公众号:SAP Technical。
CDS实体
可以使用路径表达式:
在SELECT语句中指定的列中。路径表达式表示左外连接(LEFT OUTER JOIN)。
作为SELECT语句中FROM子句的数据源。路径表达式表示内部联接(INNER JOIN)。
某些限制适用于Open SQL中的路径表达式关联。
代码语言:javascript复制@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,并将其与对以相同方式工作的数据的访问进行比较。
代码语言:javascript复制SELECT id,
_spfli_scarr-carrname AS carrier,
flight,
departure,
destination
FROM sap_technical
INTO TABLE @DATA(result).
访问视图的完整SELECT列表的SELECT语句和访问具有相同类型的连接的视图的SELECT语句产生相同的结果。