🗃️ SAP ABAP Data Dictionary

首页 / 💰笔记 / 正文

基础介绍

  1. 数据库交互的中间件:数据字典
  2. 事务代码

    • 数据库表相关操作(侧重操作结构,查看内容可以用 SE16N): SE11

      • 示例表:

        • MARD
        • MARA:物料基本信息
        • MAKT:物料描述,和 MARAN(不同语言来描述):1 的关系
    • 专门用于查看数据库表内容(可进行高级筛选):SE16N

数据字典对象

  1. 数据库表 Database Table

    • 透明表(Transparent Table):在数据库中有对应的物理表,与数据库字段一对一

      • 最常用的表
    • 存储表(Pooled Table):用来存贮控制数据(例如:屏幕顺序,程序参数或临时数据)。

      • 不常用
    • 簇表(Cluster Table):与数据库字段多对一(多个簇表对应一个数据库表)

      • 最常用簇表的表:BSEG(所有财务凭证行项表)
      • 一般数据量大
      • 不能使用 join
  2. 视图 View

    • 数据库视图 Database View
    • 项目视图 Projection View
    • 维护视图 Maintenance View
    • 帮助视图 Help View
  3. 数据类型 Data Type

    • 数据元素 Data Element:描述一个字段的用途
    • 结构 Structure:为若干个字段组合,在数据库不存在数据记录
    • 表类型 Table Type
  4. 类型池 Type Group
  5. 域 Domain:描述一个字段类型和长度等信息(用于设置技术信息)
  6. 搜索帮助 Search Help(F4)
  7. 锁对象 Lock Object

Domain 和 DE 的区别:

DE 是 对于在多个字段,如果指向相同的涵义,可以通过参照数据元素定义类型、长度及文本保持统一,其实现方式是通过 Pre Defined 来设置,其主要是描述一个字段的用途

Domain 是对 字段 的技术信息,比如类型、长度(DE 的 Pre Defined 也可以做到),初次以外还有 Value Range、Output 的 Sign(是否可以接收负号)、Output 的 Lower Case 等等技术信息。


数据字典预置类型

数据字典预置类型ABAP 类型运行长度说明
ACCPN(6)6会计结算周期
CHARC(n)1 - 255字符
CLNTC(3)3集团、数据区域代码
CUKYC(5)5货币代码
**CURR(n,m)P((n+1)/2) Decimal m1-17货币金额
DATSD(8)8日期
DEC n,mP((n+1)/2) Decimal mn(1-31)m(1-17)数值计算
FLTPF(8)18浮点数
INT1X(1)3单字节整型数
INT2X(2)5双字节整型数
INT4X(4)10四字节整形数
LANGC(1)内部一位,外部2位语言代码
LCHRC(n)256-最大值长字符
LRAWX(n)256-最大值长字符串
NUMC nN(n)1-255数值文字
(不可作运算)
PRECX(2)16精确度
QUAN n,mP((n+1)/2) Decimal m1-17数量
用于计算(与 UNIT 成对出现)
RAW nX(n)1-255位字串
TIMST(6)6时间
VARC nC(n)255-最大值长字符
STRINGString1-最大值字符串
RAWSTRINGXstring1-最大值位字符串
UNITC(n)2-3单位

(透明)表

基础表

  1. SE11
  2. 选择的 radiobutton 为 Database table
  3. 下面的富选择框中 Delivery and Maintenance

    • Delivery Class 选择 A
    • Data Browser/Table View Editing 选择 Display/Maintenance Allowed
  4. Fields

    • 数据库字段第一个永远都是:MANDT -> client 字段(除了该表的主键外,它也作为主键)
    • 填写对应的字段信息
    • PS: 注意想要修改 Data Type,需要点击 Built-in Type,此方法是 Pre Definded,不推荐,建议使用 DE / Domain,所以此步骤略,等到激活后再去创建 DE,作为引用。
  5. 填写完成后点选 Technological Settings

    • Data Class 设置为 APPLO
    • Size Category 设置为 0
  6. 然后 激活

    • 此时会提示 Warning(数据库表有一个相应的有一个增强的类型没有指定)
    • 解决:Extras - Enhancement Category - Cannot be Enhanced 即可
注意:如果建表时字段存在 QUAN 类型,那么就必须 Reference Fields 我们的 UNIT(属性必须要关联其单位,QUAN 和 UNIT 必须成对出现)

Data Element

