このセクションの内容:
はじめに
このチュートリアルでは、以下の DTP Workflow サンプルについて説明します。これらのサンプルを利用して DTP イベントに基づいてメール通知を送る方法について説明します。この例では、次の DTP REST API を使用します。
- Endpoint: http://<HOST>:<PORT>/grs/api/v1/staticAnalysisViolations/{{event.message.ids.0}}/prioritization/events
- URL: /staticAnalysisViolations/{{event.message.ids.0}}/prioritization/events
- メソッド: GET
要件
- DTP および Extension Designer を正しく設定していること。「サーバーの設定」を参照してください。
- SMTP メール サーバーを設定していること。「SMTP の設定」を参照してください。
- DTP が Parasoft 静的解析/テスト ツール (C/C++test、dotTEST、 Jtest) から静的解析データを収集済みであること。編集する違反メタデータが必要だからです。
セットアップ
- DTP Workflow カテゴリで新規にサービスを作成し (「サービスの使用」を参照)、新しいフローを作成します (「フローの使用」を参照)。既存のサービスに新しいフローを追加することもできます。
- Extension Designer のメニューから [読み込み] を選択します。
- [Library] タブをクリックし、[Examples] > [Data Collector Error Email.json] を選択します。
- [読み込み] をクリックし、フローをタブにドロップします。
Data Collector Error Email フローを読み込むと、このフローは Send an Email when a Report Fails to Processes comment ノードでラベル付けされます。
構成
DTP の DataCollector
トピックは、Data Collector から作成されたイベントについてサブスクライバに通知します。このトピックは 3 種類のイベントをサポートします。
ReceivedEvent
: Data Collector がレポートを受け取って処理を開始するときに、イベントがスローされます。ProcessedEvent
: Data Collector がレポートの処理を正常に完了したときに、イベントがスローされます。ErroredEvent
: Data Collector がレポートの処理中にエラーに遭遇したときに、イベントがスローされます。
詳細については「イベント トピック」を参照してください。
- DataCollector/ErroredEvent ノードをダブルクリックします。これは Event In ノードです。この例では
DataCollector
トピックをサブスクライブして JMS のErrorEvent
イベントをリッスンするために使用します。このDataCollector/ErrorEvent
イベントが実行されるのは、「エラーを受け取り、レポートされたテスト結果を処理できないこと」を Data Collector がサブスクライバに通知するときです。
このノードはペイロード データを msg.event に転送します。データにはイベントについての詳細情報が含まれています。 - Prepare email body ノードをダブルクリックします。これは Template ノードであり、メール ボディのテンプレートを簡単に作成できます。この例では、メール ボディはイベントから受け取ったデータを含みます。
- [処理ノードの仕様] タブに、このノードの設定方法が表示されます。メニューから [表示] > [サイドバーの表示] を選択します。
- (オプション) Event ノードの後に debug ノードを追加して、イベントからのペイロードを確認できます。そうすることで、ペイロードをキャプチャーし、必要に応じてテンプレートをカスタマイズできます。
- Send Email to Team Lead ノードをダブルクリックし、受信アドレスとメールの件名を設定します。[Body] フィールドは、ステップ 2 で設定したボディを参照します。
正常にメールが送信されると、最後に non-error レスポンスが得られます。