選択肢をコストセンターに制限するリソースプールの例
リソースプールを詳細計画とともに使用して、クラウドカタログ要求フォームの選択肢を制限できます。
ユースケース:コストセンターの選択の制限
この例では、クラウド資産のコストが、ユーザーのコストセンターの予算に対して割り当てられます。ベースシステム UserCostCenter リソースプール は、ユーザーが自分のコストセンターのリソースのみを選択できるようにします。
仮定
- コスト管理 [con.snc.cost_management] プラグインがアクティブです。
- コストセンターが定義され、ユーザーはそのコストセンターに関連付けられています。
- 少なくとも 1 つの詳細計画が定義されています。この例では、「AWS 仮想サーバー」という名前の詳細計画を使用します。
- sn_cmp_cloud_admin ロールが割り当てられ、JavaScript および JSON スクリプトの知識があります。
コンポーネント
- リソースプールフィルターの確認
- クラウドアドミンポータルで、 .
- 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); }
- 詳細計画カタログフォームパラメーター
- 移動先 をクリックし、開く詳細計画のタイルをクリックします。
- 詳細計画が [ドラフト] ステータスの状態で、 [ プロビジョニング 操作] タイルをクリックします 確認してください。
- [変数セット] 関連リストで [一般情報 ] 変数セットをクリックします。デフォルトでは、CostCenter 変数はこの変数セット内にあります。
- [変数セット] フォームの [クラウド変数] 関連リストで、[コストセンター変数] をクリックします。
- [クラウド変数] フォームで、[タイプ仕様] タブをクリックします。
- リソースプールとフィルターを参照する [プール] および [プールフィルター] フィールドを確認します。
- CostCenterPool はリソースプールの名前です。
- UserCostCenter は、選択するユーザーのコストセンターオプションを取得するフィルタースクリプトです。
- 詳細計画を [公開済み] に設定します。
- コストセンターのユーザー
- コストセンターのメンバーであり、クラウドユーザーポータルへのアクセス権を持つユーザーを特定します。
リソースプールフィルターのテスト
このユースケースを構成するコンポーネントを確認した後、クラウドカタログアイテムをテストして、ユーザーが自分のコストセンターのみを選択できることを確認します。
- この例では、ユーザー Alene Rabeck の代理操作を行います。
- クラウドユーザーポータルで、[スタックを起動] をクリックし、クラウドカタログアイテム (この例では [AWS 仮想サーバー (AWS Virtual Server)]) を選択します。
- [コストセンター] リストの選択項目を確認します。
このカタログアイテムの CostCenterPool::UserCostCenter データソース値では、[コストセンター] のオプションは、そのユーザーがメンバーであるコストセンターのみです。
リソースプールフィルターの変更
リソースプールフィルターを変更し、その結果を確認することで、リソースプールフィルターが [コストセンター] フィールドの動作を制御していることをテストします。
- クラウドアドミンポータルで、 AWS 仮想サーバーをクリックします。
- [プロビジョニング] 操作タイルをクリックします。
- [変数セット] 関連リストで [一般情報 ] 変数セットをクリックします。デフォルトでは、CostCenter 変数はこの変数セット内にあります。
- [変数セット] フォームの [クラウド変数] 関連リストで、[コストセンター変数] をクリックします。
- [クラウド変数] フォームで、[タイプ仕様] タブをクリックします。
- [プールフィルター] フィールドを編集して、[UserCostCenter] から [All] にフィルターを変更します。
- [更新] をクリックし、続いて [公開] をクリックします。
- この例では、ユーザー Alene Rabeck の代理操作を行います。
- クラウドユーザーポータルでスタックを起動し、[AWS 仮想サーバー (AWS Virtual Server)] を選択します。
- すべてのコストセンターが一覧表示されていることを確認します。