API プラグインを使用してポリシーとフォームにデータをロードする

この記事には、以下のトピックが含まれています。
casm173
この記事には、以下のトピックが含まれています。
管理者とサービス設計者が協力して、ポリシーとフォームにデータをロードする API プラグインを次のように書き込みます。
  • ポリシーの場合、このデータによってリクエストの担当者(承認者)が指定されます。 アクション ビルダを使用して手動で担当者を指定する代わりに、プラグインを使用します。 ユーザがリクエストを送信すると、API プラグインによって担当者が動的に指定されます。
  • フォームの場合、このデータによって、動的テーブル、2 重リスト、または選択ボックスとそのオプション値が指定されます。 たとえば、ユーザが仮想コンピュータを予約するフォームに入力すると、レポート データ オブジェクトによって利用可能なコンピュータのリストが入力されます。 また、他のレポートデータオブジェクトを書き込んで、関連するフィールド(RAM やディスク容量のオプションなど)に入力できます。
API プラグインによって、MDB や他のデータ ソースのクエリが実行されます。 API プラグインによって、指定する条件を満たすオブジェクトの数が返されます。 独自の API プラグインを作成するか、定義済みプラグインをコピーし、要件に合わせて変更できます。
いずれの場合も、前提条件を満たし、プラグインをコンパイルすれば、プラグインを使用できます。
API プラグインは、ファイルストアのプラグイン ディレクトリで jar ファイルとして展開されます。 API プラグインは、CA Service Catalog と同じ Java VM インスタンスで実行されます。
適用されるタスクを実行します。
ポリシーの API プラグインの使用
ポリシーの API プラグインを作成して使用するには、以下のプロセスに従います。
  1. プラグインの目的または目標を定義します。
    API プラグインは、データの外部システムを問い合わせて担当者を指定するのに便利です。 API プラグインはまた、リクエストのデータによって ID が変わる場合にも便利です。 このデータに基づいて、プラグインは動的に担当者リストを作成し、担当者レベルを指定します。
  2. 前提条件の確認
  3. 以下が実行できる必要があります。
    • Java のプログラミング
    • 条件を含めてポリシーを作成し、必要な担当者のタイプを把握する
  4. 以下のように API プラグイン ドキュメントを確認します。
    1. [管理]-[ツール]-[プラグイン]を選択します。
    2. [API ドキュメント]をクリックします。
    3. com.ca.usm.plugins.apis.policies パッケージを確認します。
    API ドキュメントは、プラグイン用に Java クラス メソッドに基づいて自動的に生成される Java ドキュメントです。 プラグインを実装するためにインターフェース、クラス、メソッドなどを使用します。
  5. ポリシーのサンプル API プラグインを以下のようにダウンロードし、確認します。
    1. [管理]-[ツール]-[プラグイン]を選択します。
    2. [サンプル ポリシー プラグイン]をクリックし、詳細を確認して、ソース コードをダウンロードします。
    3. \src\java\com\ca\usm\plugins\samples\policy フォルダの SamplePolicyPlugin.java ファイルを開いて確認します。 このサンプル ポリシー プラグインをモデルとして使用します。
  6. com.ca.usm.plugins.apis.policies.AssignmentPolicyPlugin というインターフェースを実装する Java クラスを作成します。 サンプル ポリシー プラグインは、このインターフェースを実装する方法を示します。
  7. (オプション)コンテンツ設定フォームを使用する場合は、これらのフォーム上のフィールドから値を取得します。 必要に応じて、フォームを使用します。
  8. プラグイン用のプロパティ ファイルを作成します。 プロパティ ファイル用のモデルとして、サンプル ポリシー プラグインの plugin.properties ファイルを使用できます。
  9. クラスとサポート ライブラリを提供するプロパティ ファイルや JAR ファイルを保存するフォルダを作成します。
    プロパティ ファイルはフォルダの
    最上位
    レベルに格納します。 サブフォルダにプロパティ ファイルを格納
    しないで
    ください。
  10. プラグインを有効にします。
    1. CA Service Catalog の Windows サービスを停止します。
    2. フォルダ(存在する場合は、すべてのサブフォルダを含む)を USM_HOME\filestore\plugins フォルダにコピーします。
  11. CA Service Catalog の Windows サービスを開始します。
  12. プラグインが正しく適用されたことを確認します。
    1. [管理]-[ツール]-[プラグイン]を選択します。
    2. プラグインがリスト表示され、その詳細が正しく表示されることを確認します。
  13. このプラグインをテストします。
    1. ポリシーの担当者を指定するためにそれを使用します。
    2. ポリシーをアクティブにするリクエストを送信し、ポリシーによって承認者が動的に予定どおり割り当てられることを確認します。
