ContentDocumentLink中的LinkedEntityId并非始终填充在触发器之前

问题描述

所以我有一个触发器(在插入之前,在ContentDocumentLink上),它是托管包的一部分,并且不会引发Null Pointer Exception。 经过检查,我发现此行是发生空指针异常的地方。

for (ContentDocumentLink contentdoclinkItr : Trigger.new) {
    String sObjectName = contentdoclinkItr.LinkedEntityId.getSObjectType().getDescribe().getName();
}

我的推论是未填充 LinkedEntityId ,因为在日志中看不到该字段。

VARIABLE_ScopE_BEGIN|[2]|cdl|ContentDocumentLink|true|false
VARIABLE_ASSIGNMENT|[2]|cdl|{"IsDeleted":false,"Visibility":"AllUsers","ContentDocumentId":"0694g000000aE6gAAE"}

我们可以看到IsDelete,Visibility,ContentDocumentId等字段,但没有LinkedEntityId的字段条目。

由于这是Managed软件包的一部分,因此我无法对其进行更改,因此我将该触发器的代码复制到了一个新的Trigger中,以便可以在Log中看到LinkedEntityId字段。

VARIABLE_ScopE_BEGIN|[3]|cdl|ContentDocumentLink|true|false
VARIABLE_ASSIGNMENT|[3]|cdl|{"IsDeleted":false,"LinkedEntityId":"0054g000000XvyEAAS","ContentDocumentId":"0694g000000aE6gAAE","ShareType":"I"}

解决方法

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

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

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