Требуется доступ к объектам и полям управляемого пакета в триггере Apex

Мне нужно написать триггер Apex для установленного объекта Managed Packaged и получить доступ в поле для новых и старых значений внутри триггера 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 в рабочей среде.


person Prateek Jain    schedule 07.03.2016    source источник


Ответы (1)


Можете ли вы использовать Trigger.old.keySet (), чтобы получить все ключи, а затем перебрать список ключей и получить доступ к значениям для определенного ключа. Насколько мне известно, мы не можем использовать ObjectName.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);

}

Надеюсь это поможет.

person Shankar D -Tranzevo    schedule 09.03.2016
comment
Бинго ... спасибо, Шанкар, это была ошибка, которую я там делал, спасибо за вашу помощь .. - person Prateek Jain; 11.03.2016