您的当前位置:首页SAP-ABAP-逻辑数据库(创建和维护以及数据库程序)

SAP-ABAP-逻辑数据库(创建和维护以及数据库程序)

2023-07-26 来源:世旅网
SAP逻辑数据库

? 创建和维护逻辑数据库

创建和维护逻辑数据库的事务是SE36或SLDB。

逻辑数据库是ABAP/4报表读取和处理数据的方法。每个ABAP/4报表都链接到报表属性指定的逻辑数据库中。逻辑数据库有? 逻辑数据库的特征

逻辑数据库能提高数据库的效率并且提供易于使用和生成的用户界面。? 逻辑数据库的任务

逻辑数据库允许集中编程几个不同的任务。例如,在逻辑数据库中集中编码用户界面格式和数据库访问,以避免报表的应用逻1. 如果几个报表读取相同数据,则可以在单个逻辑数据库中编码读取访问。对于单个报表,不再需要知道所涉及的数据库表的2. 如果要为几个报表使用相同用户界面,则可以使用逻辑数据库的选择屏幕轻易地达到目的。要达到必要的适应性,可以生成3. 在逻辑数据库中集中编码重要(以及敏感的)数据的授权检查,以使它们不受单个报表的影响。

4. 如果要提高响应时间,则逻辑库允许采取多种措施达到目的(例如使用视图替代嵌入的SELECT语句)。这些在所有相关报表? 逻辑数据库的基本特征定义:

ABAP/4报表使用逻辑数据库读取和处理数据。报表可用的数据顺序取决于相关逻辑数据库的层次结构。逻辑数据库也提供用

格式: 逻辑数据库包括下列三个组件:? 结构

结构是逻辑数据库的基本组件。它决定其它组件的结构以及运行时逻辑数据库的行为。? 选择

该组件决定每个报表的用户界面。其格式通常由结构决定。可以调整和扩展选择以适应需要。? 数据库程序

数据库程序是选择数据并将其传递到报表的子程序集合。数据库程序的格式由结构和选择共同决定。可以调整和扩展数据库程? 其它组件诸如:文档、特定语言和用户定义选择屏幕将进一步扩展功能。? 逻辑数据库的授权检查

通常,可以在下列数据库程序的子程序或者报表的处理块中包括授权检查:? 数据库程序中的子程序:- PAI- AUTHORITY_CHECK_

? 报表中的事件关键字 :- AT SELECTION-SCREEN- AT SELECTION-SCREEN ON - AT SELECTION-SCREEN ON END OF - GET

将授权检查放置在数据库程序还是放在报表中取决于:? 逻辑数据库的结构;例如,如果在运行时读取包含公司代码字段的行,则应该只检查公司代码授权。? 性能;例如在 SELELCT 循环中不执行重复检查。

在任何情况下,数据库访问和应用逻辑的分离允许在逻辑数据库程序中集中地编 码所有授权。这使维护大的编码系统更加容? 逻辑数据库的性能

因为在所有有关的ABAP/4报表中更改逻辑数据库将立即生效,所以通过集中优化可以提高程序库中的不同对象的响应时间。通过允许用户精确指定系统从数据库中读取哪个表格条目可以获得最大的性能提高。为此,可以在数据库程序中使用下列技术? 选择标准和参数,可能带默认值和值列表。? 动态选择。?  匹配码选择。? 查看从数据库读取的条目或者将其存储在内表中。

另外,应该在早期进行授权检查,即尽可能在选择屏幕处理期间而不是等到数据选择处理期间。因为它们依赖于读取的数据,因此没有优化的步骤规则。试图优化响应时间时应该知道以下各点:?  在不同级别结构的表格内容之间的数字关系十分重要。

如果某一级别结构的数据库表格的某行包括下一级别数据库表格的某行(情况 A),则其它优化可能对于比例 1:100 或者 1:10?  在情况A中,通过使用数据库视图可以提高响应时间。

?  在情况B中,可以使用内表。首先从数据库中将数据读到内表中,然后在逻辑数据库中通过 LOOP/ENDLOOP处理内表。在情况B中,使用游标处理选择行也很有用。

?  一些ABAP/4报表只参阅带 GET 语句的层次结构的一部分,而其它报表访问结构中的所有节点。在这种情况下,提高单个报- 在逻辑数据库程序中,使用表格 GET_EVENTS。使用逻辑数 据库生成报表之后,对于结构的每个节点,该报表表示报表中每- 通过在选择INCLUDE中使用

SELECTION-SCREEN FIELD SELECTION FOR TABLE

.

语句,可以为字段选择指定逻辑数据库中的数据库表格

。在报 表中,可以使用合适的GET语句。? 创建和维护逻辑数据库

创建和维护逻辑数据库的事务是SE36或SLDB。

在“逻辑数据库”字段 中,输入逻辑数据库的名称。

