Exemple de pool de ressources qui limite les choix au centre de coûts
Vous pouvez utiliser des pools de ressources avec des plans pour limiter les choix sur le formulaire de demande de catalogue dans le cloud.
Cas d'utilisation : limiter la sélection du centre de coûts
Dans cet exemple, le coût de l'actif dans le cloud est imputé au budget du centre de coûts de l'utilisateur. Le système-de-base UserCostCenter du pool de ressources garantit qu'un utilisateur ne peut sélectionner que des ressources dans son centre de coûts.
Suppositions
- Le module d'extension Cost Management [con.snc.cost_management] est actif.
- Les centres de coûts sont définis et les utilisateurs sont associés aux centres de coûts.
- Au moins un plan est défini. Cet exemple utilise un plan nommé AWS Virtual Server.
- Le rôle sn_cmp_cloud_admin vous est affecté et vous connaissez les scripts JavaScript et JSON.
Composants
- Vérifier le filtre de pool de ressources
- Sur le portail d’administration du cloud, accédez à .
- Ouvrez le CostCenterPool et vérifiez les filtres de pool de ressources connexes.
- Tout est un filtre de requête qui renvoie tous les centres de coûts de la table.
- UserCostCenter est un filtre de script qui recherche le centre de coûts associé à l'utilisateur qui commande l'élément.
Voici le script du filtre 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); }
- Paramètres du formulaire de catalogue de plans
- Accédez à la , puis cliquez sur la vignette du plan que vous souhaitez ouvrir.
- Avec le plan à l’état Brouillon , cliquez sur la vignette de l’opération de mise en service sur le onglet.
- Dans la liste connexe Jeux de variables, cliquez sur le jeu de variables Informations générales. Par défaut, la variable CostCenter se trouve dans ce jeu de variables.
- Dans la liste connexe Variables dans le cloud du formulaire Jeu de variables, cliquez sur la variable CostCenter.
- Sur le formulaire Variable dans le cloud, cliquez sur l'onglet Spécifications de type.
- Examinez les champs Pool et Filtre de pool qui font référence au pool de ressources et au filtre.
- CostCenterPool est le nom du pool de ressources.
- UserCostCenter est le script de filtre qui extrait les options du centre de coûts que l'utilisateur doit sélectionner.
- Définissez le plan sur Publié.
- Utilisateur du centre de coûts
- Identifiez un utilisateur qui est membre d'un centre de coûts et qui a accès au portail de l'utilisateur dans le cloud.
Tester le filtre de pool de ressources
Après avoir examiné les composants qui composent ce cas d'utilisation, testez l'élément de catalogue dans le cloud pour vérifier que les utilisateurs peuvent sélectionner uniquement leur centre de coûts.
- Empruntez l'identité de l'utilisateur, Alene Rabeck dans cet exemple.
- Sur le portail de l'utilisateur dans le cloud, cliquez sur Lancer une pile, puis sélectionnez l'élément de catalogue dans le cloud (AWS Virtual Server dans cet exemple).
- Passez en revue les sélections dans la liste Centre de coûts.
Avec la valeur de la source de données CostCenterPool::UserCostCenter pour cet élément de catalogue, la seule option pour le centre de coûts est le centre de coûts dont l'utilisateur est membre.
Modifier le filtre de pool de ressources
Vérifiez que le filtre de pool de ressources contrôle le comportement du champ Centre de coûts en le modifiant et en consultant les résultats.
- Sur le portail d’administration du cloud, accédez à , puis cliquez sur Serveur virtuel AWS.
- Cliquez sur la mosaïque de l'opération Mettre en service.
- Dans la liste connexe Jeux de variables, cliquez sur le jeu de variables Informations générales. Par défaut, la variable CostCenter se trouve dans ce jeu de variables.
- Dans la liste connexe Variables dans le cloud du formulaire Jeu de variables, cliquez sur la variable CostCenter.
- Sur le formulaire Variable dans le cloud, cliquez sur l'onglet Spécifications de type.
- Modifiez le champ Filtre de pool pour faire passer le filtre de UserCostCenter à All.
- Cliquez sur Mettre à jour puis sur Publier.
- Empruntez l'identité de l'utilisateur, Alene Rabeck dans cet exemple.
- Sur le portail de l'utilisateur dans le cloud, lancez une pile puis sélectionnez AWS Virtual Server.
- Vérifiez que tous les centres de coûts sont répertoriés.