我必须在Managed Packaged insttalled对象上编写一个顶点触发器,并在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"在工作台。
答案 0 :(得分: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);
}
希望这有帮助。