You are browsing the documentation for iTop 2.7 which is not the current version.

Consider browsing to iTop 3.2 documentation

Data Synchronization: How to synchronize a Persons from a CSV file

In this How to, a person's details extracted from a CSV file (which might be an LDAP extract or any other source), will be synchronized with iTop.

name:
How to synchronize Persons from LDAP
type:
How To
audience:
Administrator, Integrator, Developer
level:
Intermediate
duration:
1h
keyword:
Data Synchro, Integration
iTop version:
2.2.0
state:
example

Prerequisites

What you will need to:

  • Know how to extract information about a person from your LDAP server and save this information to a .CSV file
  • Have an iTop system (with the demo data installed), with access to an admin account
  • Know how to connect to your iTop web server using the command line

Aim of this tutorial

In this tutorial, you will learn how to:

  • Create and configure a Synchro Data Source for synchronizing one class of objects into iTop
  • Feed and synchronize the external data into this Synchro Data Source
  • Understand the synchronization status report

 Synchronizing Persons from a CSV file

Step by step instructions

Initial configuration

Here, you will create the Synchro Data Source.

In the Admin tools menu, click on Synchronization Data Sources

Synchronization Data Sources menu

Click on Create a new Synchro Data Source.

Synchronization Data Sources menu

In the following screen, enter the Name (Persons from LDAP), Target class (Person) and User (admin) in the appropriate fields.

Synchronization Data Sources menu

Click on the Create button to create the Data Source.

Synchronization Data Sources menu

Once the Data Source has been created, click on Modify in the top right corner and edit the Attributes tab as shown below:

Synchronization Data Sources menu

In the URL of your browser, note down the identifier of the Synchro Data Source object. (Look for &id=xxx in the URL when displaying the object).

First synchronization: initial load

Then create the text file “persons.csv” in the directory “data” under the root of iTop, with the following content:

persons.csv
primary_key;name;first_name;org_id;email;status;function;phone;notify
1;Monet;Claude;Demo;claude.monet@demo.com;Active;Manager;+33123456789;Yes
2;Flaubert;Gustave;IT Department;gustave.flaubert@demo.com;Active;;+33987654321;No

From command line in the iTop root directory, launch the following command:

php synchro/synchro_import.php --auth_user=admin --auth_pwd=admin --csvfile=./data/persons.csv --data_source_id=1 --output=summary
Adjust the parameters:
  • auth_user: your iTop login
  • auth_pwd: your iTop password
  • data_source_id: the identifier of the Synchro Data Source created above

Expected output:

#Load--------------
#------------------
#Data Source: 1
#Synchronize: 1
#Class: Person
#Separator: ;
#Qualifier: "
#Charset Encoding:UTF-8
#Date format: <none>
#Data Size: 228
#Data Lines: 2
#Columns: primary_key, name, first_name, org_id, email, status, function, phone, notify
#Output format: summary
#Simulate: 0
#Change tracking comment: 
#Issues (before synchro): 0
#Created (before synchro): 2
#Updated (before synchro): 0
#Synchronization---
#------------------
#Replicas: 2
#Replicas touched since last synchro: 2
#Objects deleted: 0
#Objects deletion errors: 0
#Objects obsoleted: 0
#Objects obsolescence errors: 0
#Objects created: 0 (0 warnings)
#Objects creation errors: 0
#Objects updated: 0 (0 warnings)
#Objects update errors: 0
#Objects reconciled (updated): 2 (0 warnings)
#Objects reconciled (unchanged): 0 (0 warnings)
#Objects reconciliation errors: 0
#Replica disappeared, no action taken: 0

Check the status of the Synchro Data Source (press the “Refresh” icon if needed)

You can see that 2 Persons were updated.

Navigate to the details of the contact “Claude Monet”, you can see that this object is now synchronized:

Check the “History tab” for recent changes:

If you try to modify the Person, you can see that most of its attributes are locked:

Second synchronization: updating a contact

Modify the file “persons.csv” to change the function of Claude Monet from “Manager” to “Famous painter” Modify the text file “persons.csv” in the directory data under the root of iTop, with the following content:

persons.csv
primary_key;name;first_name;org_id;email;status;function;phone;notify
1;Monet;Claude;Demo;claude.monet@demo.com;Active;Famous painter;+33123456789;Yes
2;Flaubert;Gustave;IT Department;gustave.flaubert@demo.com;Active;;+33987654321;No

Launch the import and synchronization again using the same command:

php synchro/synchro_import.php --auth_user=admin --auth_pwd=admin --csvfile=./data/persons.csv --data_source_id=1 --output=summary

The output is the following:

#Load--------------
#------------------
#Data Source: 1
#Synchronize: 1
#Class: Person
#Separator: ;
#Qualifier: "
#Charset Encoding:UTF-8
#Date format: <none>
#Data Size: 235
#Data Lines: 2
#Columns: primary_key, name, first_name, org_id, email, status, function, phone, notify
#Output format: summary
#Simulate: 0
#Change tracking comment: 
#Issues (before synchro): 0
#Created (before synchro): 0
#Updated (before synchro): 2
#Synchronization---
#------------------
#Replicas: 2
#Replicas touched since last synchro: 2
#Objects deleted: 0
#Objects deletion errors: 0
#Objects obsoleted: 0
#Objects obsolescence errors: 0
#Objects created: 0 (0 warnings)
#Objects creation errors: 0
#Objects updated: 1 (0 warnings)
#Objects update errors: 0
#Objects reconciled (updated): 0 (0 warnings)
#Objects reconciled (unchanged): 0 (0 warnings)
#Objects reconciliation errors: 0
#Replica disappeared, no action taken: 0

