選択肢をコストセンターに制限するリソースプールの例

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:5分
  • リソースプールを詳細計画とともに使用して、クラウドカタログ要求フォームの選択肢を制限できます。

    ユースケース:コストセンターの選択の制限

    この例では、クラウド資産のコストが、ユーザーのコストセンターの予算に対して割り当てられます。ベースシステム UserCostCenter リソースプール は、ユーザーが自分のコストセンターのリソースのみを選択できるようにします。

    仮定

    • コスト管理 [con.snc.cost_management] プラグインがアクティブです。
    • コストセンターが定義され、ユーザーはそのコストセンターに関連付けられています。
    • 少なくとも 1 つの詳細計画が定義されています。この例では、「AWS 仮想サーバー」という名前の詳細計画を使用します。
    • sn_cmp_cloud_admin ロールが割り当てられ、JavaScript および JSON スクリプトの知識があります。

    コンポーネント

    リソースプールフィルターの確認
    1. クラウドアドミンポータルで、 管理 > リソースプール.
    2. CostCenterPool を開き、関連するリソースプールフィルターを確認します。
      • All は、テーブル内のすべてのコストセンターを返すクエリーフィルターです。
      • UserCostCenter は、アイテムをオーダーしているユーザーに関連付けられているコストセンターを検索するスクリプトフィルターです。
      以下に、UserCostCenter フィルターのスクリプトを示します。
      getFilteredRecords();
      //Do not remove function declaration
      /**
      * @returns filtered records in the format [{"value"="lookupValue",label="displayValue"}]
      */
      function getFilteredRecords() {
      	var filteredRecords = [];
      	var userId = gs.getUserID();
      	var userGr = new GlideRecord('sys_user');
      	if (userGr.get(userId)){
      		var costCenterId = userGr.getValue('cost_center');
      		if (costCenterId){
      			var costCenterGr = new GlideRecord('cmn_cost_center');
      			if (costCenterGr.get(costCenterId)){
      				var costCenter = {};
      				costCenter.value = costCenterGr.getUniqueValue();
      				costCenter.label = costCenterGr.getValue('name');
      				filteredRecords.push(costCenter);
      			}
      		}		
      	}
      
      	//force to string
      	return new global.JSON().encode(filteredRecords);
      }
    詳細計画カタログフォームパラメーター
    1. 移動先 デザイン > ブループリントをクリックし、開く詳細計画のタイルをクリックします。
    2. 詳細計画が [ドラフト] ステータスの状態で、 [ プロビジョニング 操作] タイルをクリックします カタログ > 操作を要求 確認してください。

      プロビジョニング操作

    3. [変数セット] 関連リストで [一般情報 ] 変数セットをクリックします。デフォルトでは、CostCenter 変数はこの変数セット内にあります。
    4. [変数セット] フォームの [クラウド変数] 関連リストで、[コストセンター変数] をクリックします。

      CostCenter 変数

    5. [クラウド変数] フォームで、[タイプ仕様] タブをクリックします。
    6. リソースプールとフィルターを参照する [プール] および [プールフィルター] フィールドを確認します。
      • CostCenterPoolリソースプールの名前です。
      • UserCostCenter は、選択するユーザーのコストセンターオプションを取得するフィルタースクリプトです。

      コストセンターカタログプロパティのデータソース値で使用されるリソースプールとフィルター

    7. 詳細計画を [公開済み] に設定します。
    コストセンターのユーザー
    コストセンターのメンバーであり、クラウドユーザーポータルへのアクセス権を持つユーザーを特定します。

    営業コストセンターのメンバーであるユーザー。

    リソースプールフィルターのテスト

    このユースケースを構成するコンポーネントを確認した後、クラウドカタログアイテムをテストして、ユーザーが自分のコストセンターのみを選択できることを確認します。

    1. この例では、ユーザー Alene Rabeck の代理操作を行います。
    2. クラウドユーザーポータルで、[スタックを起動] をクリックし、クラウドカタログアイテム (この例では [AWS 仮想サーバー (AWS Virtual Server)]) を選択します。
    3. [コストセンター] リストの選択項目を確認します。

      このユーザーのコストセンターでは、[営業] が唯一の選択項目です。

    このカタログアイテムの CostCenterPool::UserCostCenter データソース値では、[コストセンター] のオプションは、そのユーザーがメンバーであるコストセンターのみです。

    リソースプールフィルターの変更

    リソースプールフィルターを変更し、その結果を確認することで、リソースプールフィルターが [コストセンター] フィールドの動作を制御していることをテストします。

    1. クラウドアドミンポータルで、 設計 > ブループリント AWS 仮想サーバーをクリックします。
    2. [プロビジョニング] 操作タイルをクリックします。
    3. [変数セット] 関連リストで [一般情報 ] 変数セットをクリックします。デフォルトでは、CostCenter 変数はこの変数セット内にあります。
    4. [変数セット] フォームの [クラウド変数] 関連リストで、[コストセンター変数] をクリックします。
    5. [クラウド変数] フォームで、[タイプ仕様] タブをクリックします。
    6. [プールフィルター] フィールドを編集して、[UserCostCenter] から [All] にフィルターを変更します。

      コストセンターカタログプロパティのデータソース値で使用されるリソースプールとフィルター

    7. [更新] をクリックし、続いて [公開] をクリックします。
    8. この例では、ユーザー Alene Rabeck の代理操作を行います。
    9. クラウドユーザーポータルでスタックを起動し、[AWS 仮想サーバー (AWS Virtual Server)] を選択します。
    10. すべてのコストセンターが一覧表示されていることを確認します。

      すべてのコストセンターが選択対象として表示されています。