错误信息
Field xxx is still being used as a view field in view xxx
视图 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 行为有风险,操作需谨慎,执行前请考虑数据迁移(对应字段数据丢失问题)
※ SE14 行为有风险,操作需谨慎,执行前请考虑数据迁移(对应字段数据丢失问题)
※ SE14 行为有风险,操作需谨慎,执行前请考虑数据迁移(对应字段数据丢失问题)
然后将 CDS View 查询字段修改为现在的字段,激活即可
补充
- 如果涉及到
SM30
,需要重新「生成表维护生成器」 - 如果涉及到
OData Service
,需要重新「Generate Runtime Objects」 - 相关修改完成后测试结果: