需要访问受管包对象和 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);
}
希望对您有所帮助。
我必须在托管打包安装对象上编写一个 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);
}
希望对您有所帮助。