2016-12-21 18 views
1

給与計算を計算するカスタマイズパッケージがあります。カットオフ開始とカットオフ終了に基づいて選択された従業員の給与計算を処理するバッチ処理ページを持っています。処理ページには独自の「時間インジケータ」があり、それが正確かどうか疑問に思っていました。私はコードのパフォーマンスをベンチマークし、それを表示するかログファイルに保存するかによって従業員一人当たりの処理時間を得たいと考えています。どうすればこれを達成できますか?いくつかのサンプルコードは非常に高く評価されます。acumaticaのカスタム処理ページをベンチマークする方法

答えて

1

私は同様の必要性を持っていました。 PX.Data.PXLongOperation.GetStatusを使用できます。私の例では、以下のことを容易にするために拡張メソッドでそれを使用しています。

public static TimeSpan GetLongRunningTimeSpan<T>(this T graph) where T : PX.Data.PXGraph 
{ 
    TimeSpan timespan; 
    Exception ex; 
    PX.Data.PXLongOperation.GetStatus(graph.UID, out timespan, out ex); 
    return timespan; 
} 

のTimeSpan値は、あなたの長い実行中のプロセスの現在の実行時間が含まれます。

あなたがちょうどあなたのグラフのプロセス内this.GetLongRunningTimeSpan()を呼び出すことができる拡張メソッドを使用している場合。値を表示するには

、あなたはPXTrace.WriteInformationを使用してAcumaticaトレースウィンドウにメッセージを送ることができます。次に例を示します。

PXTrace.WriteInformation("Employee {0} processed in {1} seconds", 
     someEmployee, graph.GetLongRunningTimeSpan().TotalSeconds); 

処理が完了したら、[ヘルプ]> [トレース]を選択するとメッセージが表示されます。

関連する問題