DataImporter - Importer des données dans Octopus

AFFICHER TOUT LE CONTENU

Table des matières

Introduction

Le programme DataImporter (ESI.Octopus.DataImporterApp.exe) permet d'importer et/ou de synchroniser des données provenant d'une source externe compatible OLEDB/ODBC. 

DataImporter peut être utilisé autant pour effectuer une importation initiale des données que pour synchroniser sur une base régulière des données contenues dans un autre système.

Le présent article explique le fonctionnement complet du programme DataImporter, ainsi que les différents types d'imports disponibles.

Références

Liens vers les articles reliés à à la configuration des sources d'importation et du fichier XML.

​  Voir le webinaire sur DataImporter du 4 mars 2017

Description du fonctionnement

Le programme DataImporter permet d'importer différents éléments dans Octopus (utilisateurs, CI, fournisseurs, etc.) à partir d'une source de données OLEDB/ODBC (CSV, Excel, Access, SQL Serveur, Oracle, MySQL, etc.).

  • DataImporter peut remplacer le programme ADSIReader lorsque vos utilisateurs ne sont pas dans Active Directory ou lorsque l'information de ceux-ci est plus complète à partir d'une autre source de données.
  • DataImporter peut être un complément du programme WMIUpdater pour toute information ne faisant pas partie des composantes WMI (numéro du bon de commande, prix d'achat, date d'achat, etc.) ou pour des systèmes autres que Windows (imprimante, commutateur, projecteur, etc.) ou même des serveurs Linux ou des ordinateurs Mac.
     
ATTENTION : Le programme DataImporter est utilisé pour ajouter ou mettre à jour la CMDB d'Octopus selon les sources d'importation disponible. Vous ne pourrez pas vous en servir pour supprimer des enregistrements ou des champs, à l'exception de la balise EmptyValueHandling.

Les seules exceptions sont mentionnées directement dans la section balise des articles de chaque source d'importation.

Prérequis

  • Création d'un compte Octopus système qui sera associé à la tâche. Voir l'article Compte système Octopus.
  • Présence, sur la machine exécutant DataImporter, d'un Fournisseur OLEDB (Provider) compatible avec votre source de données.
  • Si la source de données provient d'un fichier Excel ou Access, présence de l'installation d'une version de Microsoft Office (2016, 2019, 2021 ou 365) sur la machine exécutant DataImporter.
  • Fichiers de données (fichier Excel, table Access, vue SQL, etc.) configurés selon les spécifications données. (Voir l'article Spécification des types de sources d'importation).

  • Un fichier XML contenant l'information sur la source de données à importer ainsi que les valeurs appropriées de chaque balise. (Voir l'article Fichier de configuration XML).

  • Le programme DataImporter (ESI.Octopus.DataImporterApp.exe). (Voir la section Lancement de DataImporter).

Fournisseur OLEDB (Provider)

Si la source de données est un fichier Excel ou une base de données Access, vous devrez déployer le package de distribution Microsoft Access Database Engine 2016 Redistributable sur le poste exécutant DataImporter.

Vous pouvez télécharger ce package

ATTENTION : En cas d'erreur lors de l'installation du package, il faut lancer le package d'installation via une ligne de commande et ajouter /quiet comme argument. 

Dans certaines situations, l'installation du package peut empêcher Octopus de découvrir l'installation d'Excel sur le poste de travail. En conséquence, l'option "Ouvrir dans Excel" ne sera pas disponible. Si cela se produit, il suffit de lancer la réparation de Microsoft 365. Une réparation rapide est suffisante. 

