Contraindre le champ de groupe d’affectation

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 1 minute de lecture
  • Cet exemple montre comment utiliser un qualificatif de référence avancé avec JavaScript et un script include pour limiter les choix de groupes d’affectation d’incidents 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 du groupe d’affectation et sélectionnez Configurer le dictionnaire.
    3. Si le formulaire s’affiche 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 des systèmes > Includes de script.
    8. Cliquez sur Nouveau.
    9. Nommez vos includes de script en tant que ReferenceQualifierHelper pour correspondre au JavaScript lors 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 correctement défini 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 et 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.