2016-07-07 7 views
0

私は現在、Sales Orderオブジェクトのトリガーを介してSales OrderおよびSales Order Productsを反復処理することに関係する作業を行っています。私は更新トリガの後、Sales Orderから呼び出されるApexクラスを作成しました。トリガは文字列(Sales Order Id)をクラスの静的メソッドに渡します。この将来の呼び出しメソッドは、受注IDに属する受注伝票を照会し、コレクション内の各明細に対してWebサービス呼び出しを行います。これはすべてうまくいきますが、私はこのプロセスがより堅牢でエラーをもっと知的に処理したいと考えています。私ができるようにしたいのは、メソッドが好きではないものに遭遇したときに、プロセス全体を中止することです。例として好まれない順序で製品を識別したとしましょう。中断を処理できる唯一のプロセスは、Queueable Interface経由で、System.enqueueJob()を介してクラスを呼び出すことです。しかし、これは私の人生がSystem.enqueueJob()が呼び出されたときにこのクラスにパラメータを渡す方法を理解することができないので、私には役に立ちません。クラスメソッドは静的で、インターフェイスはプロセスを実行させるContextパラメータだけを取るexecute()メソッド。私はこれで間違った道を歩いていますか?私が考えていた唯一の他の可能性は、クラス内のすべてのサブプロセスのメソッドを作成し、エラーが発生した場合にそれらから戻って、クラス内のプロセスをスキップするために使用できるboolフラグを設定することでした。申し訳ありませんが、これが意味をなさない場合は、私に知らせてください、私はより多くの情報を提供しようとします。トリガからの非同期頂点(将来の呼び出し)を中止しますか?キュー可能なインターフェイスソリューション?

答えて

0

コンストラクタ内のキュー可能なジョブにパラメータを渡すことができます。すなわち:

System.enqueueJob(new myQueueableClass(salesOrderId)); 

あなたが販売注文IDを受け入れ、また、その後​​の方法でアクセスすることができQUEUEABLEクラス、内部で宣言プライベート変数に格納されますあなたのQUEUEABLEクラスのコンストラクタを追加する必要があります。

関連する問題