Étapes d'utilisation du programme DataImporter

  1. Préparer la source de données à importer. (Référez-vous à l'article suivant expliquant comment préparer la source de données à importer Spécification des types de sources d'importation).
  2. Configurer le fichier d'information XML. (Référez-vous à l'article suivant expliquant comment configurer les fichiers de références à vos sources de données Fichier de configuration XML).
  3. Lancer le programme DataImporter. (Pour plus d'information, voir la section Lancement de DataImporter ou Paramètres disponibles pour DataImporter).
ATTENTION : ​En cas d'erreur, à l'exécution du programme d’importation, référez-vous à la section Dépannage.


Lancement de DataImporter

DataImporter est un programme qui s'exécute à partir d'une ligne de commande (DOS). Il est conçu ainsi pour être facile à automatiser. 

Pour lancer le programme ESI.Octopus.DataImporterApp.exe, vous devez ouvrir une fenêtre d'invite de commande (DOS) et vous positionner dans le répertoire d'Octopus. Par la suite, vous devez entrer la ligne de commande. (Voir Exemples de ligne de commande).

Important : Le répertoire courant doit être le répertoire où est situé le programme ESI.Octopus.DataImporterApp.exe.

Par défaut, le répertoire d'Octopus %homepath%\AppData\Local\Octopus. Par exemple, pour l'utilisateur jsmith, le répertoire sera ​C:\Users\jsmith\AppData\Local\Octopus.

 

Ce qu'il faut savoir :

À chaque exécution du programme un fichier .LOG est créé avec le format DataImporter_AAAAMMJJ_HHMMSS.log,

  • Par exemple DataImporterApp_20190618_105242.log.

Utiliser ce fichier pour voir les résultats d'exécution de la commande et les erreurs s'il y en a. 

Voir aussi l'article Outils Octopus | Entretien des fichiers logs sur l'importance de faire la gestion de ses fichiers. 

Il est possible de générer un mot de passe chiffré et masquer le mot de passe lors de l'exécution, voir cet article pour plus de détails.

Paramètres disponibles

Il y a plusieurs paramètres disponibles, dont 4 obligatoires, pour exécuter DataImporter :

Paramètres obligatoires

  • /Login
    • Nom d’utilisateur Octopus.
  • /Password
    • Mot de passe Octopus.
  • /ConfigFilePath
    • Chemin complet où se trouve le fichier de configuration de DataImporter.
  • /Team

​Exemple: ESI.Octopus.DataImporterApp.exe /Login:system /Password:octo /ConfigFilePath:c:\Import\CI.xml /team:1

Paramètres facultatifs

  • /LogFilePath
    • Remplace le nom et l'emplacement du fichier de journalisation. Par défaut, le fichier se nomme DataImporter_AAAAMMJJ_HHMMSS.log et est situé dans le répertoire d'Octopus.
    • Si vous déplacez le fichier dans un répertoire autre que celui d'Octopus, assurez-vous que ce répertoire existe (le système ne peut créer le répertoire).
    • De plus, le chemin doit contenir le nom du fichier.
    • Pour en savoir plus sur l'emplacement des fichiers Octopus, référez-vous à l'article Répertoire d'installation d'Octopus.
      Exemple : /LogFilePath:C:\LogFiles\JournalImport.log
  • /Debug
    • En cas de problème avec DataImporter, notre Centre de services peut vous demander d'exécuter la ligne de commande en ajoutant le paramètre /Debug.
    • Ce paramètre génère un fichier binaire nous permettant d'analyser les erreurs lorsque nous n'avons pas accès aux données importées.
    • Le fichier généré peut alors être utilisé avec DataImporter de la manière suivante : /UseDebugOutput:nomfichier.
  • /ExtractionTimeout TimeOutInSeconds

    • Ce paramètre permet de spécifier un délai de TIMEOUT plus élevé que le temps de réponse configuré par défaut, avant que DataImporter abandonne l'importation.

    • Cela s'applique dans un contexte où le réseau est top lent ou que la quantité de données est trop volumineuse; dans ce cas les risques sont plus élevés, donc on pourrait vouloir augmenter le temps de réponse.
      Exemple : 5 minutes = 300 secondes

  • /OutputImportResultToIT
    • Créer automatiquement un événement dans l'équipe TI lorsqu'un problème est décelé pendant l'importation.
  • /ValidateOnly
    • Aucune importation n’est effectuée, mais simplement une validation du contenu du fichier d’importation avec Octopus.
  • /WaitKeyPress
    • Permet de forcer l’activation d’une touche après l'exécution de l’importation. C'est-à-dire que la fenêtre (DOS) reste affichée, tant que l'activation d'une touche n'est pas exécutée.
    • Cette option peut être utile lorsque l'on fait des tests d'importation, afin de s'assurer qu'aucun problème n'affecte notre ligne de commande.
    • Prendre note que ce paramètre ne doit pas être utilisé pour les tâches récurrentes.
  • /PurgeLogs
    • Permet d'effacer automatiquement les vieux fichiers de logs. 
    • Le paramètre permet de déterminer le nombre de jours de fichiers logs qu'on désire conserver.
    • Pour plus d'information, voir l'article Outils Octopus | Entretien des fichiers logs.

Exemples

  • Ligne de commande d'importation des données avec les paramètres de base.
ESI.Octopus.DataImporterApp.exe /Login:system /Password:octo /ConfigFilePath:c:\Import\CI.xml /team:1
  • Ligne de commande d'importation des données avec les paramètres facultatifs.
ESI.Octopus.DataImporterApp.exe /Login:system /Password:octo /ConfigFilePath:c:\Import\CI.xml /Team:1 /Debug /LogFilePath:C:\LogFiles\JournalImport.log /ValidateOnly /ExtractionTimeout:300 /OutputImportResultToIT /WaitKeyPress /PurgeLogs:2

Automatisation du programme DataImporter

Pour automatiser l'importation à partir de DataImporter, référez-vous à l'article Tâches planifiées Windows.

Dépannage

La présente section décrit des pistes pour vous aider à analyser vos imports lorsque ceux-ci ne fonctionnent pas.

Journal des opérations

Au cours de l'exécution, DataImporter crée un journal des opérations en plus d'afficher les résultats à l'écran. Ce journal est sauvegardé dans le fichier DataImporter_AAAAMMJJ_HHMMSS.log et est situé dans le même répertoire que l'exécutable de DataImporter, c'est-à-dire, dans le répertoire d'Octopus.

Ce fichier doit être consulté après chaque importation, puisqu'il énumère tous les messages d'erreur et les données qui n'ont pas été importées.

Ce qu'il faut savoir :

À chaque exécution du programme un fichier .LOG est créé avec le format NomDeL'Outil_AAAAMMJJ_HHMMSS.log,

  • Par exemple DataImporterApp_20190618_105242.log.

Utiliser ce fichier pour voir les résultats d'exécution de la commande et les erreurs s'il y en a. 

Analyse des messages d'erreur

Lorsque l'importation est réussie, vous obtenez les lignes suivantes dans le journal des opérations :

05-03-13 11:36:16 - *****************************
05-03-13 11:36:16 - Lecture de la source <[XXXXX$]>.
05-03-13 11:36:17 - Importation de la source <[XXXXX$]> en cours.
05-03-13 11:36:18 - Importation réussie pour la source <[XXXXX$]>. n enregistrement(s) importé(s).
05-03-13 11:36:18 -
05-03-13 11:36:18 - Completed.
  • La source <XXXXX> représente le nom de la vue ou de l'onglet importé.
  • n enregistrements indique le nombre d'enregistrements correctement importés.

Cependant, lorsque vous avez une ou plusieurs erreurs, vous obtenez la ligne suivante dans le journal des opérations :

05-03-13 11:37:55 - *****************************
05-03-13 11:37:55 - Lecture de la source <[XXXXX$]>.
05-03-13 11:37:55 - Importation de la source <[XXXXX$]> en cours.
05-03-13 11:37:56 - Erreur lors de l'importation de la source <[XXXXX$]> : n enregistrement(s) incorrectement importé(s), n enregistrement(s) importé(s) avec succès.

Voici une liste de message d'erreur possible et comment les corriger :

ATTENTION : Lorsque vous faites des importations, il est important de connaitre les comportements suivants:
  • Lorsqu'une erreur est rencontrée sur une ligne, toute la ligne sera rejetée et aucun champ ne sera importé.
  • Lorsque plusieurs erreurs existent sur la même ligne, DataImporter n'affiche que la première. Vous pourriez donc avoir à exécuter plusieurs fois votre importation pour effectuer les corrections.

  • ServiceProxy : unknown service infrastructure exception error occured.
    • DataImporter est incapable de se connecter au serveur.
    • Assurez-vous d'être capable d'ouvrir le client Octopus pour confirmer qu'il n'est pas corrompu. Au besoin, téléchargez une version fraîche du client.
  • Une erreur inattendue est survenue : The 'xxxxxx' provider is not registered on the local machine.
    • Le fournisseur OLEDB associé à votre source de données n'a pas été installé sur la machine exécutant DataImporter.

    • Assurez-vous d'avoir une version 32 bits de Microsoft Office. 

  • Une erreur inattendue est survenue : Invalid character in the given encoding. Line X, position Y.
    • Ce message est relié à une erreur dans le fichier XML. Veuillez vous référer à la section sur la configuration du fichier XML.
    • Assurez-vous de ne pas utiliser de caractère accentué dans le nom de votre source.
  • An unexpected error has occurred: '.', hexadecimal value 0x00, is an invalid character. Line 2, position 1.
    • Votre fichier de définition XML a été enregistré dans l'encodage Unicode plutôt que l'encodage ANSI.
  • Impossible d'importer cet enregistrement dû à un conflit de noms insoluble.
    • L'enregistrement que vous voulez ajouter ou mettre à jour n'est pas unique. Le système ne sait donc pas lequel utiliser.
  • La valeur de la colonne 'XXXXX' est requise.
    • Indique qu'une colonne obligatoire ne contient pas de donnée.
  • Les données modifiées sont en lecture seulement.
    • L'utilisateur Octopus utilisé dans la ligne de commande n'a pas toutes les permissions requises pour le type d'importation que vous effectuez.
  • Le contact principal spécifié n'existe pas.
    • Assurez-vous que le contact principal existe et que vous utilisez le nom d'utilisateur Windows lors de l'importation des CI.
  • Certains champs contiennent des valeurs invalides (Importation des CI).
    • TypeName : La valeur spécifiée pour le champ Type n'est pas valide.
    • PurchasePrice : La valeur du champ CoûtAchat doit être numérique.
    • Status : La valeur spécifiée pour le champ État n'est pas valide.
  • Il n'y a pas d'attribut nommé : XXXXX (Importation des CI).
    • Lorsque le système ne reconnait pas le nom d'une colonne, il suppose que c'est un attribut inexistant ou mal écrit.
    • Si le nom existe vraiment, assurez-vous de ne pas avoir d'espace à la fin du nom dans la cellule dans Excel.
  • [XXXXX] : XX : UnknownColumn.
    • Des colonnes cachées sont présentes dans votre fichier Excel. Assurez-vous de les faire apparaitre et de les supprimer si elles ne contiennent pas de données à importer.
  • L'attribut XXXXX est requis.
    • Une colonne obligatoire est manquante dans la source de données.
  • Il n'y a pas d'attribut nommé : Test#1 pour ce type de CI.
    • Lorsque le nom d'un attribut contient un point (.), le système n'est pas en mesure de le traiter et le remplace par le signe dièse (#) dans le message d'erreur du journal des opérations. Vous devez donc éviter ce type de caractère dans le nom de vos attributs.
  • Une erreur inattendue est survenue : String was not recognized as a valid TimeSpan.
    • Lorsque vous importez le champ Effort dans les requêtes, vous devez vous assurer que la colonne soit au format texte et que l'effort soit entré de la façon suivante : 03:45 ou 00:30.
  • La valeur spécifiée pour le champ XXXXX n'est pas valide.
    • La valeur que vous avez spécifiée ne fait pas partie du champ des valeurs acceptables.
  • Une erreur inattendue est survenue : Fichier introuvable C:\import\...\True.
    • Vous avez omis les deux points (:) entre un commutateur et sa valeur dans votre ligne de commande.

Si vous rencontrez des messages d'erreurs inconnuscontactez-nous pour nous en aviser.

X
Aidez-nous à améliorer l’article