Les préimports


Definition

Un préimport est un processus préparatoire à une intégration de données externes dans la base Service Manager. Il permet d'automatiser des traitements à réaliser avant l'exécution d'un modèle d'intégration, via des scripts SQL  - Open url.png voir Exemples

EndDefinition
  • Les scripts SQL sont référencés dans des fichiers de configuration .ini. Des sections dédiées permettent de décrire les traitements à réaliser avant / après le stockage des données externes dans Service Manager  - Open url.png voir Description (sections [PROCESS])
  • Ils sont traités par l'ordonnanceur smoBackOffice de Service Manager, dans l'ordre dans lequel ils sont renseignés dans le fichier PREIMPORT_SQL.sql et suivant les paramètres de planification renseignés dans chaque fichier .ini.

Exemples

  • Vider une table dans Service Manager avant d'intégrer les données externes
  • Normaliser les données externes avant de les intégrer dans Service Manager : transformer les capacités des processeurs en Go et non en Mo avant d'intégrer un fichier d'inventaire.
  • Homogénéiser les données externes avant de les intégrer dans Service Manager : remplacer les valeurs Hewlett P et Hewlett Packard par la valeur HP qui est celle stockée dans Service Manager.
  • Filtrer les données externes à intégrer dans Service Manager : extraire uniquement les données des tables SCCM correspondant aux entrées catalogue à suivre dans Service Manager  - Open url.png voir Passerelle SCCM

Principe de fonctionnement

Représentation Étapes
Operating principle.png
  • (1) Lecture des sources de données externes (fichier CSV, base de données, annuaire, ...) via les informations de connexion définies dans les fichiers de configuration du préimport.
  • (2) Stockage des données externes dans des tables de travail Service Manager.
  • (3) Exécution des traitements référencés dans les fichiers de configuration, suivant leur ordre.
  • (4) Stockage des données traitées dans les tables finales Service Manager.

Remarques

Attention

  • Les scripts de création/suppression d'objets Service Manager doivent toujours être exécutés sur la base SQL Server avant de lancer le préimport.
  • Dans les scripts SQL, n'omettez pas le caractère = qui identifie chaque fin d'instruction.

    exemple  

    CUSTOMERNAME\LDAP_INSERT_TABLE_LDAP_CUSTOMERNAME_OK.sql=

Bonnes pratiques

  • Effectuez des traitements d'homogénéisation sur les données externes si l'intégration met à jour les tables de référence et les catalogues. Cela évite de polluer le référentiel existant avec des valeurs redondantes correspondant à la même référence.

    exemple  

    • Remplacer les valeurs Hewlett P et Hewlett Packard par la valeur HP qui est celle stockée dans Service Manager
    • Remplacer le libellé Mme par Madame qui est celle stockée dans la table des civilités
  • Lancez l'exécution des scripts de remplissage de tables en dernier, après tous les traitements sur les données (normalisation, transcodage, ...).

Description des fichiers utilisés par un préimport

Le fichier PREIMPORT_SQL.sql

  • Il s'agit de l'ordonnanceur général du préimport.
  • Il indique le chemin des fichiers de configuration utilisés par le préimport et pilote leur enchaînement.
  • Note : Vous devez placer le fichier dans le répertoire <easyvista>\tools\smoBackOffice\QUERIES\SQL\PREIMPORT\. (<easyvista> identifie le répertoire EasyVista sur votre serveur applicatif).
     
[PREIMPORT]
<PreimportFileName1.ini>=
<PreimportFileName2.ini>=
<PreimportFileName3.ini>=

Les fichiers de configuration .ini

  • Ils indiquent les sources des données externes du préimport, avec les paramètres de connexion lorsqu'il s'agit de bases de données.
  • Ils recensent les différents traitements à exécuter et leur enchaînement.
  • Notes :
    • Vous devez placer les fichiers dans le répertoire <easyvista>\tools\smoBackOffice\QUERIES\SQL\PREIMPORT\. (<easyvista> identifie le répertoire EasyVista sur votre serveur applicatif).
    • Vous devez placer les scripts SQL dans un sous-répertoire du répertoire \Preimport\.
       
