ABAP 中的数据库视图

17 Mar 2025 | 4 分钟阅读
  • 如果通过使用内连接组合字段在**一个或多个表**上创建视图,则此类视图称为**数据库视图**。由于此视图使用内连接,它仅组合表中的匹配记录。
  • 数据库视图为应用程序对象的应用程序特定视图提供了数据,这些数据分布在不同的表之间。
  • 在此视图中,我们无法对表数据执行任何维护操作;相反,我们只能读取数据。
  • 数据库视图在 ABAP 字典中指定,并且在激活视图时,数据库视图会自动在底层数据库中创建。
  • 我们还可以借助**数据库接口**在 ABAP 程序中查看数据库视图的数据。可以使用 OPEN SQL 和 NATIVE SQL 在程序中访问数据。
  • 此视图可以包含来自表的某些字段的数据,也可以包含整个表的数据。

注意:此视图中使用的连接条件可以使用任何基本字段之间的等价关系来应用。但在其他视图类型(维护、帮助和投影视图)中,连接条件必须使用外键关系来实现。

下图解释了 ABAP 数据库视图的工作原理

Database Views in ABAP

数据库视图的主要功能

  • 如果视图包含多个表,那么它只允许我们读取数据,但如果视图只包含一个表,则可以检查维护状态以查找是否也可以将数据插入到视图表中。
  • 如果我们想同时从不同的表中选择逻辑连接的数据,那么我们需要创建数据库视图。
  • 此视图只能组合透明表,因为它是在数据库中实现的。

创建数据库视图

以下是用于在 SAP ABAP 中创建数据库视图的步骤

**步骤 1:**通过导航菜单路径或在命令字段中输入事务代码 SE11 来打开数据字典初始屏幕。

**步骤 2:**单击**视图**选项前面的单选按钮,并为视图命名,然后单击屏幕上给出的**创建**按钮。

Database Views in ABAP

**步骤 4:**将出现一个弹出窗口,其中包含所有视图,从此处选择“**数据库视图**”并单击**复制**按钮。

Database Views in ABAP

**步骤 5:**将出现一个视图维护屏幕,其中包含多个选项卡,首先在字段“**简短描述**”中提供描述。考虑下图

Database Views in ABAP

在上面的屏幕中,首先,我们将选择**表/连接条件**选项卡,并将提供我们要链接的表名(基本表)。在我们的示例中,我们将使用两个 SAP 标准表,即**MARA**和**MARC**。输入表名后,我们需要单击**关系**按钮。考虑下图

Database Views in ABAP

**步骤:7**- 当我们单击“关系”按钮时,将显示与基本表 (MARA) 具有外键关系的所有表。考虑下图

Database Views in ABAP

作为另一个表,我们选择了**MARC**(SAP 标准表),并单击了屏幕底部给出的“复制”按钮。

**步骤 8:**一旦我们选择了 MARC 表,所有连接条件字段名称都将自动填充。考虑下图

Database Views in ABAP

**步骤 9:**现在,我们将移至下一个选项卡,即**视图字段**,以选择我们要显示的两个表的字段。考虑下图

Database Views in ABAP

**步骤 10:**要选择每个表的字段,我们需要单击屏幕上给出的**表字段**按钮(请参见上图)。它将打开一个新弹出窗口,其中包含两个表名 (MARA 和 MARC)。我们将一次选择一个表,并选择每个表所需的字段。

Database Views in ABAP

**步骤 11:**一旦我们单击屏幕底部的**选择**按钮,它将打开所选表的所有字段,从中我们可以选择所需的字段。考虑下图

Database Views in ABAP

选择字段后,单击**复制**按钮。 同样,我们将选择另一个表 (MARC) 的字段。

**步骤 12:**选择完两个表的所有所需字段后,将视图保存为**本地对象**并激活视图**(CTRL+F3**),或单击**激活**按钮。考虑下图

Database Views in ABAP

**步骤 13:**激活窗口将打开,选择视图,然后单击绿色勾号。

Database Views in ABAP

**步骤 14:**现在,我们可以使用数据库视图显示我们选择的记录。为此,请单击屏幕上给出的**内容** (CTRL+SHIFT+F10) 选项。一旦我们单击内容选项,它将打开如下所示的选择屏幕

Database Views in ABAP

在上面,我们可以看到我们从这两个表中选择的所有表字段都已显示。我们可以在特定记录的字段中填写详细信息,或者可以使用上图中的**执行**按钮查看所有记录。它将显示所有记录,请考虑下图

Database Views in ABAP
下一主题ABAP 投影视图