フォームの API プラグインの作成
フォームで使用する API プラグインを作成して使用するには、以下のプロセスに従います。
  1. プラグインの目的を定義します。 たとえば、ユーザが指定の期間にわたって予約できる会議室が選択フィールドに自動的に入力されるようにするなどです。 他の例には、プロジェクター、ビデオ会議ユニット、マイクなどの会議室用オプションがあります。
  2. 前提条件を満たしていることを確認します。 以下が実行できる必要があります。
    • Java のプログラミング
    • フォーム デザイナによるフォームの作成
    • フォーム デザイナ フォームで以下のフィールドの作成。
      • 単一選択フィールド、複数選択フィールド、2 重リスト フィールド
      • 動的テーブル フィールド
  3. 以下のように API プラグイン ドキュメントを確認します。
    1. CA Service Catalog にログインし、[管理]-[ツール]を選択します。
    2. [リンク]を選択します。
    3. [プラグイン ドキュメント]をクリックします。
    API ドキュメントは、プラグイン用に Java クラス メソッドに基づいて自動的に生成される Java ドキュメントです。 プラグインを実装するためにインターフェース、クラス、メソッドなどを使用します。
  4. 以下のように、プラグインが適用されるフォーム デザイナ フィールドのタイプに合わせて Java クラスを作成します。
    • 単一選択フィールド、複数選択フィールド、2 重リスト フィールドの場合: com.ca.usm.plugins.apis.forms.FDSelectDataProvider インターフェースを実装する Java クラスを作成します。 このインターフェースのサンプル実装は、[サンプル選択プラグイン]の ID ca.catalog.samples.select-plugin で提供されています。
    • 動的テーブル フィールドの場合: com.ca.usm.plugins.apis.forms.FDTableDataProvider インターフェースを実装する Java クラスを作成します。 このインターフェースのサンプル実装は、[サンプル テーブル プラグイン]の ID ca.catalog.samples.table-plugin で提供されています。
    インターフェースの Java ドキュメントにアクセスするには、[管理]-[ツール]-[プラグイン]をクリックし、[API ドキュメント]をクリックします。
    サンプル ソース コードをダウンロードするには、同じページにあるサンプル プラグインをクリックし[ソース コードのダウンロード]をクリックします。
  5. プラグイン用のプロパティ ファイルを以下の手順で作成します。
    • サンプル プラグインをプロパティ ファイルのモデルとして使用します。 その場合、plugin.properties ファイルのプラグイン ID プロパティを変更します。
    • Java Development Kit 1.6 以降および Apache Ant 1.8 以降を使用して、含まれているビルド ファイルを使用してプラグインをコンパイルします。
    • プライベート クラス ローダーをプラグインに使用します。 カスタムのクラスローダーを使用するには、plugin.properties ファイルに以下の行を追加します。
      classloader.type=private
      CA Service Catalog リリース 12.7 からのカスタム プラグインでは、CA Service Catalog のアップグレード後の更新は
      不要
      です。 これらのプラグインは、元の機能を続行します。
  6. (オプション)コンテンツ設定フォームを使用する場合は、これらのフォーム上のフィールドから値を取得します。 必要に応じて、フォームを使用します。
  7. 適用されるアクションを実行します。
    • 選択フィールド用のページ付けパラメータの設定
    • 選択ボックス専用の属性の設定
    • 動的テーブル用の並べ替えおよびページ付けパラメータの設定
  8. クラスとサポート ライブラリを提供するプロパティ ファイルや JAR ファイルを保存するフォルダを作成します。
    プロパティ ファイルはフォルダの
    最上位
    レベルに格納します。 サブフォルダにプロパティ ファイルを格納
    しないで
    ください。
  9. プラグインを有効にします。
    1. フォルダ(存在する場合は、すべてのサブフォルダを含む)をファイルストアのプラグイン フォルダにコピーします。
    2. [管理]-[ツール]-[プラグイン]を選択し、[プラグインの再ロード]メソッドをクリックします。
  10. プラグインが正しく適用されたことを確認します。
    1. CA Service Catalog にログインし、[管理]-[ツール]を選択します。
    2. プラグインを選択します。
    3. プラグインがリスト表示され、その詳細が正しく表示されることを確認します。
