0

我必须在 Managed Packaged insttalled 对象上编写一个 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(从管理包安装的对象)

但是我在地图错误中得到无效的键:

请建议是因为 Manage-package 对象还是我在这里做的任何错误,谢谢。

注意:我无法在工作台中看到对象“sendgrid4sf__SendGrid_Email_Status__c”。

4

1 回答 1

0

您可以使用 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);

}

希望这可以帮助。

于 2016-03-09T18:48:33.533 回答