Exemple de pool de ressources qui limite les choix au centre de coûts

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 3 minutes de lecture
  • 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
    1. Sur le portail d’administration du cloud, accédez à Gérer  > Pools de ressources.
    2. 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
    1. Accédez à la Conception > Plans, puis cliquez sur la vignette du plan que vous souhaitez ouvrir.
    2. Avec le plan à l’état Brouillon , cliquez sur la vignette de l’opération de mise en service sur le Catalogue > Demande d'opération onglet.

      Opération Mettre en service

    3. 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.
    4. Dans la liste connexe Variables dans le cloud du formulaire Jeu de variables, cliquez sur la variable CostCenter.

      Variable CostCenter

    5. Sur le formulaire Variable dans le cloud, cliquez sur l'onglet Spécifications de type.
    6. 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.

      Pool de ressources et filtre utilisés dans la valeur de la source de données de la propriété du catalogue du centre de coûts

    7. 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.

    Utilisateur membre du centre de coûts de vente.

    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.

    1. Empruntez l'identité de l'utilisateur, Alene Rabeck dans cet exemple.
    2. 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).
    3. Passez en revue les sélections dans la liste Centre de coûts.

      Ventes est la seule sélection pour le centre de coûts de cet utilisateur.

    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.

    1. Sur le portail d’administration du cloud, accédez à Conception > Plans , puis cliquez sur Serveur virtuel AWS.
    2. Cliquez sur la mosaïque de l'opération Mettre en service.
    3. 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.
    4. Dans la liste connexe Variables dans le cloud du formulaire Jeu de variables, cliquez sur la variable CostCenter.
    5. Sur le formulaire Variable dans le cloud, cliquez sur l'onglet Spécifications de type.
    6. Modifiez le champ Filtre de pool pour faire passer le filtre de UserCostCenter à All.

      Pool de ressources et filtre utilisés dans la valeur de la source de données de la propriété du catalogue du centre de coûts

    7. Cliquez sur Mettre à jour puis sur Publier.
    8. Empruntez l'identité de l'utilisateur, Alene Rabeck dans cet exemple.
    9. Sur le portail de l'utilisateur dans le cloud, lancez une pile puis sélectionnez AWS Virtual Server.
    10. Vérifiez que tous les centres de coûts sont répertoriés.

      Tous les centres de coûts sont maintenant affichés pour la sélection.