7.4 Importer des documents par ligne de commande

La commande wsh importDocuments permet d'importer des documents en ligne de commande. Les types suivants sont supportés par le script :

  • CVS
    • Encodage : UTF-8,
    • Séparateur de colonnes : ;(point-virgule par défaut - configurable en 3.2.12).
    • Délimiteur de texte : (vide par défaut - configurable en 3.2.12),
  • ODS,
  • XML,
  • ZIP,
  • TGZ
./wsh.php --api=importDocuments --help
Import documents from description file
Usage :
    --file=<the description file path>
Options:
--userid=<user system id or login name to execute function - default is (admin)>, default is '1'
--analyze=<analyze only> [yes|no], default is 'no'
--archive=<description file is an standard archive (not xml)> [yes|no], default is 'no'
--log=<log file output>
--policy=<policy import - 
    [update] to auto update same document (the default), 
    [add] to always create new document, 
    [keep] to do nothing if same document already present> [update|add|keep]
--htmlmode=<analyze report mode in html> [yes|no], default is 'yes'
--reinitattr=<reset attribute before import family update (deprecated)> [yes|no]
--reset=<reset options> [default|parameters|attributes|structure|properties|enums] 
--to=<email address to send report>
--dir=<folder where imported documents are put>
--strict=<don't import if one error detected> [yes|no], default is 'yes'
--csv-separator=<character to delimiter fields - generaly a comma> use single character or "auto", default is ';'
--csv-enclosure=<character to enclose fields - generaly double-quote> use single character or "auto", default is ''
--csv-linebreak=<character sequence to be import like CRLF>, default is '\n'
--help (Show usage) 

L'option --analyze=yes permet de réaliser une importation à blanc. Dans ce cas, l'importation est réalisée mais aucune modification n'est enregistrée en base de données. Cela permet de récupérer le rapport d'importation :

 ./wsh.php --api=importDocuments --analyze=yes --htmlmode=yes --file=animal.xml > report.html

Pour envoyer le rapport par courriel, l'option --to permet de désigner l'adresse du destinataire :

 ./wsh.php --api=importDocuments --to=someone@somewhere.org --file=animal.xml 

Pour avoir un fichier de log, l'option --log permet de spécifier l'emplacement auquel enregistrer le fichier de log :

./wsh.php --api=importDocuments --file=animaux.xml --htmlmode=yes --analyze=yes --log=/var/tmp/log.txt
$ cat /var/tmp/log.txt
IMPORT BEGIN OK : 02/07/2010 17:10:29
IMPORT DOC OK : [title:Isabelle] [id:0] [action:added] [changes:{nom:Isabelle}{espèce:1132}] [message:Isabelle à ajouter] 
IMPORT DOC OK : [title:Alli2 Agouti] [id:3296] [action:updated] [changes:] [message:]
IMPORT DOC KO : [title:] [id:0] [action:ignored] [changes:] [message:] [error:DOMDocument::load(): Opening and ending tag mismatch: r line 5 and zoo_animal in /var/tmp/xmlsplit4c2e10009374f/3299.xml, line: 10DOMDocument::load(): Premature end of data in tag zoo_animal line 2 in /var/tmp/xmlsplit4c2e10009374f/3299.xml, line: 11]
IMPORT COUNT OK : 2
IMPORT COUNT KO : 1
IMPORT END OK : 02/07/2010 17:10:31

3.2.18 Les documents ayant des attributs en visibilité I sont importés sans tenir compte de cette contrainte.

7.4.1 Options pour les importations de familles

L'option reset permet d'influer sur l'interprétation de l'importation en rajoutant des instructions de RESET au(x) définition(s) de famille(s).

L'option reset rajoute l'instruction RESET correspondant après chaque BEGIN du fichier. Toutes les familles définies ont cette instruction ajoutée.

./wsh.php --api=importDocuments --file=my_family.csv --reset=attributes

Cette option peut être multivaluée pour indiquer plusieurs instructions de RESET.

./wsh.php --api=importDocuments --file=my_family.csv --reset[]=enums --reset[]=default

L'option reinitattr est dépréciée. Cette option est équivalente à reset=attributes.

7.4.2 Gestion des erreurs

Si une seule erreur est détectée sur le fichier d'importation, aucun document du fichier d'importation ne sera ajouté ou modifié.

La liste des codes d'erreur reportés est consultable dans la documentation de l'API PHP : "Error codes".

×
mis à jour