0

管理パッケージ化されたインストール済みオブジェクトに 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 からインストールされたオブジェクト)

しかし、無効なキーインマップエラーが発生しています:

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 に答える