要通过“显示”或“更改”显示或更改逻辑数据库,请选择逻辑数据库子对象。要创建逻辑数据库,请选择“创建 ”创建逻辑数据库

创建逻辑数据库时,系统将承担大部分工作:

? 通过在图形编辑器中定义其结构 ,可以定义逻辑数据库的最重要的 特征。? 定义结构后,系统自动建议选择包含程序。? 最后,系统使用结构和选择生成数据库程序 。

要全部自动生成 ABAP/4 语句,应该以下列次序处理子组件 :要创建新逻辑数据库,在初始屏幕上选择“创 建”。

1. 在随后的对话框中,输入短文本,用“创建”确认并指定开发级别。

如果要更改短文本或者以其它语言维护,可以选择“细节 -> 短文本”以 后再完成此目的。

2. 指定结构的根节点,例如

点击Other node types后出面下面窗口:

节点类型:

数据库表(树结构中的节点类型’T’):表必需被激活在字典中是可用的并有一个平结构.节点名必需符合表名.

字典类型(树钏的节点类型’S’):节点可涉及到您想要的所有字典类型.节点名称可能与结构的名称不同,而且复杂对象可用作节类型组的数据类型(树结构中的节点类型’C’):节点组的名称必需输入在适当的字段中.您选择了”深层类型”按钮后,此节点类型3. 逻辑数据库现在具有单个节点结构。可以按更改结构中的描述扩展该结构。

4. 选择“转向 -> 选择”并且按编辑选择中的描述维护包含程序 。5. 保存选择并且选择“转向 -> 数据库程序 ”。

      然后系统根据结构和选择条件生成数据库程序 。已经定义了所有必须的子程序并且也生成了SELECT 语句的大部分 WHE      7. 最后,可以维护下列可选子对象:- 选择文本-  匹配码选择-  文档

处理结构

要显示或更改逻辑数据库结构,选择初始屏幕上的“结构 ”。可以执行下列操作? 显示结构

要显示结构,请在初始屏幕上选择“结构”和“显示”。

系统在左上角最高级别上(结构的 根节点)显示节点名称 。每个下层节点显示在前一节点的下方,向右缩排,相同级别的节点? 更改结构

      在节点上点右键,里面有插入节点、Change/Display Node、重命名节点、显示字段。? 逻辑数据库结构

通常,逻辑数据库反映 SAP 系统中层次表格的外来关键字相关性。逻辑数据库有定义如下的层次结构 :? 最高层只有一个节点 ,称为根节点。? 每个节点可以有一 或几个分支 。? 每个节点从其它节点 派生。

必须在 ABAP/4 字典中定义节点结构。 一般地,这些结构都是逻辑数据库为进一步评估而读取并传递到 ABAP/4 报表的数据由于技术原因,在逻辑数据库结构中节点数目有上限(MAX) 。上限如下 计算:? LEN = 结构中名称的最大长度 (例如 7)。? MAX = 1200 / LEN (例如 1200 / 7 = 171)。

ABAP/4 报表可以在逻辑数据库的结构中为每个节点包含GET 语句。运行时按层次结构中所定义的顺序执行处理块。

如果报表没有为逻辑数据库的每个节点包含 GET 语句,则处理块传递给位于从根到 GET 语句指定节点路径上的所有节点例:

假定 LFA1 是根节点, LFBK 和 LFB1 是 LFA1 的分支,并 且 LFC1 是 LFB1 的分支。

如果报表为 所有节点都 包含 GET 语句,则以 LFA1、 LFBK、 LFB1、 LFC1 的顺序执行 GET 事件。如果报表只 对 LFB1 包含 GET 语句,则处 理只传递到 LFA1 和 LFB1。

逻辑数据库选择编辑选择

要编辑逻辑 数据库的选 择屏幕,请 在初始屏幕 上选择“选 择”和“更 改”。这将 进入包含程 序 DBSEL 的编辑器。 因为对于数据库程序和其它相关的程序,系统不能自动将此包含程序组合进数据库程序中,所以不能使用 INCLUDE 语句达到

如果以前未做选择,则系统自动为所有结构中的数据库表格生成关联 SELECT-OPTIONS 语句并且为所有关键字字段建议选也建议匹配码选择的 PARAMETERS 语句。

? 通过PARAMETERS语句及其附加项,可以参看可能用到的附加参数,例如, 要控制程序流

? 通过SELECTION-SCREEN语句可以设计选择屏幕的格式和在格式化选择屏幕中指定的附加项。? 语句SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE

.为动态选择定义数据库表格? 语句SELECTION-SCREEN FIELD SELECTION FOR TABLE
.为字段选择定义数据库表格? 语句SELECTION-SCREEN BEGIN|END OF VERSION和SELECTION-SCREEN EXCLUDE允许创建选择屏幕的不同版本.

