4

メール テンプレートを使用して、セールスフォースのユーザーにメールを送信する必要があります。このテンプレートには、カスタム オブジェクトの差し込み項目タイプが含まれています。

 Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setTargetObjectId(user.get(0).id);


mail.setTargetObjectId(user.get(0).Id)
mail.setTemplateId(specifier.get(0).Template_id__c);
mail.saveAsActivity = false;
mail.setWhatId(custom_object.Id);

ドキュメントを読む targetObjectId フィールドに連絡先を指定すると、whatId も指定できます。これにより、テンプレートの差し込み項目に正しいデータが確実に含まれるようになります。値は、次のいずれかのタイプである必要があります。 アカウント アセット キャンペーン ケース 契約 機会 注文 製品 ソリューション カスタム

ただし、連絡しないユーザーにメールを送信する場合は、上記のコードのように、カスタム オブジェクトの差し込みフィールド タイプにカスタム オブジェクトを割り当てる方法

4

3 に答える 3

4

これは、彼らの電子メール方法の巨大な全体であり、何年もの間私を悩ませてきました. 特に特定のワークフローの電子メール アラートでは、ユーザーに電子メール テンプレートを送信するのに問題はないようです。残念ながら、ターゲットがユーザーの場合は setWhatId() を使用できません。ただし、その機能を追加するために投票することはできます。

私はこれを回避しました。通常、ユーザーと同じ名前と電子メールで連絡先を作成し、それを使用して電子メールを送信してから削除します。これはうまく機能しますが、連絡先オブジェクトの検証ルールを処理するのは難しい場合があります。完全な議論については、開発ボードを参照してください。

于 2012-06-20T02:00:14.827 に答える
1

これが可能かどうかはわかりませんが、カスタム オブジェクトとマージされたメールを受信するユーザーとの関係によって異なります。User と CustomObject の間に 1 対 1 の関係がありますか? その場合、おそらく、各ユーザー オブジェクトが参照する単一のカスタム オブジェクト インスタンスへの参照を追加してから、ユーザー オブジェクトにカスタム数式フィールドを追加するCustomObject__r.CustomField__cとうまくいくでしょう。

User オブジェクトのカスタム数式フィールドで:

TEXT(CustomObject__r.CustomField__c)

次に、テンプレートをユーザー テンプレートに変更すると、差し込み項目はカスタム オブジェクト インスタンスを実際に指す数式項目になります。しかし、User と CustomObject__c の間に 1 対多または多対多などの他の関係がある場合は、運が悪いと思います。

于 2012-06-19T18:33:53.073 に答える