Sommaire |
D’une utilisation simple et légère, Maarch AutoImport permet d’effectuer une importation en masse de documents dans la base de données Maarch et le DocServer. La version 3.2 fonctionne avec Maarch Entreprise 1.2 et Maarch Letterbox 2.9. Nous avons ajouté une collection de factures d'exemples qui viennent s'intégrer naturellement dans la démonstration de Maarch Entreprise.
Maarch AutoImport scanne l’intégralité des documents désirés pour l’importation. Pour effectuer une indexation, le fichier doit être lié avec un fichier XML de même nom. Ce dernier contient les informations nécessaires au référencement du document (description, statut, date de création, collection documentaire, etc…).
Maarch AutoImport nécessite l’installation d’une console PHP 5.3 au minimum pour exécuter le script. L’application Maarch doit être préalablement configurée. De même, le DocServer doit être créé et lié à la base de données.
Il est nécessaire d’ajuster la taille limite autorisée du DocServer dans la base de données. Dans le cas ou la taille limite est dépassée, l’importation ne sera pas autorisée.
Vous trouverez dans la table parameters une occurrence work_batch_autoimport_id. Lors de la première utilisation de Maarch AutoImport, il est nécessaire de passer sa valeur à 0.
Aucune procédure d’installation n’est demandée pour cette application. Seuls les différents fichiers de Maarch AutoImport doivent être déplacés dans un répertoire crée par l’utilisateur. Il suffit juste de modifier les différents fichiers de configuration.
Pour configurer Maarch AutoImport, il faut éditer le fichier config.xml. Ce dernier comporte les informations nécessaires pour la connexion à la base de données et à l’importation des fichiers vers le DocServer. Le mapping_file.xml est le fichier de liaison entre les différents fichiers XML et la base de données. Ci-dessous une explication détaillée de chacun de ces fichiers.
config.xml est le fichier de configuration de Maarch AutoImport. il permet de se connecter à la base de données ou encore d’envoyer les fichiers vers le DocServer de Maarch.
Chaque balise est une propriété de configuration. Les valeurs entre ces dernières sont personnalisables.
Description du fichier de configuration :
Le mapping_file est le fichier permettant d’indexer les propriétés dans les champs désirés de la base de données. La configuration de ce fichier est impérative pour effectuer l’indexation.
Chaque champ devant être indexé doit être compris dans une balise XML : la balise <ELEMENT>. Cette dernière comporte deux sous balises, la balise <COLUMN> ainsi que la balise <VALUE>.
Le nom du champ de la table de la base de données dans lequel sont envoyées les informations est à placer dans la balise <COLUMN>.
Le nom de la balise des fichiers XML lié pour chaque fichier est à placer dans la balise <VALUE>.
Nouveauté : <VALUE> peut être une constante délimitée par un simple quote. Positionner <FORMAT> à DATE pour forcer la prise en compte du champ DATE_TIME_FORMAT du config.xml pour les champs date.
Exemple de fichier mapping_file.xml configuré :
<ROOT>
<MAPPING_FILE>
<ELEMENT>
<COLUMN>DOC_DATE</COLUMN>
<VALUE>DATE_DU_DOCUMENT </VALUE>
<FORMAT>DATE</FORMAT>
</ELEMENT>
<ELEMENT>
<COLUMN>DESCRIPTION</COLUMN>
<VALUE>MONTANT</VALUE>
</ELEMENT>
<ELEMENT>
<COLUMN>TYPE_ID</COLUMN>
<VALUE>TYPE_ID</VALUE>
</ELEMENT>
<ELEMENT>
<COLUMN>TITLE</COLUMN>
<VALUE>FACTURE</VALUE>
</ELEMENT>
<ELEMENT>
<COLUMN>IDENTIFIER</COLUMN>
<VALUE>CLIENT</VALUE>
</ELEMENT>
<ELEMENT>
<COLUMN>CUSTOM_T4</COLUMN>
<VALUE>ADRESSE</VALUE>
</ELEMENT>
<ELEMENT>
<COLUMN>STATUS</COLUMN>
<VALUE>'NEW'</VALUE>
</ELEMENT>
</MAPPING_FILE>
</ROOT>
Pour effectuer l’indexation d’un document dans Maarch, les informations d’indexation doivent être liées dans un autre fichier ne compromettant pas le fichier original. Le fichier comprenant les différentes propriétés d’indexation est un fichier XML portant le même nom que le fichier original. Les informations devant être indexées dans les champs désirés sont comprises entre des balises, ayant le même nom que la valeur des balises <VALUE> du fichier mapping_file.xml
Exemple de fichier XML de propriété :
<?xml version='1.0' encoding='iso-8859-1'?> <ROOT> <DATE_DU_DOCUMENT>2007-01-11 00:00:00</ DATE_DU_DOCUMENT > <TYPE_ID>Customer Invoice</TYPE_ID> <FACTURE>ACME F-003</FACTURE> <CLIENT>ACCOVA RADIATEURS</CLIENT> <ADRESSE>7 rue Jean Mermoz</ADRESSE> <CP>91080</CP> <VILLE>COURCOURONNES</VILLE> <MONTANT>803,71</MONTANT> </ROOT>
Lorsque le fichier config.xml et le fichier mapping_file.xml sont correctement configurés, Maarch AutoImport peut être exécuté pour injecter les documents au sein de Maarch.
Maarch AutoImport se lance par l’intermédiaire d’un interpréteur de commande.
Pour cela, cliquez, via le menu démarrer sur la commande « Exécuter ». Dans la fenêtre d’exécution, saisir cmd puis validez.
Il est dans un premier temps nécessaire d’ouvrir l’interpréteur de commande PHP. Pour cela, il faut se rendre dans le répertoire PHP.
Indices de pilotages DOS : Emplacement par défaut de PHP 5.0 :
cd « C:\xampp\php\php.exe »
Une fois dans le répertoire de l’interpréteur PHP, il ne reste qu’à lancer ce dernier, accompagné du fichier à exécuter ainsi que du fichier de configuration :
php [emplacement de l’application] [fichier de configuration]
Exemple de ligne de commande pour lancer l’importation en masse avec le fichier de configuration standard :
C:\xampp\php\php.exe C:\autoimport\maarch_autoimport\maarch_auto_import.php C:\autoimport\maarch_autoimport\config.xml
Une fois la commande validée, l’interpréteur PHP lance le script demandé. Maarch AutoImport est alors lancé.
Les différentes actions exécutées durant le processus d’importation sont stockées dans un fichier de traçage événementiel. Ce dernier se trouve dans le répertoire de Maarch AutoImport et porte le nom de log.txt. Ce document est écrasé après chaque nouvelle exécution du script.
Si l’application rencontre une erreur durant le processus, cette dernière est immédiatement stoppée et l’indexation n’a pas lieu.
un fichier SQL est créé dans le répertoire de l’application. Ce dernier comporte la requête à exécuter dans la base de données pour l’indexation des documents.
Lorsque les documents ont été correctement insérés dans Maarch, le dossier d’importation déplace les documents vers le sous répertoire /backup/. Si une erreur est signalée à l’application durant l’importation, les documents sont envoyés vers le sous-répertoire /failed/.
Lorsque l’application est en cours d’exécution, cette dernière dépose dans son propre répertoire un fichier nommé AutoImport.lck qui est supprimé lorsque l’exécution se termine.
Ce fichier a pour but d’éviter un traitement erroné des documents. Une seule instance de Maarch AutoImport peut être lancée à la fois.
Dans le répertoire de l’application, vous trouverez un fichier nommé log.txt. Ce dernier trace les différentes évolutions du script durant son lancement. Ce journal vous permet suivre les actions effectuées par l’AutoImport. Ce fichier ce réinitialise à chaque nouveau lancement du script.
Lorsque qu’une erreur est signalée, cette dernière est inscrite dans le fichier journal, ainsi que son code permettant de vous guider pour la résolution du problème.
Les codes 'erreur' les plus courants :
Votre DocServer est défini comme rempli. Vous ne pouvez plus insérer de nouveaux documents sauf en augmentant la taille limite via la table de la base de données « docserver ». Attention, il est nécessaire de s’assurer que le support de stockage contient la place nécessaire pour de nouvelles indexations.
Maarch AutoImport ne peut envoyer les nouveaux fichiers vers le DocServer. Les causes peuvent être nombreuses, mais il est judicieux de vérifier que le fichier n’a pas été supprimé ou déplacé durant le processus d’importation.
La location physique du DocServer a peut-être été mal définie. Il est important de rappeler que si vous utilisez un système de type Windows, le caractère « \ » à besoin d’être dédoublé « \\ » pour être pris en compte par Php.
Si la requête SQL ne peut être lancée, il est nécessaire de vérifier le fichier de mapping Mapping_file.xml ainsi que son contenu. Les champs indiqués entre les balises sont peut-être inexistants soit dans la base ou dans les fichiers d’index XML.
Ce code erreur peut subvenir aussi si le document n’est pas lié avec un fichier XML ou que ce dernier est illisible.
Cette erreur signifie que l’application ne peut poser les documents à importer vers le répertoire de contrôle. Dans ce cas, il peut s’avérer judicieux de vérifier que l’adresse physique du DocServer est bien déclarée dans la base de données.
Seuls les documents sont envoyés vers le DocServer. Les fichiers XML sont détruits une fois injectés dans la base de données. Dans le répertoire du doc serveur, le tri des documents se fait au premier niveau par année et au second niveau par mois. Le troisième niveau est le numéro du lot de travail de l’AutoImport. Ce numéro peut se modifier dans la base de données via la table parameters mais est fortement déconseillé lorsque des documents sont indexés. Pour organiser les documents dans le DocServer, ces derniers sont renommés et classés par répertoire. Tous les mille documents, un nouveau répertoire est créée pour accueillir le prochain millier de fichier.