【问题标题】:getting 'Duplicate resource' error after I created 2 transport requests in CDS在 CDS 中创建 2 个传输请求后出现“重复资源”错误
【发布时间】:2019-09-22 15:30:55
【问题描述】:

我为同一个项目创建了两个传输请求 (TR),同时在 CDS 视图中进行了更改,之后显示错误代码为 400 的重复资源错误并且我无法在我的 UI5 表中获取任何数据。

我将锁定在新 TR 中的更改转移到旧 TR,但它仍然给出相同的错误。

HTTP request failed400,Bad Request,{"error":{"code":"/IWBEP/CM_MGW_RT/030","message":{"lang":"en","value":"Duplicate resource" },"innererror":{"应用程序":...

【问题讨论】:

    标签: odata sapui5 abap cds


    【解决方案1】:

    首先:通过使用事务se16 (n/h) 读取底层 SQL 视图(在 CDS 定义 @AbapCatalog.sqlViewName 中注释)来仔细检查是否实际上没有重复键。

    如果 SQL 视图中确实没有重复,则该错误可能是 ABAP CDS 框架中的各种错误引起的。这些错误大多发生在您更改 CDS 源/定义之后。这里有几个:

    • 打开事务segw 并通过右键单击“全部刷新”刷新实体结构

    • 然后单击红白沙滩球以重新生成 MPC/DPC 类。

    • 红色白色沙滩球实际上所做的是将更改后的结构与现有类合并。右键单击项目并选择“生成运行时”,以真正重新生成所有运行时对象。

    • 有时实体概览中有一个清理按钮。点击它。

    • 在事务/iwfnd/gw_client 中选择元数据→清理缓存→在两个系统上

    • 清理缓存对于从 segw 中的 ABAP 类型手动创建的 OData 视图非常有效,但核心数据服务可能仍会被缓存。如果以上都没有帮助:

      • 注销并重新登录
      • 重启事务
      • 等待一两个小时
    • 尝试直接在 /iwfnd/gw_client手动测试失败的 OData 请求。您可以激活登录/iwfnd/traces 以仔细检查来自您客户的请求的实际外观。

    • 检查您的 OData 客户端。它是否可能在内部缓存$metadata

    • 检查传输请求是否已成功处理,例如使用交易se10。传输/长时间运行的 SADL 查询可能会阻止导入到另一个系统。必要时使用sm50 杀死他们。

    【讨论】:

    • 谢谢,但在我将其中一个字段的搜索注释从 true 更改为 false 后,它开始工作。
    • RIK 谢谢,你能通过写一个单独的答案来描述你的解决方案吗?添加精确信息也会有所帮助(而不是“更改其中一个字段的搜索注释”)。
    猜你喜欢
    • 2021-09-11
    • 1970-01-01
    • 2021-05-02
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多