; ==> Éléments généraux du fichier
;    Indiquer si le fichier peut être exécuté : ACTIVE (Oui=1 / Non=0)
[DEFINITION]
NAME=IMPORT EXAMPLE
ACTIVE=1
;    Fréquence d'exécution du fichier en nombre de jours
FREQUENCY=1
;    Heure de début souhaitée pour lancer le fichier
BEGINTIME=06:00:00
;    Indiquer si un fichier de log doit être créé : LOG_DEBUG (Oui=1 / Non=0)
LOG_DEBUG=1
DO_NOT_DELETE_TEMPTABLE=0
;    Date de dernière exécution en fraction d'heure et au format AAAAMMJJHHMMSS
;    Mise à jour automatiquement à la prochaine exécution
;NLASTRUN=
;SLASTRUN=

; ==> Liste des scripts SQL à exécuter avant de stocker les données externes dans les tables de travail
[PREPROCESS]
;script_preprocess.sql=
FCT=RESULTAT=WSDL(EVO_BACKOFFICE,50004,TEST_WSDL,ID)

[CLEAN]
;scriptclean.sql=

;  ==>  Liste des scripts SQL à exécuter pour stocker les données externes dans les tables de travail
[PROCESS]
;IMPORTLDAP1=

; ==> Liste des scripts SQL à exécuter sur les données stockées dans les tables de travail
[POSTPROCESS]
;script_postprocess.sql=

; ==> Paramètres de connexion aux bases de données externes
;    Nommez les sections suivant la nature de la source de données : [IMPORTLDAP], [IMPORTCSV], [IMPORTORACLE], [IMPORTADO], ...
;
;  ==>  Préimport LDAP
[IMPORTLDAP1]
DBKERNEL=LDAP
HOSTNAME_1=MyLDAPServerIP
LOGIN_1=MyLogin
PASSWORD_1=MyPassword
DOMAIN_1=DC=staffandline,DC=local      
OBJECT_1=(|(&(CN=MYPC)(objectClass=*))(&(CN=MY2PC)(objectClass=*)))
FIELDS_1=DN,ObjectGuid
TABLE_1=MyTable
UNICODE_1=0
DNUNICODE_1=0
SINGLEPASS_1=1
DO_NOT_DELETE_TEMPTABLE=1
protocol_1=3
;ROW_SEPARATOR_1=ONELARGEROWSEPARATOR
;LINE_SEPARATOR_1=ONELARGELINESEPARATOR

;  ==>  Préimport LDAP
[IMPORTLDAP2]
DBKERNEL=LDAP2
HOSTNAME_1=1.2.3.4
PORT_1=389
LOGIN_1=LDAPAccount
PASSWORD_1=********
DOMAIN_1=DC=CUSTOMERNAME,DC=com
OBJECT_1=(&(objectcategory=person)(objectClass=user))
FIELDS_1=cn,displayName,mail,sAMAccountName,c,l,title,telephoneNumber,company,department,mobile,manager,locale,language,countryCode,DN
TABLE_1=E_LDAP_CUSTOMERNAME_TEMP
DO_NOT_DELETE_TEMPTABLE=1
ORGANISATION_FILTER_1=(OU=*)
PROTOCOL_1=3
UNICODE_1=1
DNUNICODE_1=0
SinglePass_1=1

;  ==>  Préimport ADO
[IMPORTADO1]
DBKERNEL=ADO
CONNECTIONSTRING_1=Provider=sqloledb;Data Source=0627-sf\OFFICIEL;Initial Catalog=EVO_ADMIN;User Id=EZV_ADMIN;Password=staff;
TABLE_1=MyTable
REQUEST_1=MyRequest.sql
DO_NOT_DELETE_TEMPTABLE=1
ROW_SEPARATOR_1=ONELARGEROWSEPARATOR
LINE_SEPARATOR_1=ONELARGELINESEPARATOR

