Options de mappage
Vous pouvez mapper les champs de plusieurs façons en fonction des circonstances de l’importation et de la nécessité de transformer les données avant leur 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 cartographie, 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 lesquels les données seront transformées. Dans ce cas, cliquez simplement sur Correspondance automatique des champs dans la liste connexe du formulaire Carte de transformation de table et confirmez la correspondance appropriée. S’il y a des différences dans la façon dont les champs ont été automatiquement mis en correspondance, utilisez l’utilitaire d’aide au mappage pour les corriger. Lorsque tous les champs sont mis en correspondance correctement, cliquez sur le lien connexe Transformer pour commencer à transformer les données sur la table de destination.
Utilitaire d’assistant de mappage
Modification du format de la date
| 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-aa hh :mm :ss | Mois-jour-année heures-minutes-secondes |
| MM-jj-aa 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é utilisant HH :mm :ss au lieu de hh :mm :ss.
La conversion d’un format de date de 24 heures en 12 heures peut entraîner le formatage des heures comprises entre 12h00 et 23h59 comme suit : de 00h00 à 11h59.
Mappage à un champ de 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
- Accédez à la .
- Sélectionnez la carte de transformation pour laquelle vous souhaitez calculer une valeur de durée. Par exemple, la carte de transformation Notification qui est importée dans la table Incident.
- Cochez la case Exécuter le script .
- Entrez JavaScript pour transformer les dates de début et de fin en une durée. Voir l’exemple de script.
- Cliquez sur Mettre à jour.
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
- Accédez à la .
- Sélectionnez une carte de transformation.
Par exemple, la carte de transformation Notification qui est importée dans la table Incident.
- Cochez la case Exécuter le script .
- Entrez JavaScript pour convertir des valeurs de durée existantes en valeurs de ServiceNow durée. Voir l’exemple de script.
- Cliquez sur Mettre à jour.
//Transform the value in source.u_duration from seconds to milliseconds
target.duration.setDateNumericValue(source.u_duration * 1000);//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
- La valeur source n’est pas au format de la valeur cible mappée.
- Vous souhaitez rechercher une valeur avant de mapper 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.
Un script source s’attend à ce que la valeur calculée soit définie dans la réponse de variable globale.
Mappage des champs binaires ou BLOB
ServiceNow utilise un processus spécial pour importer des données binaires et 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 de table d’importation au lieu de la valeur binaire réelle. Supposons, par exemple, 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 clés du Centre de services 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.
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 jeux d’importation. 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 }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(); }