Mise à jour des enregistrements à l’aide de la fusion

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 5 minutes de lecture
  • L’option Coalescence vous permet de mettre à jour les enregistrements de table cible existants lors de la transformation des données d’importation.

    L’option de coalescence sur une carte de champs vous permet de spécifier si le champ cible sélectionné doit être utilisé pour fusionner lorsque les enregistrements d’ensembles de données à importer sont transformés. Si la case Coalescence de la carte de champs est cochée, lorsque la ligne de jeu d’importation est transformée, l’instance recherche un enregistrement existant dans la table cible qui a la même valeur dans le champ Cible que le champ Source de la ligne de jeu d’importation. Pour obtenir des instructions détaillées, reportez-vous à la section Créer une carte de champs.

    Si un enregistrement existant avec une valeur correspondante dans la table cible est trouvé, cet enregistrement est mis à jour. Si aucun enregistrement correspondant n’est trouvé, un nouvel enregistrement est créé dans la table cible.
    Remarque :
    Choisissez des champs dans la table cible pour fusionner uniquement si ces champs ont des valeurs uniques. Si plusieurs enregistrements dans la table cible correspondent aux options de coalescence spécifiées, seul le premier enregistrement correspondant dans la table cible est mis à jour.

    Options de fusion

    Il existe plusieurs configurations possibles que vous pouvez utiliser pour fusionner des données dans des ensembles de données à importer.

    Aucune coalescence

    Si aucune fusion n’est définie, toutes les lignes importées sont traitées comme de nouveaux enregistrements. Aucun enregistrement existant n’est mis à jour.

    Fusion à champ unique

    Vous pouvez fusionner sur un seul champ pour mettre à jour un enregistrement existant.

    S’il existe un enregistrement de table cible avec la même valeur dans le champ Fusion que l’enregistrement de la table intermédiaire, l’enregistrement de la table cible est mis à jour à l’aide des valeurs d’enregistrement du jeu d’importation.

    Fusion à champs multiples

    Vous pouvez fusionner plusieurs champs pour mettre à jour un enregistrement existant.

    Si un enregistrement de table cible existe avec les mêmes valeurs dans tous les champs de fusion que l’enregistrement de la table intermédiaire, l’enregistrement de la table cible est mis à jour à l’aide des valeurs d’enregistrement de la table intermédiaire. Toutes les valeurs de champ de fusion entre les tables cible et intermédiaire doivent correspondre pour fusionner avec plusieurs champs.

    Fusion conditionnelle

    Vous pouvez utiliser un script pour déterminer si une ligne de la table intermédiaire doit fusionner en un enregistrement cible.

    La plupart des scripts de fusion conditionnelle sont définis dans le champ Script source d’une carte de champs pour le champ sys_id. Pour mettre à jour un enregistrement cible à l’aide des valeurs d’enregistrement de la table intermédiaire, le script doit renvoyer l’sys_id de l’enregistrement de la table cible.

    Exemples de scripts de fusion conditionnels

    Passez en revue des exemples de scripts de fusion conditionnelle.

    Mises à jour uniquement

    Pour mettre à jour uniquement les enregistrements dans lesquels une correspondance est trouvée et ignorer les enregistrements lorsqu’aucune correspondance n’est trouvée, spécifiez un champ de fusion et ajoutez le script suivant en tant que script onBefore à la carte de transformation.

    if (action == 'insert') 
      ignore = true;

    Fusion conditionnelle à l’aide d’une remontée pas à pas

    Vous pouvez utiliser des champs de type « remontée pas à pas » dans un script de coalescence conditionnelle, par exemple pour établir une correspondance avec l’adresse e-mail d’un utilisateur lors de l’importation de données d’incident.

    Dans cet exemple, ce script est défini dans le script source d’une carte de champ pour le champ sys_id de la table cible Incident.

    var gr = new GlideRecord('incident');
    gr.addQuery('caller_id.email', source.u_email); //check if the incident caller's email matches the import row email value
    gr.query();
    
    if(gr.next())
    {
        answer = gr.sys_id; //if a match exists, return the sys_id of the matching Incident record
    }
    else
    {
        answer= -1;
    }

    Fusion conditionnelle avec une condition OU

    Vous pouvez utiliser un script de fusion conditionnelle pour faire correspondre les enregistrements source et cible en fonction de plusieurs valeurs de champ. Contrairement à la fusion à plusieurs champs où tous les champs de fusion doivent correspondre, vous pouvez spécifier un script pour exiger qu’un seul des champs corresponde.

    Dans cet exemple, ce script est défini dans le script source d’une carte de champs pour la table cible de l’utilisateur sys_id le champ.

    var gr = new GlideRecord('sys_user');
    var qc = gr.addQuery('email', source.u_email); //first check if the user's email matches
    qc.addOrCondition('user_name', source.u_name); //alternatively, check if the username matches
    gr.query();
    
    if(gr.next()) 
    {
        answer = gr.sys_id; //if a match exists, return the sys_id of the matching User record
    }
    else 
    {
        answer = -1;
    }

    Valeurs de champ de fusion sensibles à la casse

    Vous pouvez contrôler si un jeu d’importation fusionnera sur des valeurs correspondantes avec des tickets différents.

    Le champ sensible à la casse de la carte de champs vous permet de fusionner les valeurs de champ par respect de la casse.

    Par défaut, les champs marqués comme Fusion dans la carte de champs sont utilisés dans une recherche sans respect de la casse pour les enregistrements existants. Si la case Sensible à la casse est cochée, l’instance tente de faire correspondre les valeurs de champ de fusion par casse. L’enregistrement de table cible n’est mis à jour que si la valeur de l’enregistrement cible et de l’enregistrement intermédiaire du jeu d’importation a la même valeur et le même ticket. Sinon, un nouvel enregistrement est créé.

    Fusionner sur les champs vides

    Vous pouvez contrôler si un jeu d’importation fusionnera dans des champs sans valeur.

    Le champ Fusionner les champs vides de la carte de champs vous permet de fusionner des champs sans valeur.

    Par défaut, les champs marqués comme Fusion dans la carte de champs amènent le jeu d’importation à rechercher un enregistrement cible avec une valeur de champ qui correspond à la valeur de l’enregistrement intermédiaire du jeu d’importation. Lorsque Champs vides de fusion est sélectionné pour cette carte de champs, une valeur vide dans l’enregistrement cible et l’enregistrement intermédiaire du jeu d’importation est considérée comme une correspondance aux fins de fusion.

    Par exemple, la carte de transformation de l’utilisateur fusionne dans le champ d’e-mail. Lorsque l’option Fusionner les champs vides est sélectionnée, un enregistrement source contenant une adresse e-mail vide se fond dans un enregistrement cible contenant une adresse e-mail vide.