the output of the synchro states that only 1 object was updated. This can be viewed also on the status tab of the Synchro Data Source:

Then navigate to the details of the Person “Claude Monet”:

Third synchronization: creating a new contact

Next, modify the text file “persons.csv” in the directory data under the root of iTop, by adding one line at the end:

persons.csv
primary_key;name;first_name;org_id;email;status;function;phone;notify
1;Monet;Claude;Demo;claude.monet@demo.com;Active;Famous painter;+33123456789;Yes
2;Flaubert;Gustave;IT Department;gustave.flaubert@demo.com;Active;;+33987654321;No
3;Mondrian;Piet;Demo;p.m@demo.com;Active;;+334433221100;No

Launch the import and synchronization again using the same command:

php synchro/synchro_import.php --auth_user=admin --auth_pwd=admin --csvfile=./data/persons.csv --data_source_id=1 --output=summary

The output is the following:

#Load--------------
#------------------
#Data Source: 1
#Synchronize: 1
#Class: Person
#Separator: ;
#Qualifier: "
#Charset Encoding:UTF-8
#Date format: <none>
#Data Size: 294
#Data Lines: 3
#Columns: primary_key, name, first_name, org_id, email, status, function, phone, notify
#Output format: summary
#Simulate: 0
#Change tracking comment: 
#Issues (before synchro): 0
#Created (before synchro): 1
#Updated (before synchro): 2
#Synchronization---
#------------------
#Replicas: 3
#Replicas touched since last synchro: 3
#Objects deleted: 0
#Objects deletion errors: 0
#Objects obsoleted: 0
#Objects obsolescence errors: 0
#Objects created: 1 (0 warnings)
#Objects creation errors: 0
#Objects updated: 0 (0 warnings)
#Objects update errors: 0
#Objects reconciled (updated): 0 (0 warnings)
#Objects reconciled (unchanged): 0 (0 warnings)
#Objects reconciliation errors: 0
#Replica disappeared, no action taken: 0

The output of the synchro states that only 1 object was updated. This can be also viewed on the Status tab of the Synchro Data Source:

Use the global search at the top-left of the page to search for “Contact:Piet”, then click on the name of the object to display its details.

Fourth synchronization: a case of error

Then modify the text file “persons.csv” in the directory “data” under the root of iTop, by adding one more line at the end:

persons.csv
primary_key;name;first_name;org_id;email;status;function;phone;notify
1;Monet;Claude;Demo;claude.monet@demo.com;Active;Famous painter;+33123456789;Yes
2;Flaubert;Gustave;IT Department;gustave.flaubert@demo.com;Active;;+33987654321;No
3;Mondrian;Piet;Demo;p.m@demo.com;Active;;+334433221100;No
4;Klimt;Gurstav;Test;gustav.klimt@demo.com;Active;;+335566778899;No

Launch the import and synchronization again using the same command:

php synchro/synchro_import.php --auth_user=admin --auth_pwd=admin --csvfile=./data/persons.csv --data_source_id=1 --output=summary

The output is the following:

#Load--------------
#------------------
#Data Source: 5
#Synchronize: 1
#Class: Person
#Separator: ;
#Qualifier: "
#Charset Encoding:UTF-8
#Date format: <none>
#Data Size: 361
#Data Lines: 4
#Columns: primary_key, name, first_name, org_id, email, status, function, phone, notify
#Output format: summary
#Simulate: 0
#Change tracking comment: 
#Issues (before synchro): 0
#Created (before synchro): 1
#Updated (before synchro): 3
#Synchronization---
#------------------
#Replicas: 4
#Replicas touched since last synchro: 4
#Objects deleted: 0
#Objects deletion errors: 0
#Objects obsoleted: 0
#Objects obsolescence errors: 0
#Objects created: 0 (0 warnings)
#Objects creation errors: 1
#Objects updated: 0 (0 warnings)
#Objects update errors: 0
#Objects reconciled (updated): 0 (0 warnings)
#Objects reconciled (unchanged): 0 (0 warnings)
#Objects reconciliation errors: 0
#Replica disappeared, no action taken: 0

the output of the synchro states that there is one error

Here add screenshot of the details of the replica in error

Then modify the text file “persons.csv” in the directory “data” under the root of iTop, by fixing the last line at the end (replace Test by Demo):

persons.csv
primary_key;name;first_name;org_id;email;status;function;phone;notify
1;Monet;Claude;Demo;claude.monet@demo.com;Active;Famous painter;+33123456789;Yes
2;Flaubert;Gustave;IT Department;gustave.flaubert@demo.com;Active;;+33987654321;No
3;Mondrian;Piet;Demo;p.m@demo.com;Active;;+334433221100;No
4;Klimt;Gurstav;Demo;gustav.klimt@demo.com;Active;;+335566778899;No

Launch the import and synchronization again using the same command:

php synchro/synchro_import.php --auth_user=admin --auth_pwd=admin --csvfile=./data/persons.csv --data_source_id=1 --output=summary

There should be no error and the contact Gustav Klimt is created in the Demo organization.

2_7_0/advancedtopics/synchro_howto_personsfromldap.txt · Last modified: 2020/04/15 15:23 by 127.0.0.1
Back to top
Contact us