;  ==>  Préimport Oracle
[IMPORTORACLE1]
DBKERNEL=ORACLE
HOST=OBELIX
LOGIN=
PASSWORD=
DATABASE=
TABLE_1=
REQUEST_1=MyRequest.sql
TABLE_2=
REQUEST_2=MyRequest.sql
DO_NOT_DELETE_TEMPTABLE=1

;  ==>  Préimport CSV
[IMPORTCSV1]
DBKERNEL=CSV
TABLE_1=TABLE_CSV_TEMP
DIRECTORY_1=C:\easyvista\tools\smoBackOffice\QUERIES\SQL\PREIMPORT\
EXTENTION_1=MyFile.csv
SEPARATOR_1=;
DO_NOT_DELETE_TEMP_TABLE=1

La section [PREPROCESS]

Cette section liste les scripts SQL à exécuter avant de stocker les données externes dans les tables de travail Service Manager. Généralement, il s'agit de requêtes pour vider des tables.

      exemple  

  • Vider la table myTable
    Fichier de configuration Détail du script SQL
    [PREPROCESS]
    DELETE_TABLE.sql=
    DELETE FROM myTable
  • Lancer des scripts de suppression de données situés dans le répertoire CUSTOMERNAME
    Fichier de configuration Détail du script SQL
    [PREPROCESS]
    CUSTOMERNAME\LDAP_TRUNCATE_TABLE_LDAP_CUSTOMERNAME_TEMP.sql=
    CUSTOMERNAME\LDAP_TRUNCATE_TABLE_LDAP_CUSTOMERNAME_OK.sql=

La section [PROCESS]

Cette section liste les scripts SQL à exécuter pour stocker les données externes dans les tables de travail Service Manager.

  • Les scripts varient selon la source de données.
  • Ils peuvent donner lieu au remplissage de nouvelles tables de travail Service Manager.

exemple  Lancer un script d'insertion de données situé dans le répertoire CUSTOMERNAME 

Fichier de configuration Détail du script SQL
[PROCESS]
CUSTOMERNAME\LDAP_INSERT_TABLE_LDAP_CUSTOMERNAME_OK.sql=

La section [POSTPROCESS]

Cette section liste les scripts SQL à exécuter sur les données stockées dans les tables de travail Service Manager. Il peut s'agir de scripts standard ou de scripts personnalisés écrits par les clients, de scripts de transcodage ou de remplissage de tables.

Note : Lancez l'exécution des scripts de remplissage de tables en dernier.

  • Scripts standard Service Manager pour homogénéiser les données

exemple  Lancer un script pour mettre toutes les dates au format utilisé dans Service Manager, puis stocker les données homogénéisées dans une nouvelle table de travail

Fichier de configuration Détail du script SQL
[POSTPROCESS]
INSERT_TABLE_LDAP_OK.sql=
INSERT INTO [EVO_BACKOFFICE].ezv_admin.e_csv_temp2
   ([qualite],lastname,firstname,[directory],[start_date],[end_date],[email],[phonefixext],
   [telcom],[cellphone],[sitecode],[desk],[section],[subsidiary],[division],[FolderN1],[department],[login])
SELECT Isnull(Rtrim(Upper([civility])), ''), Isnull(Upper([firstname]), ''), Isnull(Lower([lastname]), ''), Isnull([directory], ''),
  Cast((Substring(start_date, 7, 4)+'-'+Substring(start_date, 4, 2)+'-'+Substring(start_date, 1, 2)+' 00:00:00.000') AS DATETIME),
  Cast((Substring(end_date, 7, 4)+'-'+Substring(end_date, 4, 2)+'-'+Substring(end_date, 1, 2)+' 00:00:00.000') AS DATETIME)
  AS date_fin
