需要访问受管包对象和 Apex 触发器中的字段

Need to Access Managed Package Objects and fields in Apex trigger

我必须在托管打包安装对象上编写一个 apex 触发器,并在字段中访问 Apex 触发器中的新旧值。

请看下面我在这里使用的代码片段:

trigger EmailScoreCalculator on sendgrid4sf__SendGrid_Email_Status__c (after        update ) {

 sendgrid4sf__SendGrid_Email_Status__c  oldOpp = Trigger.oldMap.get(sendgrid4sf__SendGrid_Email_Status__c.Id);

对象名称:sendgrid4sf__SendGrid_Email_Status__c(从管理包安装的对象)

But i am getting invalid Key In Map Error:

请建议是因为管理包对象还是我在这里做错了什么,谢谢。

注意:我无法在 workbench 中看到对象 "sendgrid4sf__SendGrid_Email_Status__c"。

您能否使用 Trigger.old.keySet() 获取所有键,然后遍历键列表并访问特定键的值。 据我所知,我们不能使用 ObjectName.Id 来访问任何记录的 ID。 所以我认为你在第

行犯了错误

sendgrid4sf__SendGrid_Email_Status__c oldOpp = Trigger.oldMap.get(sendgrid4sf__SendGrid_Email_Status__c.Id);

因此,如果您想访问旧地图中的所有值,请使用以下内容

for(String recordId: Trigger.oldMap.keySet()){

sendgrid4sf__SendGrid_Email_Status__c oldOpp = Trigger.oldMap.get(recordId);

}

希望对您有所帮助。