You need to sign in to do that
Don't have an account?
whitesnake
Developer Editionのワークフロー・アラートメールが届くのが遅くないですか?
投稿デビュー&Salesforceデビューしたばかりです。
DeveloperEditionをフリーで入手して、正規版と同じ機能が無料なんて・・・すごいと思って、ガシガシ作ってみていたのですが、
あれ、ワークフローでルールしたアラートメールが届くのが遅いようなと感じてます。
やはり、無料だからでしょうか。正規版だとさくさく行くのでしょか?
仕組みを簡単に:
1) VisualForceの入力画面があり、そこでメールテンプレートを選択してメール送信ボタンを押します。
2) メール送信ボタンを押すと「メールを送信します」フラグをONします。
3) トリガ(Before)が動いて、「メールを送信します」フラグがONの時、メールアドレス(オブジェクトのカスタム項目のメール)にセットします。
4) ワークフロールールが起動して、メールを送信します
5) ワークフロールールが起動して、「メールを送信します」フラグをOFFにします。
御存じの方、教えてください。
いろいろと試してみた所、次のような現象が発生していました。
ワークフロールールA : 対象オブジェクト Object_XXX
[アクション]アラートメール送信
ワークフロールールB : 対象オブジェクト Object_XXX
[アクション]アラートメール送信(タイムトリガ―)
としていた場合に、ワークフロールールBの方だけが送られてきました。
ワークフロールールAだけにした所、Aだけに送られました。
ワークフロールールC : 対象オブジェクト Object_XXX
[アクション]アラートメール送信
[アクション]アラートメール送信(タイムトリガ―)
として、統合してみた所、「[アクション]アラートメール送信」を送信した後に、「時間ベースのワークフロー」にあった「[アクション]アラートメール送信(タイムトリガ―)」(レコード)が
予定時刻になっていないにも関わらず、消えた!
ワークフローって便利ですけど、いろいろとややこしいですよね。
他にもワークフローの自動更新でUpdateした後にUpdateトリガーが実行されるとか、
同じ条件で動くワークフローが複数あった場合は順番が保証されないとかがあるみたいです。
ちなみにDeveloper Editon と他のEditonで処理速度の違いは多分ないと思います。
ちゃんと検証したことはないので、多分ですけど...(^_^;
情報ありがとうございます。
いろいろやってみて、分かったことを残します。
1) Apexクラス内でUpsertを実行した順序通りにトリガは実行されています。
後先はUpsertの実行順で、その時の状態でトリガには入ってました。
2) トリガからバッチに移動すると、実行順序はシステムに委ねられるようです。
(具体的な順序があるのかは不明ですが、株式会社ウフル技術さんのブログに有益な情報がありました。)
http://deferloader.blog.uhuru.co.jp/?p=975
ある程度、開発側で管理できるのは、トリガまでかなと思います。
3) バッチに入ってからの動作は、毎回実行されるタイミングがいつなのかはっきりしない。
バッチがキューに入っている時に、Updateやワークフローの項目更新などを行うと、訳が分からない動作をすることがあった。
監視→デバッグログで時刻を時系列に並べてみると、なるほどでした。