如果逻辑数 据库已经存 在带选择的 包含程序, 则可以通过 选择“细节 -> 生成 -> 选择”用定 义的系统程 序将其覆盖 。然后要检查包含 程序 DBSEL 的语法错误 ,请在初始 屏幕上选择 “检查”。 如果在编辑 数据库程序 时选择“检 查”,也可 以我们通过程序自动生成的源文件如下:

*----------------------------------------------------------------------** INCLUDE DBHKSSEL

* It will be automatically included into the database program.

*----------------------------------------------------------------------**

* If the source code is automatically generated,* please perform the following steps:

* 1. Replace ? by suitable names (at most 8 characters).

* 2. Activate SELECT-OPTIONS and PARAMTERS (delete stars).* 3. Save source code.* 4. Edit database program*

* Hint: Syntax-Check is not possible within this Include!

* It will be checked during syntax-check of database program.*

*----------------------------------------------------------------------** SELECT-OPTIONS : ? FOR LFA1-LIFNR.

* Parameter for search pattern selection (Type SY-LDB_SP):* PARAMETERS p_sp AS SEARCH PATTERN FOR TABLE LFA1.

* Enable DYNAMIC SELECTIONS for selected nodes : SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE LFA1.* Enable FIELD SELECTION for selected nodes : SELECTION-SCREEN FIELD SELECTION FOR TABLE LFA1.* SELECT-OPTIONS :* ? FOR LFB1-LIFNR,* ? FOR LFB1-BUKRS.* SELECT-OPTIONS :* ? FOR LFB1-LIFNR,* ? FOR LFB1-BUKRS.* SELECT-OPTIONS :* ? FOR LFBK-LIFNR,* ? FOR LFBK-BANKS,* ? FOR LFBK-BANKL,* ? FOR LFBK-BANKN.* SELECT-OPTIONS :* ? FOR LFAS-LIFNR,* ? FOR LFAS-LAND1.

在逻辑数据库中,可以使用 SELECT-OPTIONS 和 PARAMETERS 语句在选择屏幕上定义输入字段。通过称为选择包含程序的生成报表的选择平幕时,系统只考虑数据库的特定选择标准和参数,其相应表格由报表中的 TABLES 语句声明示例:

 假定逻辑数据库程序包含下列行:

SELECT-OPTIONS SLIFNR FOR LFA1-LIFNR. PARAMETERS PBUKRS LIKE LFB1-BUKRS FOR TABLE LFB1.选择标准 SLIFNR 链接到表格 LFA1, 参数 PBUKRS 链接到表格 LFB1。

如果报表中的 TABLES 语句声明 LFA1 但未声明 LFB1, 则在选择屏幕上显示 SLIFNR,但不显示 PBUKRS 。

