VisualforceとApexを駆使してバッチっぽい挙動をさせる話。

Salesforceで大量データを処理するさいに、Apex Batchを使うのは一つのベストプラクティスです。
ですが、バッチ起動のタイミングがVisualforceのボタンプッシュとして、処理が終わったかどうかを操作者に伝えるための方法で画面更新っていうのはできるのかな?
私は少なくとも分からず、代替案としてメールで通知するとか、ToDoに入れるとかではないかと思っています。

っで、要件として、
1.大量処理をしたい
2.バッチ処理が終わったかどうかをその画面で判断できるようにせよ
という課題があったようで、バッチ処理っぽい動きになるようなものを作ることになりました。
いろんな人のアイディアをお借りして、以下のような実装をしました。

1.ボタンを押す
2.Apex処理起動
3.CommandButtonのoncompleteでjavascriptへ
4.apexで処理した件数が想定より少ない場合、ActionFunctionでApex処理起動(2と同じApexのメインメソッド)。
繰り返し。
5.処理が終わったら、処理終了のjavascriptメソッド→ActionFunctionでApex処理(終了処理)

というような流れのイメージです。
この方式のデメリットとして、
・処理中は該当のVisualforce画面を閉じたらいけない。
・ネットワークが切れたらいけない。
・PCがスリープモードになったらいけない。
・モバイルはおそらくNG。
というのはありますが、上記条件をクリアできるなら、大量データをCSVとしてドキュメントに吐き出すといったこともできるかもしれません。

Visualforce



Apex

関連記事


--------------------------------------------------------------------------------------

コメントの投稿

非公開コメント

このブログについて
  • 全記事一覧(時間順)
  • このブログについて
  • 私のプロフィール
  • 当ブログで扱っている動画について
  • 記事違いなコメントのお返事

  • カテゴリー
    twitter
    カレンダー
    04 | 2017/05 | 06
    - 1 2 3 4 5 6
    7 8 9 10 11 12 13
    14 15 16 17 18 19 20
    21 22 23 24 25 26 27
    28 29 30 31 - - -
    Amazon
    でたらめな当ブログにぴったりな商品を自動で表示するみたいです。



    月別アーカイブ
    プロフィール

    たづみ

    Author:たづみ
    ・1981年生まれの男
    ・もう少し詳細なプロフィールはこちらで

    最新コメント
    アクセスランキング
    [ジャンルランキング]
    日記
    676位
    アクセスランキングを見る>>

    [サブジャンルランキング]
    会社員・OL
    130位
    アクセスランキングを見る>>