1

データベースを読み取ってレコードを処理する Apex プログラムを作成しています。レコードを処理するたびに、メッセージを出力したいと考えています。現在、これを行うために System.Debug を使用していますが、デバッグ ログが雑然としているため、これは適切なアプローチではないようです。

SalesForce で画面またはログファイル出力を生成するには、他にどのような方法がありますか?

4

3 に答える 3

1

引き続き使用しSystem.Debug()ますが、出力メッセージのみを表示したい場合は、 でフィルタリングしてDEBUGください。それ以外の唯一のオプションは、ビューを作成することであり、それは価値があるものよりも混乱しています。

于 2012-09-25T06:48:39.653 に答える
0

[設定]>> [管理設定] >> [監視] >>[デバッグ ログ] の下にある未加工形式のログを開いてください。[監視対象ユーザー]の下で[フィルター]に移動し、すべてのフィルター レベルを有効にします。指定された頂点コードを使用するようになりました

System.debug('StackOverflow >>1234'+ e.getMessage)

詳細なデバッグ ログでStackOverflow >>1234固有のメッセージを検索します。system.debug がその特定のデバッグ ログで実行されていない可能性もあるため、最近のすべてのデバッグ ログを確認することを忘れないでください。:)

于 2012-09-25T10:59:16.807 に答える
0

独自の Logging__c オブジェクトを作成することを考えることができます。そして、処理されたレコードごとにレコードを作成します。ただし、ガバナーの制限を回避するには創造的である必要があります。

各レコードの処理の間にメッセージを出力することが必須でない場合は、処理が継続するにつれて Logging__c レコードのコレクションを作成し、定期的に、またはプロセスに例外が発生したときにそれらを挿入できます。

それらを定期的に挿入する場合でも、実行中の処理作業と合わせて 150 の DML 制限に達するほどジョブが大きくないことを確認する必要があることに注意してください。また、処理の最後に挿入されるレコードをすべて格納する場合は、ヒープサイズが 6MB になることに注意してください。

または、Batch Apex http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_batch_interface.htmをご覧ください。

これにより、非同期チャンクでジョブの処理を処理するクラスを作成できます。一度に処理されるレコードの数を設定できます。したがって、この小さな値 (~20) を設定してから、各ジョブ レコードが処理されるときに Logging_c レコードを挿入して、バッチ Apex DML 制限の 200 内に収まるようにします。その後、Logging_cレコードをリアルタイムで監視して進行状況を表示できます。

于 2012-10-24T10:43:02.723 に答える