大家好,
我想用一个简单的例子来解释7.40环境下abapcds视图中的关联。在这个例子中,我将不集中在理论上,我们将只取3个表,并试图显示关联性。
让我们取一个问题陈述
问题陈述–"需要所有在数据库中有有效地址的员工的详细信息,无论是永久的还是临时的"
我们有3个表
Z222422\U EMP\U BASE
一个员工记录的基表,包含以下记录:
Z222422\U EMP\U ORG–包含员工组织详细信息
ORG data table包含以下条目
Z222422\U EMP\U ADD–包含员工地址信息
table包含条目:
我们可以通过join语句来实现。所有表上的左外联接将满足结果。
(基表和组织表将有1对1基数,好评返现图片,因为员工必须有组织数据)
让我们看看这些语句是如何在DB中转换的(正如我们在查询中放置左外联接时所期望的)
现在让我们从关联开始同样的事情:
首先我们将获取员工和组织详细信息。创建一个关联的CDS视图。
选择列表包含3个字段和关联名称。
数据源-这里的数据源是Z222422\u EMP\u BASE,目标数据源是Z222422\u EMP\u ORG。连接键条件可以在ON后看到。
基数-在方括号中定义。1..1表示1个职员有1个组织数据。或者1个职员属于1个组织数据,
0..1–表示=源数据源可以有0行,大数据与应用,北京大数据公司有哪些,目标数据源可以有1行,职员可以属于0个或1个组织数据。0..1可以写成1
0..*–表示–职员可以属于0或任意数量的组织数据
最后一条语句为其他视图公开关联,如果我们不公开关联并尝试在其他视图中使用,则该视图中会出现语法错误。在选择列表中声明就像"公开"它不是私有的
如果我们选中快速大纲,它会显示如下(右键单击并选择快速大纲)
我们也可以在同一视图中使用关联元素,哪个云服务器好,但是如果我们公开关联,将发出警告–"使用关联基础组织可能导致循环依赖"
当关联遇到路径表达式时,关联将转换为联接。
让我们看看何时基础组织_组织名称已经在select list
SQL create statement
中使用,现在让我们检查create statement when\u BASE\u ORG is exposed but no path表达式已被使用,表示我们在同一视图中没有使用关联元素
请看语句中的差异
执行ZCDSV\U BASE\U ORG显示基表的所有行
现在是建模第二视图的时候了。此视图使用第一个视图作为目标数据源
如果我们选中create statement–
Execute-
Final view MODALING:
现在我们有两个视图从DB表中读取数据。我们将在最终视图中使用路径表达式
我们只需要用点连接,我们可以看到如下的关联
创建语句
我们可以看到关联被转换为外部连接。默认情况下,它总是左外连接。
如果我们想在最终视图中添加任何条件,数据库大数据,我们可以添加如下:
问题陈述-仅指定的获取地址=SSE
这里我们给出了视图中的条件-在路径表达式中,这就是关联的力量。我们不需要知道初始视图的连接/数据源。
执行–
查看create语句如何更改
我们也可以在Where子句中使用路径表达式。在ABAP7.5中,我们还可以在漂亮的ABAP报告中使用关联。我希望这个例子能对初学者有所帮助。