🌵 SAP 字段仍作为视图字段在视图中使用 | 更改表结构重新生成 CDS View「实例」

189 阅读2分钟

错误信息

  • Field xxx is still being used as a view field in view xxx
  • 视图 ZPDAUSER-ZUSERID 仍作为视图字段在视图 ZV_PDA_USER 使用

SAP-Update-CDS-View-STAIN-01.png


错误原因

  • 当前表被 CDS View 引用,由 CDS View 生成的 视图 已占用当前表的相关字段
  • 然而生成的视图又无法在 GUI 中直接进行 修改 / 删除 操作

解决方案

既然字段被占用,那我们就解除占用

取巧的方案是我们在 CDS View 中将 被占用的字段统统删掉 ,只保留未被占用的字段,重新激活 CDS View,生成 新的(不占用) 的「视图」即可

下面将展示从开始修改出错,到调整 CDS 重新激活的「实例」


修改表结构

这里我的需求是要对应接口名称,因此修改了部分字段的名称,修改项如图所示:

SAP-Update-CDS-View-STAIN-02.png

激活时,报错如图所示:

见 Log 提示 ZUSERID 和 ZUSERNAME 被视图 ZV_PDA_USER 占用

SAP-Update-CDS-View-STAIN-03.png


解除占用

下图为原 CDS View 的查询字段,现在要将两个占用字段删除

SAP-Update-CDS-View-STAIN-04.png

修改后

SAP-Update-CDS-View-STAIN-05.png

然后 激活 CDS View,对应视图 ZV_PDA_USER 会重新生成,此时已解除了对「字段」的占用

常见 LOG,「表激活」会提示如下:

SAP-Update-CDS-View-STAIN-06.png

  • TCode SE14 调整 & 激活即可:SE14 - Activite and adjust database

※ SE14 行为有风险,操作需谨慎,执行前请考虑数据迁移(对应字段数据丢失问题)

※ SE14 行为有风险,操作需谨慎,执行前请考虑数据迁移(对应字段数据丢失问题)

※ SE14 行为有风险,操作需谨慎,执行前请考虑数据迁移(对应字段数据丢失问题)

SAP-Update-CDS-View-STAIN-07.png

然后将 CDS View 查询字段修改为现在的字段,激活即可

SAP-Update-CDS-View-STAIN-08.png


补充

  • 如果涉及到 SM30,需要重新「生成表维护生成器」
  • 如果涉及到 OData Service,需要重新「Generate Runtime Objects」
  • 相关修改完成后测试结果:

SAP-Update-CDS-View-STAIN-09.png