Limiter le champ Groupe d’affectation

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 1 minute de lecture
  • Cet exemple montre comment utiliser un qualificatif de référence avancé avec JavaScript et un script include pour restreindre les choix de groupe d’affectation d’incident aux seuls groupes contenant l’utilisateur spécifié dans le champ Affecté à .

    Avant de commencer

    Rôle requis : personalize_dictionary ou admin

    Procédure

    1. Ouvrez un incident.
    2. Cliquez avec le bouton droit sur l’étiquette Groupe d’affectation et sélectionnez Configurer le dictionnaire.
    3. Si le formulaire apparaît dans la vue par défaut, sous Liens connexes, cliquez sur Vue avancée.
    4. Dans le champ Utiliser le qualificatif de référence , assurez-vous que l’option Avancé est sélectionnée.
    5. Dans le champ Qualificatif de référence , saisissez javascript :new ReferenceQualifierHelper().backfillAssignmentGroup().
    6. Enregistrez l'enregistrement.
    7. Accédez à la Définitions système > Includes de script.
    8. Cliquez sur Nouveau.
    9. Nommez vos includes de script en tant que ReferenceQualifierHelper pour correspondre au Javascript de l’étape suivante.
      Ce nom garantit que le nom de l’API est généré correctement, en fonction du champ Nom.
    10. Includes de script avec le code JavaScript suivant.
      Assurez-vous que le champ de formulaire Accessible est défini correctement pour l’environnement.
      var ReferenceQualifierHelper = Class.create();
      ReferenceQualifierHelper.prototype = {
      	
      	backfillAssignmentGroup:function() {
      		var assigneeGroupsQualifier = '';
      		var assignee = current.assigned_to;
      		
      		//return if the assigned_to value is empty (this causes all groups to be returned)
      		if(!assignee)
      			return;
      		
      		//sys_user_grmember has the user to group relationship
      		var grAssigneeGroups = new GlideRecord('sys_user_grmember');
      		
      		grAssigneeGroups.addQuery('user',assignee);
      		grAssigneeGroups.query();
      		
      		while(grAssigneeGroups.next()) {
      			if (assigneeGroupsQualifier.length == 0) {
      				// Create the beginning of the qualifier and add the 1st group
      				assigneeGroupsQualifier = 'sys_idIN' + grAssigneeGroups.getValue('group');
      			}
      			else {
      				// build a comma separated string of groups if there is more than one
      				assigneeGroupsQualifier += (',' + grAssigneeGroups.group);
      			}
      		}
      		// return Groups where assigned to is in those groups we use IN for lists
      		
      		gs.log('DP: RefQual = ' + assigneeGroupsQualifier);
      		
      		return assigneeGroupsQualifier;
      	},
      	type: 'ReferenceQualifierHelper'
      };
      

    Que faire ensuite

    Pour tester, créez un incident, puis sélectionnez un utilisateur dans le champ Affecté à . Cliquez sur l’icône de recherche du groupe d’affectation . Seuls les groupes contenant l’utilisateur que vous avez sélectionné s’affichent. Par exemple, vous affectez un incident à Bob Smith, qui appartient au groupe Base de données et au groupe Mise en réseau . Les seules options qui apparaissent dans le groupe d’affectation sont Base de données et Mise en réseau.