[] 中交叉引用 ID 访问权限不足的值:[] 始终/通常为空?

问题描述

我更关心的是为什么 [] 中的 ID 值对于此错误通常为 null,当您知道交叉引用 ID 具有值并且如果错误消息刚刚发出 ID 时,您会了解 SObject 的根本原因,从而为您的生活赢得宝贵的分钟/小时。

这是一个例子:

  • OWD 私有 Account
  • Order 由父级控制
  • 正在运行的用户配置文件具有“修改全部”、“在 Account 上查看全部”和“在 Order 上查看全部”。运行用户可以通过 UI 查看订单。即使使用 Modify AllControlled by parent 也不会级联到 Order。
  • Apex 代码尝试在(不是 master-detailOrder_Detail__c 下面插入自定义对象 Order,为查找字段 Order_Detail__c.Order__c 提供值

现在,由于没有将 r/w 扩展到相关订单帐户的共享规则,因此没有对订单的 r/w 访问权限,因此在尝试分配子记录到父订单。

我不明白的是为什么 INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY 字段中的错误消息中没有发出字段 insufficient access rights on cross-reference id: [] 查找字段的 ID 值。为什么括号甚至在那里?

我想这是一个安全项目,不公开 ID 值可以避免告诉坏人,即使 SObject 无法访问。如果错误消息只显示前三个字符 - 或转换为 sobjectType,我会很高兴。 Order_Detail__c.Order__c 的含义是一个空数组。但这不是您的代码中发生的事情。

这个假设正确吗?

对于为正在运行的用户捕获调试日志然后必须通过演绎逻辑来确定哪个相关 sobject(相关对象上可能有多个查找字段)是问题一,更不用说为什么了。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)