You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

扩展标准CDS /PF1/C_VH_ACCOUNT_ID添加segment_id字段激活报错求助

需求可行性确认

这个需求完全可行,但不能直接修改标准CDS视图(SAP标准对象不允许直接修改),必须通过CDS扩展或自定义继承视图的方式实现,同时结合访问控制注解来限制Fiori应用的访问。

正确实现步骤

方法1:使用CDS视图扩展(推荐,不破坏标准对象)

1. 创建CDS扩展视图

创建针对/PF1/C_VH_ACCOUNT_ID的扩展CDS,关联/PF1/DB_SGMT_ACT表并引入segment_id字段:

@EndUserText.label: '扩展账户ID视图,添加Segment ID'
extend view /PF1/C_VH_ACCOUNT_ID with ZC_VH_ACCOUNT_ID_EXT {
    // 关联segment表,需替换为实际存在的关联键(如account_id)
    segment_id : /PF1/DB_SGMT_ACT-segment_id
}
association [0..1] to /PF1/DB_SGMT_ACT as _Segment on $projection.account_id = _Segment.account_id;

注意:必须确保关联字段是标准视图中已存在的字段,且两张表的关联逻辑符合业务规则,否则会触发激活报错。

2. 为扩展后的视图添加访问控制

创建访问控制CDS,基于segment_id限制用户访问范围:

@EndUserText.label: '账户ID视图的Segment访问控制'
@AccessControl.authorizationCheck: #CHECK
define access control ZAC_VH_ACCOUNT_ID {
    restrict entity /PF1/C_VH_ACCOUNT_ID (ZC_VH_ACCOUNT_ID_EXT)
        where segment_id in $session.segment_ids; // 可根据实际权限逻辑调整,比如关联自定义权限对象
}

3. 调整Fiori应用数据源

将Fiori应用的数据源从标准/PF1/C_VH_ACCOUNT_ID切换为扩展后的ZC_VH_ACCOUNT_ID_EXT,确保应用加载包含segment_id的数据并受访问控制限制。

方法2:创建继承式自定义CDS视图(适合需要额外自定义逻辑的场景)

1. 创建继承标准视图的自定义CDS

继承/PF1/C_VH_ACCOUNT_ID,并通过左连接引入/PF1/DB_SGMT_ACT的segment_id:

@EndUserText.label: '继承账户ID视图,添加Segment ID'
define view ZC_VH_ACCOUNT_ID_INH as select from /PF1/C_VH_ACCOUNT_ID
left join /PF1/DB_SGMT_ACT on /PF1/C_VH_ACCOUNT_ID.account_id = /PF1/DB_SGMT_ACT.account_id {
    // 继承标准视图所有字段
    /PF1/C_VH_ACCOUNT_ID.*,
    // 添加segment字段
    /PF1/DB_SGMT_ACT-segment_id as segment_id
}

2. 为自定义视图添加访问控制

创建访问控制CDS指向自定义视图:

@EndUserText.label: '自定义账户ID视图的Segment访问控制'
@AccessControl.authorizationCheck: #CHECK
define access control ZAC_VH_ACCOUNT_ID_INH {
    restrict entity ZC_VH_ACCOUNT_ID_INH
        where segment_id in $session.segment_ids;
}

3. 切换Fiori应用数据源

将Fiori应用的数据源替换为自定义视图ZC_VH_ACCOUNT_ID_INH。

常见报错排查
  • 关联字段不匹配:确认两张表的关联键数据类型、字段名完全匹配,且关联键在标准视图中存在。
  • 多对一关联冲突:如果/PF1/DB_SGMT_ACT中一个账户对应多个segment,需添加聚合逻辑(如max(segment_id))或明确筛选条件。
  • 权限不足:创建CDS对象时确保拥有S_DEVELOP等开发权限,且能访问/PF1/DB_SGMT_ACT表的字段。

内容的提问来源于stack exchange,提问作者Berater_SAP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 20:02:43