维护视图与视图集群 (★★★★)

维护视图与视图集群 (★★★★)

#abap #abap-dictionary #abap-views

概览表

Type (类型) Key Point (要点)
Maintenance View Outer Join + 可读写
View Cluster 多个维护视图的组合维护界面

维护视图 (Maintenance View)

与数据库视图对比

Feature Database View Maintenance View
Join 类型 Inner Join Outer Join
可写 仅单表 可读写(多表)
外键要求 必须有
连接条件 手动/自动 从外键自动派生
缓冲 支持 不支持
📌Outer Join 含义
维护视图返回包括无匹配的记录,适合维护场景(主记录可能无明细记录)。

创建规则

  1. 所有表必须通过外键连接
  2. 主表的所有键字段必须包含在视图中
  3. 客户端字段必须包含(但不显示在维护界面)
  4. 键字段必须在功能字段之前
  5. 次表的额外键字段也必须包含

维护状态

Status (状态) Description (描述)
Read only 仅读取
Read, change, delete, insert 默认,完整 CRUD
Read and change 读取+修改

维护界面生成

使用事务 SE54 或从 SE11 菜单 Utilities → Table maintenance generator

Parameter (参数) Description (描述)
Function Group 生成代码所在的函数组
Authorization Group 访问权限控制(如 &NC无限制)
Maintenance Type One-step(单步/表格)或 Two-step(双步/概览+明细)
Maintenance Screens 屏幕编号
Recording Routine 是否记录到传输
1
生成后 → SM30 输入表/视图名 → Maintain 按钮维护数据
⚠️维护视图的风险
维护视图不适合生产环境的标准操作,有数据不一致风险。
主要用于客户表/Customizing 表的数据录入。

维护视图的表关系要求

1
2
3
4
Primary Table → Secondary Table 1 → Secondary Table 2
N:1 N:1

次表必须与主表(或之前的次表)保持 N:1 关系

视图集群 (View Cluster)

将多个维护视图组合成一个维护界面

1
2
3
4
5
View Cluster
├── Root View 1 (ZCARR##)
│ ├── Child View 1 (ZPFLI##)
│ └── Child View 2 (...)
└── Root View 2 (...)

视图集群特性

Feature Detail
关系类型 支持 N:M 和键增强
最大视图数 1-2 个根视图 + 最多 14 个依赖视图
维护方式 层级导航(Master → Detail)
事务码 SM34

创建步骤

1
2
3
4
5
6
1. 为每个表/视图创建单独的维护视图 → SE54 生成维护界面
2. SE54 → View Cluster → 创建
3. 定义对象结构(Header + Detail)
4. 生成字段依赖
5. 激活
6. SM34 → 输入集群名 → 维护

视图集群 vs 维护视图

Feature Maintenance View View Cluster
关系类型 仅 1:1 N:M、键增强
包含视图数 单个视图 多个视图
导航方式 平面 层级树
无键依赖 不支持 支持

考试/测试模式

Scenario/Keyword (场景/关键词) Answer (答案)
“维护视图的 Join 类型?” Outer Join(外连接)
“维护视图的连接条件来源?” 从外键自动派生
“用什么事务维护?” SM30(单视图),SM34(集群)
“维护视图适用场景?” 客户表/Customizing 表的数据录入
“视图集群最大视图数?” 最多 14 个依赖视图