Verified Commit cc403544 authored by Giovannoni Laurent's avatar Giovannoni Laurent
Browse files

init doc

parent 21558f38
FileImport
===========================
Le module FileImport permet d’importer des fichiers depuis un répertoire d’entrée.
Il peut par exemple être utilisé en sortie de numérisation ou d’un flux éditique.
## Paramétrage général du module
Depuis le fichier de paramétrage général : **./config/Capture.xml**.
<step name="ImportFiles" module='FileImport' function="ImportFiles">
<input name="Directory">/opt/maarch/MaarchCapture/files/TEST_IMPORT/</input>
<input name="Target">Document</input>
<input name="Action">none</input>
<input name="MoveDirectory">/opt/maarch/MaarchCapture/files/TEST_IMPORT/backup/</input>
<input name="Recursive">0</input>
<input name="CreateFolders">0</input>
<input name="Extensions">PDF JPEG PNG TIFF</input>
</step>
La déclaration du module comporte les attributs suivants :
* **Directory** chemin répertoire d’entrée à scanner.
* **Target** nœud d’entrée du fichier de traitement du batch. Prend Document ou Attachment. Détermine si le flux capturé est un document principal ou une pièce jointe.
* **Action** prend none, move ou delete. none aucune action, move permet de déplacer le fichier traité dans un autre répertoire, delete permet de le supprimer du répertoire d’entrée après son traitement.
* **MoveDirectory** utile uniquement si l’action move est déclarée. Déplace le fichier dans le répertoire indique ici.
* **Recursive** détermine s’il faut traiter de façon récursive le répertoire d’entrée déclaré. Descendre dans les sous répertoires. Prend 0 pour false et 1 pour true.
* **CreateFolders** permet de récréer dans le fichier de traitement du batch l’arborescence du répertoire d’entrée. Utile si Recursive=1. Prend 0 pour false et 1 pour true.
* **Extensions** on liste ici les extensions de fichiers autorisées à être capturées. Il faut séparer les extensions par un espace.
## Focus sur la détection de la complétude de fichiers
Le module FileImport intègre sans paramétrage complémentaire une fonctionnalité permettant de contrôler si les fichiers en entrée sont complets avant d’être traités par MaarchCapture.
Ce système est notamment utile si les fichiers déposés dans le répertoire d’entrée du module FileImport sont en cours de copie et donc pas encore réellement déposés.
La fonction appelée est isCompleteFile.
C’est une fonction récursive qui parcourt le contenu du fichier et qui renvoie true lorsque le fichier est complet.
Si non elle se met en attente de sa complétude.
MaarchWSClient
===========================
MaarchWSClient est un module permettant de transférer dans MaarchCourrier les documents traités par MaarchCapture.
Il utilise les protocoles SOAP ou REST pour verser les documents via webservice.
## Paramétrage général du module
Depuis le fichier de paramétrage général : **./config/Capture.xml**.
<step name="SendToMaarch" module="MaarchWSClient" function="processBatch">
<input name="WS">MaarchRestWS</input>
<input name="Process">MaarchRestWSProcessFromMail</input>
<input name="CatchError">true</input>
<input name="configFile">MaarchWSClient_standard_sample.xml</input>
</step>
La déclaration du module comporte les attributs suivants :
* **WS** identifiant de la déclaration du frontal webservice utilisé dans le fichier configFile du module MaarchWSClient. Ex : pour le protocole REST nous avons dans le jeu de démo la déclaration du WS MaarchRestWS. Pour le protocole SOAP MaarchSoapWS.
* **Process** identifiant global des webservices à utiliser pour la communication avec l’application cible (dépendant de l’id WS utilisé). Ex : pour le protocole REST nous avons dans le jeu de démo la déclaration du process MaarchRestWSProcessFromMail. Pour le protocole SOAP MaarchSoapWSProcessFromMail.
* **CatchError** Flag pour indiquer si on doit lever une exception si une erreur de communication par webservice est détectée. Cela permet de ne pas bloquer tout le processus de versement dans l’application cible si une erreur est détectée. Prend true ou false comme valeur.
* **configFile**nom du fichier de configuration définissant les webservices pour communiquer avec l’application cible. Le nom du fichier défini doit se trouver dans le répertoire ./modules/MaarchWSClient/.
## Paramétrage particulier des webservices
Depuis le fichier de paramétrage de la boite mail à capturer : **./modules/MaarchWSClient/MaarchWSClient_standard_sample.xml**.
<?xml version="1.0" encoding="UTF-8"?>
<MaarchWSClient>
<!-- REST FRONTAL -->
<WS name="MaarchRestWS" type="REST" uri="http://superadmin:superadmin@127.0.0.1/MaarchCourrier/rest/" />
<!-- SOAP FRONTAL -->
<WS name="MaarchSoapWS" type="SOAP" uri="http://127.0.0.1/MaarchCourrier/ws_server.php?WSDL" SSL="false" cacheUse="0" >
<proxy>
<user>superadmin</user>
<pass>superadmin</pass>
<timeout>600</timeout>
</proxy>
</WS>
<!-- REST SAMPLES -->
<process name="MaarchRestWSProcessFromScan">
<loop xpath="/Batch/Documents/Document">
<call name="/res" method="POST">
<argument type="entity" name="encodedFile" eval="base64_encode(file_get_contents($Element-&gt;path))"/>
<argument type="entity" name="data">
<column>type_id</column>
<value>108</value>
<type>integer</type>
</argument>
<argument type="entity" name="data">
<column>doc_date</column>
<value metadata="doc_date" />
<type>date</type>
</argument>
<argument type="entity" name="data">
<column>custom_t10</column>
<value xvalue="./Metadata/fromaddress" />
<type>string</type>
</argument>
...
<argument type="entity" name="status">INIT</argument>
<argument type="entity" name="fileFormat" attribute="extension"/>
<return>
<resId metadata="resId" />
</return>
</call>
</loop>
</process>
<!-- SOAP SAMPLES -->
<process name="MaarchSoapWSProcessFromMail">
<loop xpath="Attachments/Attachment">
<call name="storeResource">
...
</call>
</loop>
</loop>
</process>
</MaarchWSClient>
#### Déclaration du frontal :
<!-- REST FRONTAL -->
<WS name="MaarchRestWS" type="REST" uri="http://superadmin:superadmin@127.0.0.1/MaarchCourrier/rest/" />
<!-- SOAP FRONTAL -->
<WS name="MaarchSoapWS" type="SOAP" uri="http://127.0.0.1/MaarchCourrier/ws_server.php?WSDL" SSL="false" cacheUse="0" >
<proxy>
<user>superadmin</user>
<pass>superadmin</pass>
<timeout>600</timeout>
</proxy>
</WS>
* **WS name** identifiant de la déclaration du frontal webservice utilisé dans le fichier de configuration générale Capture.xml. Ex : pour le protocole REST nous avons dans le jeu de démo la déclaration du WS MaarchRestWS. Pour le protocole SOAP MaarchSoapWS. Dans le cas d’un frontal REST il faut déclarer l’identifiant et le mot de passe d’accès à l’application dans l’uri.
* **WS type** type de webservice. peut prendre REST ou SOAP comme valeur.
* **WS uri** uri du frontal webservice de votre application cible.
* **WS SSL** flag permettant d’indiquer si le frontal de webservice utilise le protocole SSL. Prend true ou false comme valeur. Utile uniquement dans le cas d’un frontal SOAP.
* **WS proxy** dans le cas d’un frontal SOAP uniquement, il faut spécifier ici l’identifiant et le mot de passe d’accès à l’application.
#### Déclaration des webservices :
<process name="MaarchRestWSProcessFromScan">
<loop xpath="/Batch/Documents/Document">
<call name="/res" method="POST">
* **process name** identifiant global des webservices à utiliser pour la communication avec l’application cible (dépendant de l’id WS utilisé). Ex : pour le protocole REST nous avons dans le jeu de démo la déclaration du process MaarchRestWSProcessFromMail. Pour le protocole SOAP MaarchSoapWSProcessFromMail.
* **loop xpath** permet de naviguer dans le fichier xml de traitement du batch. Ceci permet au module MaarchWSClient de traiter par exemple la communication vers l’application cible de tous les documents capturés et/ou de leurs pièces jointes.
* **call name** désigne le webservice à contacter.
* **call method** dans le cas du protocole REST uniquement, précise la méthode HTTP à appliquer. Peut prendre GET, POST, UPDATE ou DELETE comme valeur. Cette liste de valeurs est également dépendante des possibilités du webservice contacté.
#### Passage des paramètres aux webservices :
<argument type="entity" name="encodedFile" eval="base64_encode(file_get_contents($Element-&gt;path))"/>
<argument type="entity" name="fileFormat" attribute="extension"/>
* **argument name** nom de l’argument.
* **argument eval** expression XML permettant de faire appel à des fonctions de transformation des valeurs des paramètres passés.
* **argument type** uniquement dans le cas d’un webservice de type REST. Définit si le paramètre est passé dans le body ou l’entête HTTP de l’appel au webservice. Peut prendre comme valeur entity (body) ou query (entête). Cette liste de valeurs est également dépendante des possibilités du webservice contacté.
* **argument attribute** permet d’aller récupérer dans le fichier XML de traitement du batch un attribut du document ou de la pièce jointe capturée.
#### Passage des valeurs des paramètres :
<argument type="entity" name="data">
<column>doc_date</column>
<value metadata="doc_date" />
<type>date</type>
</argument>
<argument type="entity" name="data">
<column>custom_t10</column>
<value xvalue="./Metadata/fromaddress" />
<type>string</type>
</argument>
* **value metadata** permet d’aller récupérer une valeur positionnée par un autre module (ex : MailCapture) dans le fichier XML de traitement du batch du document ou de la pièce jointe capturée.
* **value xvalue** permet d’aller récupérer via une recherche XML une valeur positionnée par un autre module (ex : MailCapture) dans le fichier XML de traitement du batch du document ou de la pièce jointe capturée.
#### Paramétrage du retour du web service :
<return>
<resId metadata="resId" />
</return>
* **return** définit ce que va renvoyer le webservice contacté. Les valeurs retournées par le webservice seront alors inscrites dans le fichier XML de traitement du batch.
FileImport
===========================
MailCapture est un module de MaarchCapture permettant de récupérer les courriels d'un dossier de votre boite mail via le protocole IMAP.
## Paramétrage général du module
Depuis le fichier de paramétrage général : **./config/Capture.xml**.
<step function="CaptureMails" module="MailCapture" name="CAPTURE_MAIL_1">
<input name="account">account_1</input>
<input name="Action">none</input>
<input name="configFile">MailCapture_standard_sample.xml</input>
<input name="folder">maarch/purge</input>
<input name="attachmentsOutputDir"></input>
<input name="addHeaderInMailContent">false</input>
<input name="folderError">incidents</input>
</step>
La déclaration du module comporte les attributs suivants :
* **account** identifiant du compte utilisé dans le fichier configFile du module MailCapture.
* **action** prend none, move ou delete. none aucune action, move permet de déplacer le courriel traité dans un autre répertoire, delete permet de le supprimer du répertoire d’entrée après son traitement.
* **configFile** nom du fichier de configuration définissant les règles d’accès à la boite mail via IMAP ainsi que les métadonnées récupérées des courriels. Le nom du fichier défini doit se trouver dans le répertoire ./modules/MailCapture/.
* **folder** utile uniquement si l’action move est déclarée. Déplace le courriel dans le répertoire indiqué ici.
* **attachmentsOutputDir** déplace les pièces jointes des courriels capturés dans ce répertoire.
* **addHeaderInMailContent** flag déterminant si l’on ajoute un entête aux courriels capturés (dans le fichier HTML). Peut prendre comme valeur true ou false. Si activé, on rajoute dans le fichier HTML du mail les entêtes **reçu le** et **envoyé par**.
* **folderError** dossier du compte IMAP vers lequel on déplace les courriels en cas d’erreur de capture.
## Paramétrage particulier de la boite mail
Depuis le fichier de paramétrage de la boite mail à capturer : **./modules/MailCapture/MailCapture_standard_sample.xml**.
<?xml version="1.0" encoding="UTF-8"?>
<MailCapture>
<formatters>
<formatter name="date" script="scripts/formatters.php" func="format_mail_date"/>
</formatters>
<accounts>
<account name="account_1" >
<mailbox>{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX</mailbox>
<username>testmail@gmail.com</username>
<password>********</password>
</account>
</accounts>
<messagerules>
<messagerule name="from_maarch" info="fromaddress" action="delete">false</messagerule>
</messagerules>
<messageoutputs >
<messageoutput name="doc_date" info="date" formatter="date"/>
<messageoutput name="type_id">108</messageoutput>
<messageoutput name="destination">COU</messageoutput>
<messageoutput name="subject" info="subject" />
<messageoutput name="fromaddress" info="fromaddress"/>
<messageoutput name="frompersonal" info="from[0]/personal" />
<messageoutput name="toaddress" info="toaddress" />
<messageoutput name="xpriority" info="xpriority" />
<messageoutput name="message_id" info="message_id" />
<messageoutput name="ccaddress" info="ccaddress" />
</messageoutputs>
<attachmentrules>
        <attachmentrule name="extFilter" info="extension" op="notin">pdf</attachmentrule>
        <attachmentrule name="mimetypeFilter" info="mimetype" op="notin">application/pdf</attachmentrule>
</attachmentrules>
<attachmentoutputs mode="attachment">
<attachmentoutput name="filename" info="dparameters[filename]"/>
<attachmentoutput name="description" info="description"/>
</attachmentoutputs>
</MailCapture>
La déclaration de la boite mail à capturer comporte les attributs suivants :
* **account name** identifiant du compte utilisé dans le fichier Capture.xml.
* **mailbox** l’adresse du serveur de messagerie, attention à bien respecter la syntaxe {adresseserver:port/modeacces}repertoire.
* **username** compte de la boite mail à capturer.
* **password** mot de passe du compte de la boite mail à capturer
* **messagerules** règle de traitement du courriel.
* **messageoutputs** paramétrage des métadonnées capturées dans le courriel. Utile pour le versement dans MaarchCourrier par la suite. Ces métadonnées sont stockées dans le fichier général de traitement du batch.
* **attachmentrules** permet de filtrer les pièces jointes capturées selon le critère défini. Dans l’exemple on filtre à la fois sur l’extension du fichier et son type mime. Dans l’exemple on n’autorise que les pdf à être capturés. Pour ajouter d’autres formats, il faut ajouter un espace entre chaque format, ex : **pdf jpeg** pour les extensions **application/pdf application/msword** pour les types mimes.
* **attachmentoutputs** permet de préparer le format de sortie des fichiers correspondants aux pièces jointes des courriels.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment