Traitements autonomes en ligne de commande

Qualigeo permet d’exécuter des traitements en ligne de commande sans avoir besoin de passer par l’interface graphique. Ces traitements autonomes sont développés en language Python.

  • Les paramètres sont fournis sous la forme d’un dictionnaire python.
  • La liste des paramètres est entourée d”accolades : « { } ».
  • Chaque nom de paramètre est séparé de sa valeur par « : ».
  • Tous les paramètres sont séparés par des « , ».

../_images/attention2.png Attention tous les chemins passés en paramètres doivent être saisis avec des slashs et non pas des antislashs.

Les scripts python suivants sont fournis :

Lancement d’un contrôle simple : control.py

Le script python control.py permet de lancer un contrôle sur un jeu de données. Dans un premier temps, il récupère l’identifiant du contrôle, puis lance celui-ci et pour finir met à jour la base de données avec le log, la date de fin du contrôle ainsi que son état. Si le script n’arrive pas à sauvegarder le fichier de log dans la base de donnée, celui-ci est conservé.

Liste des paramètres obligatoires :

  • schema : nom du schéma des contraintes à exploiter
  • format : format du jeu de données à contrôler
  • ControlDatabase : nom de la base de données
  • ControlServer : serveur base de données
  • ControlPort : port base de données
  • ControlUser : utilisateur base de données
  • ControlPassword : mot de passe de l’utilisateur
  • source : source des données à tester (soit un chemin de fichier, soit les chemins de fichiers séparés par des espaces, soit le nom de la base de données si le format est de type base de données, soit un nom de répertoire si le format est de type directory) (*)

Liste des paramètres complémentaires :

  • auteur : auteur du contrôle
  • idControl : identifiant du contrôle
  • commentaire : commentaire à associer au contrôle
  • formatSchema : format du format personnalisé si utilisé
  • genStat : génération de statistiques ou pas (non, 0, oui, 1)
  • nbErreurMax : nombre d’erreurs max (0 = infini)
  • coordsys : système de coordonnées du jeu de données si il n’est pas défini dans le schéma
  • formatSchema : format du format personnalisé si utilisé
  • fts: valeur vide si le format est de type fichier fichier ou directory. Pour les formats de bases de données, liste des types d’entité à lire séparés par des espaces et protégé par des «  ».
  • Database : paramètres affectés aux ressources des formats de type base de données
  • dbServer : nom du serveur de données
  • dbPort : port du jeu de données
  • dbUser : utilisateur du jeu de données
  • dbPassword : mot de passe des données
  • VersionControle : version du schéma de contraintes
  • datasetName : Nom du jeu de données
  • datasetVintage : Millésime du jeu de données

Exemple

La liste des paramètres est entourée de { et } .

Chaque nom de paramètre est séparé de sa valeur par « : ».

Tous les paramètres sont séparés par des « , ».

fme "c:/Qualigeo/script/control.py" "{’--schema’: ’Cadastre’, ’--format’: ’EDIGEO’, ’--auteur’: ’admin’, ’--commentaire’: ’test commande’, ’--coordsys’:--ControlDatabase’: ’qualigeo’, ’--ControlServer’: ’localhost’, ’--ControlPort’: 5432, ’--ControlUser’: ’admin’, ’--ControlPassword’:’admin’, ’--source’:’C:/Users/admin/Desktop/EDIGEOE2.THF’, ’--fts’: ’’}"

Génération d’un rapport : report.py

Le script report.py permet de générer un rapport simple au format XML ou DOCX.

Dans un premier temps le script génère un fichier xml contenant les données. Ensuite, il lie ce fichier à la feuille de style puis génère le rapport au format souhaité. Pour lancer le script, il faut fournir les paramètres nécessaires à la génération du rapport sous la forme d’un dictionnaire.

Liste des paramètres obligatoires :

  • idControle : identifiant du contrôle pour lequel générer le rapport.
  • PicturePath : lien du logo à insérer dans le rapport.
  • destXml : chemin et nom du rapport à générer.
  • dbPort: port de la base de données.
  • dbDatabase : nom de la base de données
  • dbServer : serveur de la base de données
  • dbUser : Utilisateur de la base de données
  • dbPassword : mot de passe utilisateur
  • xsltStyleSheet : chemin de la feuille de style.
  • deleteXml : Suppression du xml servant à produire le rapport au format HTML, une fois ce dernier généré. ( »yes » ou « no »)
  • reportType : format de sortie du rapport ( »docx » ou « html »). Remplace l’extension fournie.

../_images/attention2.png Si le paramètre reportType est en conflit avec le paramètre destXml, l’extension fournie sera celle du paramètre –reporType

Exemple

fme "c:/Qualigeo/script/report.py" "{’--idControle’: ’21’, ’--PicturePath’: ’C:/Program Files (x86)/qualigeo_2017.1.b23689_betax64/Qualigeo/report/resources/logo_qualigeo.png’, ’--destXml’: ’C:/rapport/rapport3.xml’, ’--xsltStyleSheet’: ’C:/Program Files (x86)/qualigeo_2017.1.b23689_betax64/Qualigeo/engine/xslt/simple.xslt’, ’--dbPort’: ’5432’, ’--dbDatabase’: ’qualigeo’, ’--dbUSer’: ’admin’, ’--dbPassword’: ’admin’, ’--dbServer’: ’localhost’, ’--deleteXml’: ’no’, ’--reportType’: ’docx’}"

Lancement d’un contrôle et de génération du rapport correspondant : Control_report.py

Le script control_report.py permet de lancer un contrôle et ensuite de générer le rapport correspondant au format XML ou DOCX. Il lance dans un premier temps le script control.py puis lance ensuite le script rapport.py.

Il faut fournir la liste des paramètres nécessaires au fonctionnement du contrôle dans un premier dictionnaire puis fournir les paramètres nécessaires restants pour la génération de rapport dans un second dictionnaire.

Liste des paramètres

Dictionnaire contrôle

  • schema : Nom du schéma des contraintes
  • format : format du jeu de données
  • formatSchema : format du format personnalisé
  • auteur : auteur du contrôle
  • commentaire : commentaire à associer
  • coordsys : système de coordonnées si non défini dans le schéma
  • genImage : paramètre booléen pour la génération des images
  • nbErreurMax : nombre d’erreurs max (0 = inifini)
  • Database : nom Base de données
  • Server : serveur base de données
  • Port : port base de données des contrôles
  • User : utilisateur base de données
  • Password : mot de passe de l’utilisateur
  • ControlDatabase : nom Base de données
  • ControlServer : serveur base de données
  • ControlPort : port base de données
  • ControlUser : utilisateur base de données
  • ControlPassword : mot de passe
  • source : source des données à tester. Soit un chemin de fichier, soit les chemins de fichiers séparés par des espaces, soit le nom de la base de données si le format est de type base de données, soit un nom de répertoire si le format est de type directory
  • fts (si le format est de type fichier fichier ou directory: valeur vide, pour les formats bases de données : liste des types d’entité à lire séparés par des espaces et protégé par des «  »)
  • Database : paramètres affectés aux ressources des formats de type base de données
  • dbServer : serveur du jeu de données
  • dbPort : port du jeu de données
  • dbUser : utilisateur du jeu de données
  • dbPassword : Mot de passe de l’utilisateur

Dictionnaire rapport

  • destXml : chemin et nom du rapport à générer.
  • PicturePath : lien du logo à insérer dans le rapport.
  • imageDir : répertoire de stockage des images
  • xsltStyleSheet : chemin de la feuille de style.
  • deleteXml : Suppression du xml servant à produire le rapport au format HTML, une fois ce dernier généré. ( »yes » ou « no »)
  • reportType : format de sortie du rapport ( »docx » ou « html »). Remplace l’extension fournie.

Exemple

fme " c:/Qualigeo/script/control_report.py" "{’--schema’: ’recette3’, ’--format’: ’SHAPE’, ’--formatSchema’: ’SHAPE’, ’--auteur’: ’margot’, ’--commentaire’: ’test controle rapport d’aurélien’, ’--genStat’: 0, ’--nbErreurMax’: 0, ’--controlDatabase’: ’qualigeo’, ’--controlServer’: ’localhost’, ’--controlPort’: 5432, ’--controlUser’: ’admin’, ’--controlPassword’:’admin’, ’--source’: ’C:/produit/qualigeo/tests/data/recette3/recette3.zip’}" "{ ’--PicturePath’: ’C:/Program Files (x86)/qualigeo_2017.1.b23689_betax64/Qualigeo/report/resources/logo_qualigeo.png’, ’--destXml’: ’C:/qualigeo2017/rapport/rapportcontrolerapport.xml’, ’--xsltStyleSheet’: ’C:/Program Files (x86)/qualigeo_2017.1.b23689_betax64/Qualigeo/engine/xslt/simple.xslt’,’--dbUSer’: ’admin’, ’--deleteXml’: ’no’, ’--reportType’: ’docx’}"

Lancement d’un contrôle et d’un rapport : gtf_control_report.py

Le script gtf_control_report.py permet d’exécuter un contrôle et un rapport sur un jeu de données.

Liste des paramètres :

  • schema : nom du schéma des contraintes à exploiter
  • format : format du jeu de données à contrôler
  • sourceMotif : extension des données sources
  • H_summaryFIle : chemin et nom du fichier texte contenant le nombre d’erreurs générées
  • H_destReportFile : chemin et nom du rapport destination
  • reportStyleSheet
  • GTF_CONNECTION_STRING
  • datasetName
  • datasetDate
  • author : auteur du contrôle
  • PicturePath : lien du logo à insérer dans le rapport.

Exemple

"C:/Program Files (x86)/FME/fme.exe" "C:/qualigeo_2017.1.b23877_betax64/Qualigeo/script/gtf_control_report.py" "{’--sourceDir’: ’C:/Users/schemas/qsx’, ’--schema’: ’recette1’, ’--format’: ’SHAPE’, ’--sourceMotif’: ’\*.zip’, ’--H_summaryFile’: ’C:/Users/Documents/RapportGTF/summary.txt’, ’--H_destReportFile’: ’C:/Users/Documents/RapportGTF/rapport.xml’, ’--PicturePath’: ’C:/qualigeo_2017.1.b23877_betax64/Qualigeo/report/resources/logo_qualigeo.png’, ’--reportStyleSheet’: ’simple’}"

../_images/attention2.pngLes chemins des fichiers indiqués en commande doivent être parfaitement identiques à ceux du script Python exécuté.