FROM [EVO_BACKOFFICE].ezv_admin.[e_csv_temp]
WHERE firstname NOT LIKE 'TEST%'
AND directory NOT LIKE 'RET%'
AND sitecode NOT LIKE '%--%'--
  • Scripts personnalisés pour normaliser les données, qui sont propres à chaque client

    exemple 

    • Stocker les valeurs en Mo et non en Go
    • Reconstruire la localisation à partir de 3 champs des données client
    • Numéroter les cartes graphiques de chaque poste de travail
       
    • Normaliser les libellés des civilités d'une table de travail
      Fichier de configuration Détail du script SQL
      [POSTPROCESS]
      UPDATE_TABLE_LDAP_OK.sql=
      UPDATE [EVO_BACKOFFICE].ezv_admin.e_csv_temp
      SET civilite = CASE qualite
        WHEN 'Sir' THEN 'Mr.'
        WHEN 'sir' THEN 'Mr.'
        WHEN 'Madam'THEN 'Ms.'
        WHEN 'Miss' THEN 'Ms.'
        WHEN 'Mrs' THEN 'Ms.'
        ELSE qualite
        END
      FROM [EVO_BACKOFFICE].ezv_admin.e_csv_temp
  • Scripts de transcodage des données dans le cadre des passerelles d'intégration, pouvant être personnalisés par chaque client

    exemple  Suivre sous une même entrée catalogue toutes les dénomination SCCM des versions d'un même logiciel

  • Scripts de remplissage des tables finales Service Manager.

    exemple  Remplir une table finale Service Manager à partir d'une table de travail

    Fichier de configuration Détail du script SQL
    [POSTPROCESS]
    INSERT_TABLE_LDAP_OK.sql=
    INSERT INTO [EVO_BACKOFFICE].[EZV_ADMIN].[e_csv_ok]
       ([civility],[name],[start_date],[end_date],[email],[phone],
       [cellphone],[rsoc_div_dep],[domain],[language],[date_update],[login])
    SELECT [civility],[name],[start_date],[end_date],[email],[phonefixext],
       [cellphone],[rsoc_div_dep],[domain],[language],Getutcdate(),login
    FROM [EVO_BACKOFFICE].[EZV_ADMIN].[e_csv_temp2]

Best Practice icon.png  Vous pouvez appliquer un mini-traitement à l'intérieur du script, en utilisant une clause WHERE.

exemple  Intégrer les données d'un fichier CSV en excluant la ligne d'entête

WHERE 'col0' <> 'name'

Procédure : Comment lancer un préimport via l'ordonnanceur smoBackOffice de Service Manager

     Open url.png Reportez-vous à la procédure Comment automatiser une intégration pour exécuter un préimport via un ordonnanceur externe ou une application tierce

1. Indiquez les fichiers .ini devant être exécutés par l'ordonnanceur smoBackOffice.

  • Ouvrez le fichier PREIMPORT_SQL.sql (répertoire <easyvista>\tools\smobackoffice\QUERIES\SQL\PREIMPORT).
  • Indiquez dans la section [PREIMPORT] la liste des fichiers de configuration .ini des scripts SQL à exécuter, dans l'ordre dans lequel ils doivent être traités.

2. Renseignez les paramètres de planification dans la section [DEFINITION] des fichiers de configuration .ini.

  • Ouvrez chaque fichier de configuration .ini.
  • Indiquez que le fichier doit être exécuté, via la clé ACTIVE.
  • Renseignez la fréquence d'exécution du fichier, via la clé FREQUENCY (en nombre de jours).
  • Renseignez l'heure de début souhaitée pour lancer le fichier, via la clé BEGINTIME (format HH:NN:SS).
  • Forcez l'exécution du fichier en effaçant les 2 clés NLASTRUN et SLASTRUN stockant la date de dernière exécution du fichier.

Les traitements via les scripts SQL sont effectués lors de la prochaine exécution du préimport.

Cas particulier d'utilisation

  • Préimport pour l'intégration d'un annuaire d'employés LDAP  - Open url.png voir Mise en oeuvre (EN)
Tags :

Raccourcis

Portail client

Tous les changements
•  Service Manager
•  Service Apps
•  Self Help
•  Service Bots

Powered by XWiki © EasyVista 2022