可以通过逻辑数据库包含程序中的 SELECTION-SCREEN 语句格式化选择屏幕( 例如,通过 定义框、按 钮、单选按 钮和空行通过使用带SELECT-OPTIONS 和 PARAMETERS 语句的附加VALUE-REQUEST 和 HELP-REQUEST,可以显示选择屏幕字段动态选择

动态选择除了允许用户在逻辑数据库选择包含程序中已定义的选择标准之外,另 外还允许定义进一步的选择。由于性能原因

另一方面, 动态选择在逻辑数据库的数据库访问期间已经生效。要支持数据库表格 的动态选择 ,必须在逻辑数据库SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE .

这种情况下 ,如果在报表中使用表格 ,则“动态 选择”按钮 显示在选择屏幕上。按该按钮允许用户为由逻辑数据库定

在 ABAP/4 开发工作台中,用户可以以逻辑数据库选择视图的格式定义动态选择 的字段列表 。这些视图由其来源( ‘CUStom定义选择屏幕版本

逻辑数据库选择屏幕( 屏幕号 1000 )有标准的格式,其中选择标准和参数以声明的顺序显示在各行中。系统为每个没有在属性如果要为报表消除某个逻辑数据库选择屏幕的输入字段, 则可以在选择包含程序中定义选择屏幕版本( 屏幕号小于 或等于 9

如果报表属性包含选择屏幕版本号,则系统在生成选择屏幕时将该版本号用作模 型。自动为选择屏幕版本生成屏幕流逻辑并

定的逻辑数据库中。逻辑数据库有个三字符的名称(例如,KDF),其最后字母表示应用。定义报表属性时如果不指定逻辑数据库的名称,则

和数据库访问,以避免报表的应用逻辑去处理技术细节。逻辑数据库可以执行下列任务:

,不再需要知道所涉及的数据库表的确切结构(特别是外来关键字相关性)。但是,可以肯定当执行GET事件时将以正确的顺序检索该项。的。要达到必要的适应性,可以生成自己的选择屏幕版本。

SELECT语句)。这些在所有相关报表中立即生效并且避免修改源代码。

库的层次结构。逻辑数据库也提供用户对话框(即选择屏幕)的界面并且将用户输入检查和错误对话组合起来。可以在报表中修改并扩展该界

共同决定。可以调整和扩展数据库程序以适应需要。

授权。这使维护大的编码系统更加容易。

高程序库中的不同对象的响应时间。,可以在数据库程序中使用下列技术 :

优化可能对于比例 1:100 或者 1:1000 更有意义(情况 B)。

过 LOOP/ENDLOOP处理内表。

有节点。在这种情况下,提高单个报表性能有下列选择:构的每个节点,该报表表示报表中每条 GET 语句是否发生。

的GET语句。

据库,请选择“创建 ”

名必需符合表名.

的名称不同,而且复杂对象可用作节点.

择了”深层类型”按钮后,此节点类型的单选钮及其相应的输入字段将显示.

也生成了SELECT 语句的大部分 WHERE 条件。按编辑数据库程序. 中的描述维护该数据库程序。

的下方,向右缩排,相同级别的节点显示在相同列中。

而读取并传递到 ABAP/4 报表的数据库表格结构 。但是,使用不带下面数据库的 ABAP/4 字典有时也是可能并有用的。

所定义的顺序执行处理块。

语句指定节点路径上的所有节点

程 序 DBSEL 的编辑器。 是逻辑数据 库的名称。

,所以不能使用 INCLUDE 语句达到此目的。

语句并且为所有关键字字段建议选择标准(根据ABAP/4字典)。然后必须为这些选择标准赋名。为此,必须为包含程序中的每个“?” 输入最多

允许创建选择屏幕的不同版本.

用定 义的系统程 序将其覆盖 。然后必须 在对话框中 确认它。数据库程序 时选择“检 查”,也可 以检查包含 程序的语法 错误。

输入字段。通过称为选择包含程序的特定包含程序的帮助可达此目的 。在每个 ABAP/4 报表中,可以通过定义报表特定选择扩展逻辑 数据的 TABLES 语句声明

KRS FOR TABLE LFB1.

不显示 PBUKRS 。

过 定义框、按 钮、单选按 钮和空行, 或者通过在一行中写入几个 PARAMETER)。REQUEST,可以显示选择屏幕字段的可能输入值和字段文档

许定义进一步的选择。由于性能原因, 应该只为不是特定表格的选择,在报表中的 GET 事件过程中 ,而使用带 CHENK 语句的选择标准。否

b> 的动态选择 ,必须在逻辑数据库的选择包含程序中指定下列语句:

按该按钮允许用户为由逻辑数据库定义的字段输入动态选择。为事件关键字 GET 选择数据时 ,逻辑数据库在动态 WHERE 条件下使

列表 。这些视图由其来源( ‘CUStomer’ 的‘SAP’ 或者‘CUS’ )标识,逻辑数据库名称和带有此处描述的选择屏幕的功能名称必须总是‘ST

示在各行中。系统为每个没有在属性中指定选择屏幕的报表自动生成该屏幕。

选择屏幕版本( 屏幕号小于 或等于 999 )并且将其输入报表属性。通过按 F4,可以得到相关逻辑数据库中定义的选择屏幕版本概述。使用 S

为选择屏幕版本生成屏幕流逻辑并因而不能修改 。特别不允许删除特定数据库选择 。

时如果不指定逻辑数据库的名称,则系统使用控制选择屏幕格式的标准数据库,但不读取任何数据。在这里我们来了解

事件时将以正确的顺序检索该项。

起来。可以在报表中修改并扩展该界面。

可能并有用的。

须为包含程序中的每个“?” 输入最多 8 个字符的名称,并且删除语句前的注释符“*” 。

过定义报表特定选择扩展逻辑 数据库选择 。所有报表特定选择都显示在特定数据库选择之后。

使用带 CHENK 语句的选择标准。否则,直到数据库访问之后才执行选择。

逻辑数据库在动态 WHERE 条件下使用它们。

的选择屏幕的功能名称必须总是‘STANDARD’ 。只有未创 建带源‘CUS’ 的选择视图 时,系统才 使用带源‘ SAP’的选择视图。 这样,用户可

中定义的选择屏幕版本概述。使用 SELECTION-SCREEN BEGIN|END OF VERSION 和 SELECTION-SCREEN EXCLUDE 语句定义选择屏幕版

里我们来了解

源‘ SAP’的选择视图。 这样,用户可以为其所需定义最好的逻辑数据库选择视图 。

EN EXCLUDE 语句定义选择屏幕版本 。后一语句允许指定想要从选择屏幕版本中排除的对象。使用 SELECTION-SCREEN 语句,可以定义

LECTION-SCREEN 语句,可以定义其它格式。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 版权所有