ノードを選択して連結することによってフローを設計します。フローは特定のポリシーを実装するサービスを定義します。フローでノードを使用するには、parasoft パレットからシートにノードをドラッグします。
このセクションの内容:
Parasoft ノード
Extension Designer には、Parasoft の機能に特化したノードがあらかじめ用意されています。
Component ノード
Component ノードは、再利用できるフロントエンドの Web コンポーネントを作成するために使用します。Component ノードと Parameters ノードは Endpoint ノードから呼び出され、フロンドエンド コンポーネントを作成するために設定する必要があります。あらかじめプログラムされたサンプルの Component ノードを Extension Designer ライブラリからインポートできます。詳細については「Extension Designer によるカスタム DTP ウィジェットの作成」を参照してください。
Parametersノード
Parametersノードは、再利用できるフロントエンドの Web コンポーネントを作成するために使用します。Parameters ノードと Component ノードは Endpoint から呼び出され、フロンドエンド コンポーネントを作成するために設定する必要があります。あらかじめプログラムされたサンプルの Parameters ノードを Extension Designer ライブラリからインポートできます。詳細については「Extension Designer によるカスタム DTP ウィジェットの作成」を参照してください。
Endpoint ノード
このノードは、フルスタックな Web コンポーネントを作成するために必要なすべての機能をカプセル化するサービス エンドポイントを公開します。Endpoint ノードは Component ノードと Parameters ノードを参照します。Endpoint ノードが機能するためには、これらのノードを設定する必要があります。
サービスでは、同じフローの複数のインスタンスを実装できます。ただし、フローが Endpoint ノードを含む場合、UUID が異なっていなければなりません。そうでない場合、フローの 1 番目のインスタンスだけが読み込まれます。UUID は手動で変更できます。また、UUID を削除して [UUID] フィールドを空にしてノードを再保存することもできます。[UUID] フィールドで何も指定せずにノードを保存すると、そのインスタンス固有の UUID が新たに生成されます。
以下の種類のエンドポイントを公開するよう Endpoint ノードを設定できます。
- General: General エンドポイントは UI コンポーネントを持ちません。全般的なリクエスト/レスポンス シナリオ (たとえば cURL コマンドによるフローのトリガー) に使用できます。
- Parameter Values: Parameter エンドポイントは、作成中のウィジェットにあるドロップダウン メニューの内容をコントロールするために使用されます。「Parameter ノードの設定」を参照してください。
- Report: Report エンドポイントは、ドリルダウン レポートを表示するよう設定された Component ノードとそれに関連する Parameters ノードを指します。
- Widget: Widget エンドポイントは、ウィジェットを表示するよう設定された Component ノードとそれに関連する Parameters ノードを指します。
Profile Search ノード
Profile Search ノードは、フローで使用するためにモデル プロファイルを収集します。
[Additional attributes] セクションでさらに検索パラメーターを指定して、高度な検索を実行できます。
レポート スキーマに追加属性を設定している場合、追加属性に一致するキーと値のペアを検索パラメーターに追加して、個々のレポート プロファイルを探すことができます。
ここで作成したキーと値のペアでは、ノードに渡される msg オブジェクトの mustache 表記の値 ( {{property}} ) を使用することもできます。
DTP REST API ノード
全般的な目的のノードであり、DTP REST API をリクエストします。DTP のエンドポイントについては「REST API」を参照してください。
DTP REST API ノードに "requesting" メッセージが表示され続ける場合があるかもしれません。
エラー メッセージについては $DTP_SERVICES_HOME/logs/<service UUID>.log ファイルまたは $DTP_SERVICES_HOME/logs/main.log ファイルを確認してください。ほとんどの場合、この問題は膨大なペイロードをサービスが DTP REST API に送ろうとすることで発生します。ペイロードを削減または分割して、複数の接続を行ってデータをポストしてください。
DTP Server Info ノード
このノードは、Extension Designer の構成ページで設定されている DTP Server の情報を収集します (「DTP Enterprise Pack の設定」を参照)。
DTP Store Metrics ノード
このノードを使用すると、新しいメトリクス タイプを定義し、新しいメトリクスの結果を DTP に送信してカスタム メトリクスを保管できます。
Get User ノード
このノードは DTP ユーザー情報を取得します。
Database ノード
このノードを使用すると、Enterprise Pack データベースとやり取りできます。このノードを使用して、フローの実行とサービスの再開をまたがってデータを保持することができます。
Event In ノード
このノードは、Extension Designer のイベント ブローカーから MQTT イベントをサブスクライブするために使用します。
Event Out ノード
このノードは Extension Designer イベントをパブリッシュします。
Mail ノード
このノードは、SMTP の設定 で定義された SMTP メール サーバーを使って電子メールを送信できます。
i18n ノード
このノードはローカライズ情報を格納します。
function ノード
function ノードは Parasoft 固有のノードではありませんが、Extension Designer のほとんどすべてのフローで重要な役割を果たします。function ノードに JavaScript を追加して、独自のロジックを作成できます。function ノードは function パレットにあります。
function ノードには有用なライブラリがあらかじめ用意されています。
lodash | function ノードに以下の行を追加すると、lodash を初期化してその機能を利用できます。
lodash ユーティリティ ライブラリの詳細については https://lodash.com/docs を参照してください。 |
---|---|
moment | moment ユーティリティ ライブラリは、フローの中で日付と時刻を操作するために使用します。function ノードに以下の行を追加すると、moment を初期化してその機能を利用できます。
moment ユーティリティ ライブラリの詳細については https://momentjs.com/docs/moment を参照してください。 |
os | node.js のこのモジュールは、OS 固有の情報を検出します。function ノードに以下の行を追加すると、os を初期化してその機能を利用できます。
os ユーティリティ ライブラリの詳細については https://nodejs.org/api/os.html を参照してください。 |
function ノードの詳細については、次のリンク先の情報を参照してください: https://nodered.org/docs/writing-functions
ノード マーカー
入力ノード | ノードは左から右にデータを処理します。左側にある白い四角形は、そのノードがメッセージ オブジェクトから入力を受け取ることができることを表します。ノードの説明に、期待される入力 "msg" 形式についての記述が表示されます。 | |
---|---|---|
出力ノード | 右側にある白い四角形は、そのノードがペイロード データを出力できることを表します。右側にアイコンが複数ある場合、複数のデータセットをノードが出力できることを意味します。 | |
入力と出力の両方があるノード | 左と右の両方に四角形がある場合、そのノードはメッセージ オブジェクトを受け取り、ペイロード データを出力できます。期待される入力と出力の詳細については、各ノードのオンライン ドキュメントを参照してください (ノードを選択し、[処理ノードの仕様] タブで説明を参照します)。 | |
設定が足りないノード | 赤い三角形は、すべての必須フィールドが適切に設定されていないことを表します。ノードをダブルクリックすると、どのフィールドでさらに設定が必要かが分かります (該当するフィールドは赤い枠で強調されます)。適切にノードを更新してください。 | |
保存されていないノード | 青い丸は、ノードがまだサーバーに保存されていないことを表します。青い丸のノードがある場合、[デプロイ] ボタンがアクティブになります。 |
ノードの編集
ノードを編集するには、ノードをダブルクリックし、表示されたダイアログでコントロールを使って必要な設定を行います。ノードの機能によって、編集コントロールが異なります。
[処理ノードの仕様] タブに、ノードについての説明が表示されます。多くのノードには必須フィールドがあります。まだ設定していない必須フィールドは赤で強調されます。必須フィールドをすべて設定していない状態でノードを保存すると、ノードに赤い三角形が表示されます。
mustache 表記
function ノード、REST API ノード、および他のノードでは、「mustache」と呼ばれる二重の中括弧 ( {{ }} ) を使ってメッセージ変数を表すことができます。
例
以下のコードをノードに追加した場合:
Hello {{name}}.Today is {{date}}
以下のメッセージが受信されます。
{ name: "Fred", date: "Monday" payload: ... }
ペイロードは以下のようになります。
Hello Fred.Today is Monday
また、一部のノードは 3 重の mustache 表記を使用することもあります。これは、エスケープされない HTML を表現するために使用されます。たとえば: {{{something}}}
入力/出力 フィールド
多くのノードには入力フィールドと出力フィールドがあります。入力/出力フィールドには常に接頭辞として "msg." が付きます。この接頭辞は、(フィールドの目的によって) 入力または出力として使用される msg オブジェクトのプロパティを設定するためにフィールドが使用されることを表します。
入力および出力プロパティを持つ最も一般的なノードとして、たとえば DTP REST API ノードがあります。
GET メソッドを選択すると、DTP REST API ノードは [Response] フィールドだけを提供します。この [Response] フィールドは、API からのレスポンスが書き込まれる "msg" オブジェクトのプロパティを定義するために使用します。出力プロパティを定義するための手法が提供されているため、さまざまなリソースからのデータの管理が簡略化されます。追加データを取得するためにデータを移動したり再構成したりする function ノードをさらに追加する必要はありません。
デプロイされたスライスでの不明ノードの対応
不明のノードまたは認識されないノードがあると、デプロイしたフローが適切に機能しません。この状況が発生するのは、たとえば、インストールするアーティファクトが、インストールされいないアーティファクトに依存する場合などです。
デプロイしたスライスに不明のノードまたは認識されないノードがある場合、以下のいずれかの操作を行います。
- PIE Slice Designer からそのスライスを削除します。
- 不明ノードがあるアーティファクトをインストール/再インストールします。
この操作による変更を有効にするには、サービスを再開します。新しいノードは、サービスを開始したときに初めて認識されます。
ベスト プラクティスとして、アーティファクト マネージャーからアーティファクトをアンインストールする際は、アーティファクトの削除によって破損するスライスも必ず削除してください。