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

时间:2016-03-07 05:50:36

标签: salesforce apex-code apex salesforce-service-cloud salesforce-chatter

我必须在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"在工作台。

1 个答案:

答案 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);

}

希望这有帮助。