Technical information

Kompiraの機能 ジョブフローを実行するフォームを作成する

ジョブフローに権限設定をする」では、オペレーターにジョブフローの中身は見せずに実行だけを依頼したい場合、Kompiraのフォーム機能を使う事をご紹介しました。今回はフォーム機能について、もう少し詳しくご説明します。

まずは、以下のようなジョブフロー「サンプル」を用意します。指定されたサーバー、ユーザー名、パスワードで接続し、指定のコマンドを実行して結果を表示するというものです。

この場合のジョブフローの実行画面は次のようになります。

サンプルジョブフロー
一見してどのように入力したらよいか分かりにくいですね。
このジョブフローを呼び出すためのフォーム「サンプルフォーム」を作ってみます。
サンプルフォーム
この場合のフォームからの実行画面は次の様になります。
フォーム画面

フォームの編集画面には「フィールド名」「フィールド表示名」「フィールド種別」「フィールド修飾子」という入力欄が用意されています。

「フィールド名」には提出オブジェクトに対して渡す引数の名前を指定します。
今回呼び出す「サンプル」ジョブフローはsrv, usr, pwd, cmdという4つの引数を持っているので、それらを指定することになります。

「フィールド表示名」には、実際にジョブフローに渡される引数となる「フィールド名」とは別に、フォームを開いたときに表示させる文字列を自由に指定することができます。さらに、「フィールド種別」で値の種別を選択することができます。一部の種別では指定された様式以外のデータが入力された場合に、エラーとして再入力を促します。例えば”IPアドレス”の項目にはフィールド種別に”IPAddress”を指定しているため、異なる文字列を入力するとエラーとなります。

IPアドレスのチェック

同様に”パスワード”の欄はフィールド種別を”Password”にしたため、入力時には伏字で表示されるようになります。

「フィールド修飾子」には、その他の入力条件をJSON形式で設定することができます。

例えばパラメータ”srv”のフィールド修飾子を

とすると、デフォルト値を指定できます。この場合にはフォーム画面にあらかじめ”192.168.10.1″が記入された状態になります。

パラメータ”usr”のフィールド種別を”enum”、フィールド修飾子を

とすると、入力欄がプルダウンでの選択となります。
enum
この場合に注意するのは”usr”のフィールド種別を”enum”ではなく”string”のままにすると、変わらずに文字列入力のフォームのままになります。
パラメータ”cmd”のフィールド修飾子を

のようにすると、入力項目に説明を表示する事が出来ます。

help_text

オブジェクトを指定させる場合

上記の例ではIPアドレス、ユーザー名、パスワードを実行時に指定させていますが、代わりにノード型オブジェクトを選択させる事も出来ます。(それに合わせてジョブフローも”__node__”に代入するように書き換える必要があります。)仮にディレクトリ”./サーバー”中にノード型のオブジェクトを入れているとして、パラメータ”srv”のフィールド表示名を”サーバー名”、フィールド種別を”Object”、フィールド修飾子を

とすると、下図のように”./サーバ” ディレクトリ中のノード型オブジェクトの一覧を表示するようになります。

オブジェクト型の種別

フォームを利用すると、ジョブフローに直接アクセスさせずにジョブフローを実行する事ができるうえ、実行時にパラメータを指定させる場合に型チェックを行ったり、入力の選択肢を作る事が出来ます。ジョブフローの作成者以外にオペレータの人にジョブフローを実行してもらう場合など、専用のフォームを作ると入力ミスを軽減し、より安全にジョブフローを実行させることができます。