0

新しいリードが入ってきたら、ビフォア トリガーと、リード フィールドの値を含む Visualforce メール テンプレートを使用して、SingleEmailMessage クラスを使用してメールを送信したいと考えています。電子メールが生成されていますが、すべてのリード フィールドがヌルですが ( 経由で認識System.Debugされます)、値が通話に送られます。

メソッドを介してまだ保存されていないリード ID を渡しているためmail.setWhatId(lead.Id)、メール クラスが Id 値を使用して、まだ保存されていないリードへの参照としてではなく、データベース ルックアップを実行しようとしていると考え始めています。メモリー。

それが事実かどうか誰かが知っていますか?リードがすでに存在する場合、私のクラスは問題なく動作します。

Apex メール クラスが DB 読み取りを行う場合、リードを保存する前にリード フィールドの値を送信して電子メールで更新する必要がある場合のパターンの提案はありますか? メールが顧客に宛てられているため、ワークフローのメール通知を使用できません。また、いくつかのリード項目に基づいて既存の取引先レコードから取得するアドレスを整理する追加の Apex コードがあるため、VF を使用する必要があると思います。そもそもメール テンプレート。

4

1 に答える 1

2

setWhatId(そして、ID 値を引数として取るほとんどすべてのメソッド) は、行が既に永続化されていることを確実に想定しています。これを回避するには、before トリガーでフィールドの更新を行い、after トリガーを追加してメールを送信できるようにする必要があります。

于 2011-07-18T01:08:29.127 に答える