错误信息
Field ZPDAUSER-ZUSERID is still being used as a view field in view ZV_PDA_USER
视图 ZPDAUSER-ZUSERID 仍作为视图字段在视图 ZV_PDA_USER 使用
错误原因
- 当前表被 CDS View 引用,由 CDS View 生成的「视图」已占用当前表的相关字段
- 然而生成的视图又无法在 GUI 中直接进行「修改 / 删除」操作
解决方案
-
既然字段被占用,那我们就解除占用
-
取巧的方案是我们在 CDS View 中将被占用的字段统统删掉,只保留未被占用的字段,重新激活 CDS View,生成新的(不占用)的「视图」即可
修改表结构
下面将展示从开始修改出错,到调整 CDS 重新激活的「实例」
- 这里我的需求是要对应接口名称,因此修改了部分字段的名称,修改项如图所示:
激活时,报错如图所示:
见 Log 提示 ZUSERID 和 ZUSERNAME 被视图 ZV_PDA_USER 占用
解除占用
下图为原 CDS View 的查询字段,现在要将两个占用字段删除
修改后
然后 激活 CDS View,对应视图 ZV_PDA_USER 会重新生成,此时已解除了对「字段」的占用
常见 LOG,「表激活」会提示如下:
TCode SE14
调整 & 激活即可:SE14 - Activite and adjust database
※ SE14 行为有风险,操作需谨慎,执行前请考虑数据迁移(对应字段数据丢失问题)
然后将 CDS View 查询字段修改为现在的字段,激活即可
补充
- 如果涉及到
SM30
,需要重新「生成表维护生成器」 - 如果涉及到
OData Service
,需要重新「Generate Runtime Objects」 - 相关修改完成后测试结果: