このセクションの内容:

このチュートリアルでは、以下の DTP Workflow サンプルについて説明します。これらのサンプルを利用して DTP イベントに基づいてメール通知を送る方法について説明します。

  • DTP Data Collector のエラー通知メール
  • 静的解析違反メタデータの更新についての通知メール

この例では以下の DTP REST API を使用します。

  • GET /v1/staticAnalysisViolations/{{event.message.ids.0}}/prioritization/events
  • GET /v1.3/services?relativePath=true

要件

  1. DTP と Extension Designer を正しく設定していること。「サーバーの設定」を参照。
  2. SMTP メール サーバーを設定していること。「SMTP の設定」を参照。
  3. DTP が Parasoft 静的解析/テスト ツールから静的解析データを収集済みであること。編集する違反メタデータが必要だからです。 

セットアップ

  1. DTP Workflow カテゴリで新規にサービスを作成し (「サービスの使用」を参照)、新しいフローを作成します (「フローの使用」を参照)。既存のサービスに新しいフローを追加することもできます。 
  2. ライブラリから以下の 2 つのフローを読み込んでデプロイします。
    • Data Collector Error Email
    • Violation Assignment Email

Data Collector Error Email フローを読み込むと、このフローは Send an Email when a Report Fails to Processes comment ノードでラベル付けされます。Violation Assignment Email フローを読み込むと、このフローは Changes to your assigned violations Notification comment ノードでラベル付けされます。

例 1 - DTP Data Collector のエラー メール通知

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 ノードをダブルクリックします。これは Email ノードです。この例では受信アドレスとメールの件名を設定するために使用します。 

正常にメールが送信されると、最後に non-error レスポンスが得られます。

例 2 - 静的解析違反メタデータの更新通知メール

このサンプル フローは、静的解析違反のメタデータの更新イベントにのみ適用されます。開発者は静的解析の変更を自分の IDE にダウンロードできますが、変更があったことを DTP は自動的にユーザーに通知しません。この例では、担当者が変わったときにメール通知を送信します。

AnalysisMetadata/violations ノードをダブルクリックします。このノードは、AnalysisMetadata/violations イベントをリッスンするよう設定されており、データを msg.event オブジェクトに渡します。

このイベントは複数の違反を渡す場合がありますが、このフローは 1 個の違反だけを処理します。フローの設定によって、一度に 1 つの違反 ID を Get Event Details ノードに渡すようにできます。詳細については「違反のメタデータを更新するには」を参照してください。

Get Event Details ノードをダブルクリックします。これは DTP REST API ノードであり、変更の詳細を得るためにこのフローで使用される、文書化されていない /v1/staticAnalysisViolations/<violationID>/prioritization/events エンドポイントを明らかにします。

Process Data from DTP function ノードをダブルクリックし、JavaScript を確認します。このノードは、新しい担当者の値についてイベント ペイロードをチェックし、その担当者の名前を返します。

 

Find Assignee's email address ノードをダブルクリックします。このノードは、ユーザーのメール アドレスを DTP から探す Get User ノードです。ユーザーにメール アドレスがない場合、このフローは最後にエラーで終了します。「User Administration」を参照してください。

DTP Server Info ノードをダブルクリックします。このノードは Extension Designer から DTP Server の URL 情報を取得し (「サーバーの設定」を参照)、/v1.3/services API を呼び出して DTP から エクスプローラー ビュー の URL を取得します。

Prepare email body ノードをダブルクリックします。この Template ノードは単純なメール ボディを持ちます。

Prepare email body は、メールを配信するために Send Email ノードに接続します。

  • No labels