​ 创建 Data Element(DE 代替):当多张表中存在相同字段,例如(student 下的 sid 和 course 下的 sid),此时就要使用 DE 来对这些不同表下的相同类型数据进行规定同样的格式/类型等。

​ 官方描述:对于在多个字段,如果指向相同的涵义,可以通过参照数据元素定义类型、长度及文本保持统一。

  1. 在创建表页面时选择 Data Type,输入自定义的 名称 - Create(命名:Z+字段名_WANG_01)

    • 弹出框提示选择 Type

      • Data Element(一个变量)
      • Structure(一组变量)
      • Table type(多个变量)
    • 此时选择 Data Element
  2. Data Type - Predefined Type - 设置 Data TypeLength
  3. Field Label - 该标签页是对 根据字段标签长短不同显示不同的文本
  4. PS:第二种快捷创建方式,在创建表结构填写 DE 时,可以直接输入自己想要创建的 DE(此 DE 不存在,所以会直接跳转到创建 DE 界面)。

创建 Domain

对于多个不同涵义的数据元素,有时共享相同的类型及长度,可以通过域的定义,减少数据量
  • 创建 DE 后,我们是在 DE 下又进行了 预定义(Pre Defined)(也就是我们的第七步的操作),这一步我们是将预定义操作改为了创建 Domain 操作。
  • 在创建 DE 界面时选择 Domain,输入非已存在名称后双击创建即可
  • Domain 创建页面
PS: 注意不论是 Domain、DE、数据库表,都需要 激活 才能使用

关联 外键

查看外键:

数据表内容的维护

查看/维护数据库表主要有 3 个路径
  1. SE11-> contents 查看表内容,默认为单条修改
  2. SE16N 查看表内容,最好不在此事务代码下进行修改(如果是去让用户使用 SE16N来对表的数据进行维护时,那么用户有了 SE16N 的事务代码权限,他可以修改其他的任意表,这是很危险的,所以不建议使用该方法,也就有了第三种方案,让用户去维护特定视图。
  3. SM30(数据库表维护代码) 通过批量维护视图查看表内容,需要通过 generator 生成

      1. SE80 - Package - Function Group 下可看到刚刚创建的 Screen
    1. 现在可以 New Entries 了

      1. SM30(数据库表维护代码)
      2. 输入刚刚创建的 维护视图名称
      3. Display
      4. New Entries
    2. 刚刚是使用的 one step 维护类型创建的,课后尝试 two step 创建

      • 二者区别

        • one step:new entries 时是 直接在 当前这张表上 进行输入,所以一般使用 one step,批量创建比较方便
        • two step:new entries 时是 开新窗口 提供表单项来进行输入,一般用于一些标准的数据库表(在填写时需要进行检查校验
    3. PS:注意一经 SM30 创建了对于该表专门维护的视图后,就无法使用 SE16N 来维护数据库表内容(了解)
注意:如果我们已经创建了视图,然后又对表的结构进行了修改,那么需要删掉视图,并重新创建视图。

使用 DE 的原因(为什么不直接在创建表时使用 Pre Defined)?

​ 在创建表时,如果我们使用的是 Pre Defined,而没有使用 DE,那么就会如上图所示,没有使用 DE 的 字段信息是无法携带过来的,后续相关操作也会很麻烦,所以这也是为什么使用 DE 的原因。


自定义事务

用户需求:输入指定 T-code,可以直接进入 maintain 界面。
  1. SE93:创建事务代码 的 事务代码
  2. 可以将 T-code 设为 数据库名称即可
  3. 理解自定义事务:其实就是去配置:输入我们自定义的 T-code 后,让系统自动执行指定的操作达到指定的效果(手动配置当系统访问某界面,在某控件上输入某值)
  4. 如何获取 Name of screen field

    1. 获取控件焦点 - F1 - Technical Information - Screen Field
    2. 填写字段名及其 value
    3. Inherit GUI attributes
    4. Skip initial screen 也可以选上,使 T-code 直达最终页面
    5. PS: 在 SAP 中,单选框、按钮选择就是 X,不选就为 即可。

视图

创建视图
  1. SE11
  2. 在当前页面创建视图 Create View(命名 ZV+...)
  3. 填写关联表和关联字段关系,手动填写
  4. 设置要看哪些字段:View Fields

    • 注意:选择时不要将公有字段选两边(eg: 两张表的 ZSHCOOLID 只需要选择一个即可。否则会报错:SAP Field name ZSCHOOLID not unique
  5. 最后保存并激活,然后查看
您阅读这篇文章共花了:
打赏
评论区
头像
文章目录