フォーム フィールドで使用されるこの API をテストする準備が整いました。
選択フィールド用のページ付けパラメータの設定
プラグインは、フォーム上の選択フィールドで大量のデータを返す場合があります。 その場合は、一般に選択フィールドで結果のページ サイズを指定します。 その一例として、選択フィールドで 1 ページ当たり 10 の結果が表示されます。 このタスクを実行するには、関連の Java クラスおよびオブジェクトで、ページ付け用のパラメータを設定します。
以下の手順に従います。
  1. com.ca.usm.plugins.apis.forms.FDTableDataProvider というインターフェースを実装する Java クラスを編集します。 以下のメソッドを FDSelectDataProvider で実装します。
    List<FDOption> getOptions(int start, int numToReturn);
    • start
      返す最初の行を指定します。 このパラメータは整数です。
    • numToReturn
      返す行の数を指定します。 このパラメータは整数です。
    このメソッドは、FDOption オブジェクトのリストを返します。
      • 選択フィールドのオプションに対応するレポート データ オブジェクト内のキー値ペア(ID と値)。
      • キー値ペアを補足するデータ。 オプションで、フォーム上の他のフィールド(選択フィールドを除く)にこの追加データを表示できます。
    各フィールドの _id 属性の値は、追加データでキーの 1 つに一致する必要があります。
  2. また、FDSelectDataProvider で以下のメソッドを実装します。
    int totalCount();
    このメソッドは、存在する行の総数を返します。
詳細情報と例については、API プラグイン ドキュメントを参照してください。
選択ボックス専用の属性の設定
一部の HTML 属性は選択ボックスのみに適用されます。 詳細については、「選択ボックス専用の属性」を参照してください。
動的テーブル用の並べ替えおよびページ付けパラメータの設定
プラグインによって、フォームの動的テーブルで大量のデータが返される場合があります。 このような場合は、結果のページ サイズを指定します。 その一例として、フォーム上で 1 ページ当たり 10 の結果が表示されます。 同様に、多くの場合は、昇順または降順で各ページの結果をユーザが並べ替えられるようにすることが必要になります。 このタスクを実行するには、関連の Java クラスおよびオブジェクトで、並べ替えおよびページ付け用のパラメータを設定します。
以下の手順に従います。
  1. [カタログ]-[フォーム]をクリックし、目的のフォームを開きます。
  2. テーブルを開き、Sortable という名前の属性が True に設定されていることを確認します。
    この属性が有効(True)になっている場合は、テーブル列ヘッダ上の矢印をクリックして結果を並べ替えることができます。
  3. com.ca.usm.plugins.apis.forms.FDTableDataProvider というインターフェースを実装する Java クラスを編集します。 以下のメソッドを FDTableDataProvider で実装します。
    List<FDTableRow> getTableRows(int start, int numToReturn, String sortField, boolean sortAscending);
    ユーザは、たとえば、クリックして次のページを表示することで、フォームと対話してこれらの値を決定します。
    • start
      返す最初の行を指定します。 このパラメータは整数です。
    • numToReturn
      返す行の数を指定します。 このパラメータは整数です。
    • sortField
      並べ替える行を指定します。 値が NULL のときは、並べ替えは行われません。 このパラメータは文字列です。
    • sortAscending
      昇順または降順で結果を並べ替えるかどうかを指定します。 このパラメータはブール値です。
    このメソッドは、FDTableRow オブジェクトを返します。後の手順でその説明を示します。
  4. また、FDTableDataProvider で以下のメソッドを実装します。
    int totalCount();
    このメソッドは、存在する行の総数を返します。
  5. FDTableRow オブジェクトとそのメソッドを使用して、テーブル行データを返します。 以下のメソッドを使用できます。
    • public void setColumnValue(String columnId, String data)
      以下を指定して、列の値を設定します。
      • String columnid - テーブルのコンポーネントの「_id」属性を指定します。
      • 文字列データ - 解析してテーブル上のフィールドに入力できる値を指定します。
    • public String getColumnValue(String columnId)
      前の SET 関数(public void setColumnValue)の一致する GET 関数を指定します。
    • public Set getColumns()
      このオブジェクトに格納されている列 ID のセットを返します。
詳細情報と例については、API プラグイン ドキュメントを参照してください。