Options de mappage

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 6 minutes de lecture
  • Vous pouvez mapper les champs de plusieurs façons en fonction des circonstances de l’importation et selon que les données doivent être transformées avant le chargement dans une table de production.

    Il est également important de noter qu’une opération d’importation donnée peut nécessiter l’utilisation de plusieurs méthodes de mappage, et que ces méthodes peuvent être facilement utilisées en conjonction les unes avec les autres.

    Utilitaire de mappage automatique

    La méthode de mappage la plus simple consiste à faire correspondre tous les noms de champs des jeux d’importation aux noms des champs des tables de production sur lesquelles les données seront transformées. Dans ce cas, il vous suffit de cliquer sur Correspondance automatique des champs dans la liste connexe du formulaire Carte de transformation de table et de confirmer la correspondance appropriée. S’il existe des différences dans la façon dont les champs ont été automatiquement appariés, utilisez l’utilitaire d’aide au mappage pour les corriger. Lorsque tous les champs correspondent correctement, cliquez sur le lien connexe Transformer pour commencer à transformer les données sur la table de destination.

    Utilitaire de l’assistant de mappage

    L’utilitaire de l’assistant de mappage fournit un environnement visuellement intuitif pour spécifier le mappage entre les champs de jeu d’importation et les champs de table de production. L’utilitaire d’aide au mappage permet de mapper un seul champ source (champ d’une table de jeu d’importation) à plusieurs champs de destination (champs d’une table de production).
    Figure 1. Assistant de mappage

    Modification du format de la date

    Si le format de date du champ source ne correspond pas au format du champ cible, vous pouvez définir un mappage de format de date pour transformer les dates d’un format à un autre. Par exemple, ce mappage spécifie que le format de date du fichier source CSV utilise le format MM-jj-aaaa.
    Figure 2. Format de date de carte de champ
    Figure 3. Options de format de date de carte de champ
    Les options de format de date comprennent :
    Tableau 1. Options de mappage
    Format de date Description
    jj-mm-aaaa Jour-mois-année
    jj-MM-aaaa hh :mm :ss Jour-mois-année heures-minutes-secondes
    jj-MM-aaaa hh :mm :ss z Jour-mois-année heures-minutes-secondes fuseau horaire
    mm-jj-aaaa Mois-jour-année
    MM-jj-aaaa hh :mm :ss Mois-jour-année heures-minutes-secondes
    MM-jj-aaaa hh :mm :ss z Mois-jour-année-heures-minutes-secondes fuseau horaire
    aaaa-jj-MM Année-jour-mois
    aaaa-MM-jj Année-mois-jour
    aaaa-MM-jj hh :mm :ss Année-mois-jour heures-minutes-secondes

    Pour indiquer le format d’heure sur 24 heures, spécifiez un format de date personnalisé à l’aide de HH :mm :ss au lieu de hh :mm :ss.

    Remarque :

    La conversion d’un format de date de 24 heures en 12 heures peut entraîner le format des heures de 12h00 à 23h59 comme suit : de 00h00 à 11h59.

    Mappage à un champ de durée

    ServiceNow Les champs de durée utilisent un type de données spécial qui indique le nombre de millisecondes de la valeur de durée. Pour mapper des données d’importation à un champ de durée, utilisez l’une des méthodes suivantes pour transformer les valeurs sources en durée.
    • Calculer la durée à partir d’une date de début et d’une date de fin
    • Convertir une valeur de durée existante en valeur de ServiceNow durée

    Calcul d’une valeur de durée à partir d’une date de début et d’une date de fin

    Si la source d’importation possède une date de début et une date de fin, vous pouvez calculer une durée à l’aide de JavaScript.
    1. Accédez à la Ensembles d'importation système > Cartes de transformation.
    2. Sélectionnez la carte de transformation pour laquelle vous souhaitez calculer une valeur de durée. Par exemple, la carte de transformation des notifications qui est importée dans la table Incident.
    3. Cochez la case Exécuter le script .
    4. Entrez JavaScript pour transformer les dates de début et de fin en durée. Voir l’exemple de script.
    5. Cliquez sur Mettre à jour.
    Cet exemple de script convertit les champs source.u_start et source.u_end en valeur de durée dans le champ target.duration. Modifiez les noms des champs pour qu’ils correspondent à vos champs source et cible selon vos besoins.
    target.duration = gs.dateDiff(source.u_start.getDisplayValue(), source.u_end.getDisplayValue(), false);

    Convertir une valeur de durée en valeur de durée ServiceNow

    Si la source d’importation contient déjà une date de début et une valeur de durée, vous pouvez convertir la durée existante en ServiceNow durée. Par exemple, vous pouvez avoir une source de données Excel qui répertorie une durée en secondes. ServiceNow s’attend à ce que les durées aient des valeurs de l’ordre de la milliseconde.
    1. Accédez à la Ensembles d'importation système > Cartes de transformation.
    2. Sélectionnez une carte de transformation.

      Par exemple, la carte de transformation des notifications qui est importée dans la table Incident.

    3. Cochez la case Exécuter le script .
    4. Entrez JavaScript pour convertir des valeurs de durée existantes en valeurs de ServiceNow durée. Voir l’exemple de script.
    5. Cliquez sur Mettre à jour.
    Cet exemple de script convertit une durée en secondes (à partir source.u_duration du champ) en durée en millisecondes (dans le target.duration champ). Modifiez les noms de champs pour qu’ils correspondent à vos champs source et cible, selon les besoins.
    //Transform the value in source.u_duration from seconds to milliseconds
    target.duration.setDateNumericValue(source.u_duration * 1000);
    Cet exemple de script convertit une durée déjà en millisecondes (à partir source.u_duration du champ) en ServiceNow durée (dans le target.duration champ). Modifiez les noms de champs pour qu’ils correspondent à vos champs source et cible, selon les besoins.
    //Transform the value in source.u_duration to ServiceNow format
    target.duration.setDateNumericValue(source.u_duration);

    Utilisation d’un script pour calculer une valeur source

    Vous pouvez utiliser un script source au lieu du champ Source dans les cas suivants :
    • La valeur source n’est pas au format de la valeur cible mappée.
    • Vous souhaitez rechercher une valeur avant le mappage vers le champ cible.
    • La valeur source doit être calculée à partir de plusieurs champs.
    • Vous devez créer une valeur de fusion composée ou calculée dans le champ cible.
    Par exemple, cet exemple de script source calcule la valeur du champ user_name lorsqu’il est vide dans la source.
    Figure 4. Script source de carte de champs

    Un script source s’attend à ce que la valeur calculée soit définie dans la réponse de variable globale.

    Mappage de champs binaires ou BLOB

    ServiceNow utilise un processus spécial pour importer des données binaires et des données BLOB (Binary Large Object) à partir de sources de données JDBC. Toutes les données binaires sont automatiquement converties en enregistrement dans la table Pièce jointe [sys_attachment] avant que la transformation ne se produise. La table de jeu d’importation stocke uniquement la valeur sys_id de l’enregistrement de pièce jointe dans le champ table d’importation et non la valeur binaire réelle. Par exemple, supposons que vous utilisiez une source de données JDBC pour importer des données à partir d’un système CA Service Desk, qui stocke la valeur clé de chaque enregistrement sous forme de données binaires. Lorsque vous importez les valeurs de clé Service Desk dans une ServiceNow table, le ServiceNow champ contient uniquement une référence sys_id aux données binaires correspondantes dans la table Enregistrement de pièce jointe [sys_attachment] plutôt qu’aux données binaires réelles.

    Pour qu’une carte de transformation accède à la pièce jointe, utilisez l’API GlideRecord dans un script onAfter . Le script doit s’exécuter dans un événement onAfter car l’objet target.sys_id n’est disponible qu’une fois les données placées dans la table de jeu d’importations. Par exemple, pour mapper la pièce jointe résultante à l’enregistrement de transformation cible, vous pouvez utiliser le script suivant.
    var agr = new GlideRecord("sys_attachment");
      agr.addQuery("sys_id", source.u_blob_field);
      // the source field needs to be mapped to the source that is the BLOB
      agr.query();
       if(agr.next()) {
        agr.table_name = "cmdb_ci"; // the target table of the transform map
        agr.table_sys_id = target.sys_id; // the target record
        agr.content_type = source.u_contentype; 
        // the content type string if available,  
        // this becomes the mime encoding when clicking an attachment link
        agr.update(); // finally, move/re-attach the attachment to the target row }
    Si vous effectuez un mappage directement vers la table db_image , exécutez le script onAfter suivant pour afficher l’image :
    var strTemp = source.u_file_name; 
    var fType = strTemp.substr(- 3); 
    var iCont = "" ;
     
     if(fType == 'jpg') {
      iCont = 'jpeg' ; } 
     else {
      iCont = fType; }
     
     var agr = new GlideRecord("sys_attachment");
     agr.addQuery("sys_id", source.u_blob_field);
     agr.query();
     
     if(agr.next()) {
      agr.table_name = "ZZ_YYdb_image";
      agr.table_sys_id = target.sys_id;
      agr.content_type = 'image/' + iCont;
      agr.file_name = 'image';
      agr.update(); }