0

私はコンピューティングの学位を取得したばかりで、業界関連の仕事を始めたばかりです。うわー、私たちは大学ではあまり学んでいないようで、基本的なことしか学んでいません。

とにかく、私は Apex を学んでいて、最初のトリガーを書こうとしています。オンライン チュートリアルは非常に容赦がなく、私の脳に欠けているものを見落としているように思えます。

指定したアドレスに電子メールを自動的に送信するトリガーを書いています。電子メールの送信部分は問題ありませんが、変更されたものを電子メールで送信し、何かが変更されたかどうかを読みたいと思います。私がこれまでに持っているものは次のとおりです。

trigger Test1 on Account (after update) {

if(Trigger.isUpdate) {


    //Commit current transaction, reserver email capacity
    Messaging.reserveSingleEmailCapacity(1);
    //Create an email message object
    Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();

    List<Messaging.SendEmailResult> results = new list<Messaging.SendEmailResult>();
    //hold email address
    String[] toAddresses = new String[] {'example@example.com'};

    //Assign new address string
    mail.setToAddresses(toAddresses);
    //specify return ad (assuming as being sent from server)    
    mail.setReplyTo('pwitherby@gmail.com');
    //sender name
    mail.setSenderDisplayName('Mr Apex Tester');
    //Subject Specification
    mail.setSubject('Subjected to Learning');
    //And... the content
    mail.setPlainTextBody('You have just changed sumek... this really what you want....?')

    if (!results.get(0).isSuccess())                       
        System.debug('That didnt really work did it? Reason: ' + results.get(0).getErrors()[0].getMessage());
    }
}

だから私が答えを見つけることができない私の主な質問: これは現在動作しますか? スキーマ内の何かが変更/更新された場合、これはこの電子メールを送信しますか? メール本文に変更されたものと変更されたものを入れたいと思います。つまり、「あなたは「+ whatsChanged +」を「+ telephoneNumber. 変更をリッスンするにはどうすればよいですか、またはすでにそれを行っていますか? 私はこれをまともな標準に合わせて書いているのでしょうか、それともただの厄介なコードですか!

ワッフルして申し訳ありませんが、それは私の最大の失敗ですが、それなしで質問を増やすのに苦労しています!

4

1 に答える 1

1
  1. トリガーをアクティブにする必要はありません。書き込むだけで十分です。
  2. 変更された新しい値には、Trigger.new (および古い値の場合は Trigger.old) を介してアクセスできます。トリガーのドキュメントについては、こちらを参照してください。
  3. おそらく、ワークフローはあなたがやろうとしていることにより適しています。そして最後に、最初からコードの標準 (または美しさ) についてあまり心配しないでください。いずれにせよ、コードが大きくなった場合にのみ違いが生じます。
于 2013-07-25T08:14:25.820 に答える