Vous êtes sur la page 1sur 39

Dhatim (Bouygues Telecom)

Projet Dhatim

Intitulé Spécifications du procédé de Fabrication et de Réfection

Identification DO_DEFP_01-Mada

Rédigé par VALE/RNHP

Validé par

Historique du document

Version Date Auteur Description sommaire des modifications

1.00 28/09/16 BRAZ Spécifications des évolutions à apporter à UNICAPTURE

1.01 24/05/2017 SRAK Modification paramétrage GPAO après FAO

2.00 25/08/2017 VALE Mise à jour du fonctionnement après FAO et spec outil
cible

2.01 31/08/2017 RNHP Ajout des détails techniques en fonction des


spécifications fonctionnelles

2.02 01/09/2017 VALE Rajout de détails

2.03 01/09/2017 RNHP Ajout de précisions dans les détails techniques

2.04 12/09/17 RNHP Fusion des nouvelles directives de VALE et de TPAL

2.05 13/09/17 NJAR Relecture et correction

1
2.06 15/09/17 RNHP - Ajout détails champs dans la section BAT Injection

- Ajout précisions sur la mise en place d’une recherche


référentielle sur le nom de fournisseur en cas d’échec
de l’AutoDocIndexation

2.07 22/09/17 RNHP Ajout précision des sur la partie modélisation des objets
manipulés

2.09 25/09/17 NJAR Précision sur les modèles

2.10 27/09/17 RNHP Adaptation modèle encours pour accueil un modèle


Vertical Facture

2.10.1 06/10/17 RNHP Ajout précision sur la modélisation et éclatement des


tâches automatiques et manuelles

2.10.2 10/10/2017 VALE/RN Correction


HP

3.0.0 12/10/2017 NJAR/M Remise en forme


HRA
Reformulation

Précision

3.0.1 16/10/2017 RNHP/NJ Ajout des descriptions techniques à la suite des


AR descriptions fonctionnelles

Ajout de toutes les propriétés et objets manipulés

Ajout description allocation dynamique des WI

3.0.2 31/10/2017 RNHP/V Modification plan : remplacement plan par tâche


ALE manuelle et automatique en plan par workflow

3.0.3 06/11/2017 RNHP/TP Implémentation des remarques FCHA & TPAL


AL

2
Spécifications du procédé de Fabrication et de Réfection

Sommaire
______

1 INTRODUCTION....................................................................................................................5

2 SPÉCIFICATION MACROSCOPIQUE DU PROCÉDÉ DE FABRICATION...................................................5

2.1 DESCRIPTION DE LA PRESTATION À RÉALISER......................................................................................5


2.2 DESCRIPTION DES DONNÉES D’ENTRÉE (CLIENT)................................................................................5
2.3 PRÉCISIONS CONCERNANT LA GESTION DES ERREURS DE STRUCTURATION.....................................................6
3 SPÉCIFICATIONS DÉTAILLÉES....................................................................................................6

3.1 CMIS..............................................................................................................................6
3.2 MODÉLISATION DES OBJETS MANIPULÉS.........................................................................................6
3.2.1 Objets process...........................................................................................................6
3.2.2 Objets documentaires................................................................................................7
3.2.3 Objets WorkPattern..................................................................................................10
3.3 LOGIGRAMME....................................................................................................................12
3.4 DESCRIPTION DE LA CHAÎNE DE TRAITEMENT..................................................................................13
3.4.1 Acquisition...............................................................................................................13
3.4.2 Pré-traitement.........................................................................................................16
3.4.3 Traitement..............................................................................................................19
3.4.4 Post Traitement.......................................................................................................33
3.5 MESURE QUALITÉ................................................................................................................36
4 SPÉCIFICATION DES OUTILS DE SUIVI.......................................................................................37

5 SPÉCIFICATION DES BATCHS À SURVEILLER...............................................................................37

6 PARAMÉTRAGE GPAO V2 (À COMPLÉTER ULTÉRIEUREMENT).......................................................39

6.1 PROJET..........................................................................................................................39
6.2 OPÉRATIONS...................................................................................................................39
6.3 SUIVI PERFORMANCE & OBJECTIFS CIBLES...............................................................................40
7 Volumétrie et délai de traitement............................................................................................41

3
1 Introduction
Ce document constitue les spécifications fonctionnelles et techniques pour le traitement des factures
pour Dhatim. Il décrit techniquement et fonctionnellement tous les procédés à mettre en place pour le
bon déroulement des traitements de ces factures.

2 Spécification macroscopique du procédé de fabrication

2.1 Description de la prestation à réaliser

La finalité de ces traitements consiste à extraire des factures les données d’entête et les données
contenues dans les lignes de détail des factures fournisseur de Dhatim.

Le processus de traitement se fait en plusieurs phases successives :


L’acquisition, issue :
 De fichiers PDF transmis par le client et classés par fournisseur
Le découpage :
L’extraction :
 Automatique via l’OCR et d’éventuels modèles
Le contrôle qualité :
 Automatique lors de la saisie
 Visuel par échantillonnage à l’issue de l’extraction

2.2 Description des données d’entrée (Client)

Les caractéristiques des factures déposées par Dhatim devront être :


 En tapuscrit
 En langue française
 en noir et blanc
 au format PDF
 d’une résolution minimum de 200 dpi
La majorité des documents déposés devront être mono TVA et de type « facture ».
Les seuils de tolérance fixés sur ces deux points sont les suivants :
 05 lignes par facture en moyenne
 moins de 3% de facture multi TVA
 moins de 5% de documents autres que des factures
Des règles de nommage de fichiers, de documents et de zips sont à convenir avec le client :
 Pas de caractères spéciaux, tiret, espace
 Noms homogènes
 …

4
2.3 Précisions concernant la gestion des erreurs de structuration

Les fichiers transmis par le client contiennent théoriquement une seule facture par fichier. La
prestation vendue ne contient donc pas de gestion de la structuration. Cependant, le client a évoqué à
plusieurs reprises le fait qu’il livre parfois des fichiers contenant plusieurs factures, ce qui nécessiterait
une opération de correction de la structuration. Afin de se prémunir contre des modifications
profondes de la chaine en cas de décision commerciale offrant cette possibilité, chaque fichier sera
inclus dans son propre dossier d’injection. Le processus pointera, non pas sur le dossier comportant
l’ensemble des factures injectées (lot), mais sur le sous dossier ne contenant qu’une seule facture
Cette approche offre deux avantages :
- La livraison se fait à la facture plutôt qu’au dossier d’injection, ce qui rend les livraisons plus fluides.
- S’il s’avère nécessaire de mettre en place de la correction de structuration, il sera possible de limiter
cette étape à la facture concernée, sans impact pour le reste du lot.

3 Spécifications détaillées

3.1 CMIS

Url de test: http://mada.numen.mg/dathim_test_vm/cmis/browser.

3.2 Modélisation des objets manipulés

3.2.1 Objets process

3.2.1.1 acq:acquisitionProcess

Identifiant acq:acquisitionProcess dérivé de « pi:acquisitionProcess» (basé sur


cmis:item)
Propriétés Date debut SLA pour smartProd, pour ce projet la date de téléchargement
du lot (zip)
sp:dateDebutSLA (datetime, single, facultatif)

Date de réception pour smartProd, pour ce projet la date de


téléchargement du lot (zip)
sp:dateReception (datetime, single, facultatif)

Date de scan pour smartProd, pour ce projet la date de téléchargement du


lot (zip)
sp:dateScan (datetime, single, facultatif)

Date Injection pour smartProd, pour ce projet la date d’injection du lot


(zip)
sp:dateInjection (datetime, single, facultatif)

3.2.1.2 pi:acquisitionReworkProcess
Identifiant pi:acquisitionReworkProcess dérivé de « nvlt:baseProcessInstance » (basé

5
sur « cmis:item »)
Propriétés

3.2.2 Objets documentaires

3.2.2.1 inv:injectionBatch
Identifiant inv:injectionBatch dérivé de « nvlt:batch » (basé sur « cmis:folder »)
Propriétés

3.2.2.2 acq:acquisitionBatch
Identifiant acq:acquisitionBatch dérivé de « nvlt:batch » (basé sur cmis:folder)
Propriétés

3.2.2.3 inv:verticalInvoice
Identifiant inv:verticalInvoice dérivé de « nvlt:invoice » (basé sur « cmis:document »)
Propriétés

3.2.2.3.1 acq:verticalInvoice
Identifiant acq:verticalInvoice dérivé de « inv:verticalInvoice » (basé sur
« cmis:document »)
Propriétés NUM FACTURE 1 (rempli par picking)
inv:id (string, single, facultatif)

NUM FACTURE 2 (saisie manuellement)


inv:id2 (string, single, facultatif)

NOM FOURNISSEUR
inv:supplierName (string, single, facultatif)

TYPE FACTURE
inv:invoiceType (string, single, facultatif)

SIREN
inv:supplierNationalId (string, single, facultatif)

SIRET
inv: supplierSiteId (string, single, facultatif)

TVA INTRACOM
inv:supplierFederalId (string, single, facultatif)

DATE FACTURE

6
inv:invoiceDate (datetime,single,facultatif)

NUM COMMANDE / NUM ENGAGEMENT


inv:purchaseOrderID (string, single, facultatif)

MT HORS TVA
inv:taxExclusiveAmount (string, single, facultatif)

MT REDUCTION
inv:discountAmount (string, single, facultatif)

Liste des champs qui ont des warnings sous forme de tableau json
acq:fieldsInWarning (string, single, facultatif)

Date début de la prestation


acq:debutPeriode (datetime, single, facultatif)

Date fin de la prestation


acq:finPeriode (datetime, single, facultatif)

Date prestation
acq:datePrestation (datetime, multi, facultatif)

Object de la facture
acq:invoiceObject (string, single, facultatif)

Pourcentage TVA
acq:TVAmountPercent (decimal, single, facultatif)

Pourcentage de remise
acq: discountAmoutPercent (decimal, single, facultatif)

MT TVA
inv:VATAmount (string, single, facultatif)

MT AUTRES
inv:otherTaxAmount (string, single, facultatif)

Acompte
acq:acompte (decimal, single, facultatif)

7
Solde Anterieur
acq:soldeAnterieur (decimal, single, facultatif)

MT TTC
inv:taxInclusiveAmount (string, single, facultatif)

MONTANT A PAYER
inv:paidAmount (string, single, facultatif)

COMMENTAIRES
inv:comment (string, single, facultatif)

Nom du fornisseur depuis le répertoire source


acq:supplierNameSource (string, single, facultatif)

3.2.2.4 inv:injectionPage
Identifiant inv:injectionPage dérivé de « nvlt:page » (basé sur « cmis:document »)
Propriétés

3.2.2.5 inv:lineItem
Identifiant inv:lineItem dérivé de « cmis:item » (basé sur « cmis:item »)
Propriétés LIBELLE
inv:lineLabel (string, single, facultatif)

QUANTITE
inv:lineQuantity (decimal, single, facultatif)

PRIX UNITAIRE
inv:lineUnitPrice (decimal, single, facultatif)

MONTANT HT
inv:lineTaxExclusiveAmount (decimal, single, facultatif)

REMISE %
inv:lineDiscountPercent (decimal, single, facultatif)

MONTANT REMISE
inv:lineDiscountAmount (decimal, single, facultatif)

TVA en %
inv:lineVATRate (decimal, single, facultatif)

8
MONTANT TVA
inv:lineVATAmount (decimal, single, facultatif)

MONTANT TTC
inv:lineTaxExclusiveAmount (decimal, single, facultatif)

3.2.3 Objets WorkPattern

3.2.3.1 Tâches automatiques

3.2.3.1.1 acq:autoBatchPackRobot

Identifiant acq:autoBatchPackRobot dérivé de


« nvlt:baseAutomaticWorkItem» (basé sur
« cmis:item »)
Propriétés Liste des process instance id de chaque
document : acq:lstProcessInstanceId
(type string, cardinalité multi, facultatif)

3.2.3.1.2 acq:autoBatchInjection

Identifiant acq:autoBatchInjection dérivé de


« inv:autoBatchInjection » (basé sur
« cmis:item »)

Propriétés Pour le changement de granularité : acq:batchIds


(type id, cardinalité multi, obligatoire)
Liste des process instance id de chaque
document : acq:processInstanceIds
(type string, cardinalité multi, facultatif)

3.2.3.1.3 acq:autoBatchRecognition

Identifiant acq:autoBatchRecognition dérivé de


« inv:autoBatchRecognition» (basé sur « cmis:item »)
Propriétés Pour la liste des pages en entrée pour le batch :
mada:lstObjectId (type id, multi, facultatif)

3.2.3.1.4 inv:autoDocIndexation

9
Identifiant inv:autoBatchDocIndexation dérivé de
« nvlt:baseAutomaticWorkItem » (basé sur « cmis:item »)
Propriétés

3.2.3.1.5 wi:autoBatchApply

Identifiant wi:autoBatchApply dérivé de


« nvlt:baseAutomaticWorkItem» (basé sur
« cmis:item »)
Propriétés

3.2.3.1.6 inv:autoBatchControl

Identifiant inv:autoBatchControl dérivé de


« nvlt:baseAutomaticWorkItem » (basé sur
« cmis:item »)
Propriétés

3.2.3.1.7 inv:autoBatchPackaging

Identifiant inv:autoBatchAutoBatchPackaging dérivé de


« nvlt:baseAutomaticWorkItem» (basé sur
« cmis:item »)
Propriétés

3.2.3.1.8 inv:autoBatchDelivery

Type de base pour les objets « item »


Identifiant inv:autoBatchDelivery dérivé de
« nvlt:baseAutomaticWorkItem» basé sur
« cmis:item »
Propriétés

3.2.3.2

10
3.2.3.3 Tâches manuelles

3.2.3.3.1 inv:manualDocIndexation

Identifiant inv:manualDocIndexation dérivé de


« nvlt:baseManualWorkItem » (basé sur « cmis:item »)
Propriétés

3.2.3.3.2 acq:manualDocCorrectionIndexation

Identifiant acq:manualDocCorrectionIndexation dérivé de


« nvlt:baseManualWorkItem» (basé sur
« cmis:item »)
Propriétés

3.2.3.3.3 mada:workBatch
Identifiant mada:workBatch derive de « nvlt:workBatch » (basé sur « cmis:item »)
Propriétés FLAG pour marquer qu’un WB est injecté dans la GPAO
mada:isInjectedGPAO (boolean, single, facultatif)

3.3 Logigramme

Avec notre moteur de workflow qui est Activiti, on a retranscrit globalement la chaine de production
dans ce diagramme avec comme point de démarrage AutoBatchRecognition.

L’entrée dans la chaine linéaire est un batch (inv:acquistionBatch). On ne va plus tout envoyer en
acq:manualDocCorrectionIndexation. Seules les factures ayant des warnings bloquant seront
envoyées en acq:manualDocCorrectionIndexation. Les étapes acq:autoBatchPackRobot et
acq:autoBatchInjection sont hors process.

11
3.4 Description de la chaîne de traitement

3.4.1 Acquisition

3.4.1.1 acq:autoBatchPackRobot

3.4.1.1.1 Description fonctionnelle


En entrée, les fichiers PDF sont déposés par Dhatim sous forme de ZIP sur un serveur sftp Numen à
Chambray-les-Tours avec des répertoires de fournisseurs contenant n facture(s) chacun.

Le responsable client de la prestation dépose les lots à traiter sur le FTP Numen dans
le dossier correspondant au client et envoie par la suite un mail à Numen pour
indiquer les références des lots déposés et le nombre total de documents du lot
La récupération du/des fichier(s) ZIP sur FTP se fait automatiquement suivi d’un dépôt
d’un fichier accusant la réception de Numen, intitulé "data du jour"_AR.txt qui
indique la liste des lots et le nombre de documents récupérés. Comme soulevé
précédemment, l’outil à utiliser est PACKROBOT. Pour le fichier "data du
jour"_AR.txt, on prévoit un fichier plat séparé par un « ; » avec comme champs le
nom du fichier zip, la date du jour et le nom du fichier PDF.
Un mail est généré automatiquement vers le responsable de production Numen
informant sur les fichiers déposés en local et les documents déjà présents dans la
base (doublons) avec la date de dernière réception.
Un script batch est prévu après pour effectuer l’injection de ces fichiers dans la base
CMIS. Pendant l’injection, un contrôle d’unicité du document sera effectué pour
gérer les doublons. On propose de logger ces doublons dans un fichier txt, assez
similaire au fichier _AR.txt.

3.4.1.1.2 Description technique

Entrée :
Fichier XML de paramétrage contenant principalement
 FTP/folder/login
 HotFolder de sortie

Traitements:
Auto-création d’un workItem AVAILABLE de type acq:autoBatchpackRobot pour
chaque ZIP, le cmis:name sera le nom du ZIP

12
Téléchargement des fichiers ZIP en local (Le téléchargement ne démarrera que si un
fichier .ok de même nom que le Zip est présent)
Génération du fichier plat d’accusé ACK de réception à chaque lot de fichier téléchargé
Upload des ACK sur le FTP local
Mettre à COMPLETED acq:autoBatchpackRobot
Note1 : La propriété acq:lstProcessInstanceId du workItem acq:autoBatchPackRobot,
qui prendra les processId des zips téléchargés, ne sera renseignée qu’à l’étape
suivante.
Note2 : autoBatchPackRobot est hors processus
Sortie :
Fichiers ZIP téléchargés dans un hotFolder

3.4.1.2 acq:autoBatchInjection
Entrée :

Un hotFolder qui contenant les zips, lu dans un paramètre de configuration


Un zip sera pris en compte s’il n’a pas d’extension (.extrait, .injecte)
Traitements :

Décompression des zips


Génération d’un descripteur de job pageInject pour créer et valoriser les propriétés
des objets suivants :
 inv:injectionBatch :
o cmis:name = nom du zip
o nvlt:injectionStatus qui est le status de l’injection du zip

 acq:verticalInvoice:
o cmis:name : le nom du fichier pdf

 inv:injectionPage :
o cmis:name qui sera le nom du fichier pdf suivi d’un numéro à 3 caractères qui contiendra
le l’indice de la page dans le document pdf
o ContentStream = le pdf de la page correspondante (issus de pageInject)

Note1 : On ne met dans le descripteur XML que les pdf qui sont réputés uniques
Note2 : Pour contrôler l’unicité d’un pdf, on a recours à deux méthodes :
- on fait un select cmis:name dans la base. Si ceci retourne vide alors c’est unique. - Si dans le
cas où la requête select cmis:name retourne un résultat, on regardera la signature du fichier pdf pour
savoir si usuellement on a oui ou non un doublon.
Après le contrôle, si il s’est bien avéré qu’on a bien un doublon de facture, le nom de la facture
sera mis dans un fichier plat à envoyer au client contenant la liste des factures en doublons séparée
par un « ; ».

La durée de l’historique sur laquelle on contrôle les doublons est égale à la durée de rétention
paramétrée pour la chaine d’acquisition (généralement 15 jours).

13
Auto-création d’un workItem AVAILABLE de type wi:autoBatchInjection qui pointe
vers le lot inv:injectionBatch

Démarrer Activiti.
 un process acq:acquisitionProcess par acq:acquisitionBatch
 Valorisation des propriétés suivantes acq:acquisitionProcess :
o sp:dateDebutSLA
o sp:dateReception
o sp:dateScan
o sp:dateInjection

Sortie :

Cette étape créera les objets :


 acq:verticalInvoice
 inv:injectionGroup
 inv:injectionPage

Valoriser les propriétés acq:lstProcessInstanceId du workitem wi:autoBatchPackRobot


avec les processInstanceId créés pour les groups des documents d’un zip. Ceci
dans le but de lier un WI packrobot avec les processInstance ID des groupes des
documents.

Valoriser les propriétés acq:supplierNameSource de l’objet acq:verticalInvoice avec le


nom du répertoire fournisseur.

Envoi d’un mail au responsable de production Numen pour notifier la disponibilité d’un
nouveau lot et lister les éventuels doublons

Au FinishWorkItem, demarrage de activity

Arborescence après injection :


Nom_ZIP (batch d’injection)
Doc1 (batch d’acquisition)
Doc1
Page11
Page12
Doc 2 (batch d’acquisition)
Doc2 (avec properties nom du fournisseur (repertoire))
Page21
.. Doc N (batch d’acquisition)
DocN
PageN

14
3.4.2 Pré-traitement

3.4.2.1 wi:autoBatchRecognition
Entrée :
Un WI wi:autoBatchRecognition AVAILABLE pointera vers l’objet inv:acquisitionBatch.

Traitements :

Génération renditions :
 nvlt:webThumnail
 nvlt:corrected
 nvlt:webImage
 nvlt:xmlFinereader

Le Batch fait appel à une commande CLI de la forme :

CommandLineInterface.exe -mpm Sequential -fm -rl French -ido -lpp


DocumentConversion_Accuracy -aetem -aeate -adb -adp -if %WORKDIR%/
%BASE%.pdf -pacm Pdfa_3u -pmm Disable -pfr 200 -prt Exact -pbpf CCITT4 -pjq
75 -ptem ImageOnText -pel -pfc ForceToBw -pfv Version17 -of %WORKDIR%\
%BASE%.pdfa -f xml -xcf -xeca -xdwnc -of %WORKDIR%\%BASE%.xml

-mpm Sequential pour avoir un multiprocessing sequentiel


-lpp pour chager le profil DocumentConversion_Accuracy
-aetem pour avoir un mode d’extraction texte
-if pour spécifier le fichier en entrée-pacm pour avoir le mode Pdfa_3a
-pfr pour avoir une resolution de 200 dpi
-pfc ForceToBw pour avoir en sortie un pdf en noir et blanc
-pjq 75 pour avoir une qualité d’image de 75%

Note1 : pas de rendition nvlt:pdf

Sortie :

Renditions

3.4.2.2 wi:autoDocIndexation

3.4.2.2.1 Descriptions fonctionnelles


La détermination du fournisseur sera effectuée à partir de la recherche automatique d’un ou plusieurs
identifiant sur le document océrisé :
N° SIREN
N° SIRET
N° TVA intracommunautaire
La structure des différents numéros à rechercher est la suivante :

15
Numéro SIREN :
La structure du N° est la suivante :
Trois séries de trois caractères numériques
Exemple : 404 833 048
Numéro TVA intracommunautaire :
Par exemple, pour la France, la structure du N° est la suivante :
Code pays : FR pour la France
Clef sur 2 caractères Alphanumériques
N° siren sur 9 caractères numériques
Exemple : FR 83 404 833 048
Code pays : FR
Clef sur 2 : 83
N° siren : 404 833 048
Numéro SIRET :
La structure du N° est la suivante :
N° siren : Trois séries de trois caractères numériques
NIC : Un nombre sur 5 caractères numériques
Exemple : 404 833 048 00022
N° siren : 404 833 048
NIC : 00022

3.4.2.2.2 Descriptions techniques

1.1.1.1.1.1 Entrée
Un wi de type wi:autoDocIndexation en statut AVAILABLE.

1.1.1.1.1.2 Traitement
a- Valorisation automatique TVA_INTRA :
Ce champ est obligatoire
En prérequis, on ne recherche que les TVA français pour 2 raisons :
Ces TVA_INTRA représentent à peu près 98% des factures
On peut faire le contrôle via la base SIREX

Description de la recherche
Recherche TVA_INTRA via regexp dans le flux OCR ARegExp("((FR[[:space:]]?\\d{2}
[[:space:]]?\\d{3}[[:punct:][:space:]]{0,2}[[:space:]]?\\d{3}[[:punct:][:space:]]
{0,2}[[:space:]]?\\d{3})){#3}", Map("max_cost", 0));
 Si trouvé alors on a un canditat_tva_intra. On essaie de valider par clé le TVA_INTRA.
o Si c’est valide alors on extrait le SIREN. On essaie de le trouver dans la base SIREX.
 Si cela retourne un seul résultat, on récupère le nom du fournisseur et le code
postal, le SIRET. On essaie de matcher le nom fournisseur avec la propriété
acq:supplierNameSource du document et/ou de rechercher dans le flux OCR le
code postal/SIRET. Si match alors OK.

16
 Si cela retourne plusieurs résultat, on essaie de matcher les 3 propriétés sur le
flux OCR. Si une ligne match alors OK

 Si on ne trouve pas de tva_intra alors on essaie de trouver le SIREN via regexp :


ARegExp("((\\d{3}[[:punct:][:space:]]{0,2}){3}){#2}", Map("max_cost", 4));
o Si trouvé et valide. On essaie de le trouver dans la base SIREX.
 Si cela retourne un seul résultat, on récupère le nom du fournisseur et le code
postal, le SIRET. On essaie de matcher le nom fournisseur avec la propriété
acq:supplierNameSource du document et/ou de rechercher dans le flux OCR le
code postal/SIRET. Si match alors, on refabrique le TVA_INTRA à partir du
SIREN OK.
 Si cela retourne plusieurs résultat, on essaie de matcher les 3 propriétés sur le
flux OCR. Si une ligne match alors on refabrique le TVA_INTRA à partir du
SIREN OK

 Si on ne trouve pas le SIREN alors on essaie de trouver le SIRET via regexp : ARegExp("(?i)
((\\d{3}[[:punct:][:space:]]{0,2}){4}(\\d{2})){#3}", Map("max_cost", 3));
o Si trouvé et valide. On essaie de le trouver dans la base SIREX.
 Si cela retourne un seul résultat, on récupère le nom du fournisseur et le code
postal. On essaie de matcher le nom fournisseur avec la propriété
acq:supplierNameSource du document et/ou de rechercher dans le flux OCR le
code postal. Si match alors, on refabrique le TVA_INTRA à partir du SIRET
OK.
 Si cela retourne plusieurs résultat, on essaie de matcher les 3 propriétés sur le
flux OCR. Si une ligne match alors on refabrique le TVA_INTRA à partir du
SIRET OK

Si OK, on valorise dans le temporaryData les champs suivants :


inv:SupplierSiteID => SIRET
inv:SupplierNationalID => SIREN
inv:SupplierFederalID => TVAINTRA

Si KO, on ne rapatrie rien

b- Intégration de modèle flexible


La modélisation sera effectuée sur l’entête et pied de page de la facture.
Description à compléter
Liste des factures à modèliser à donner

3.4.2.3 Lotissement dynamique de lot WB

Entrée :
Paramétrage SmartProd: Nb de WI maximum / WB.
Identifiant (login) d’un opérateur.
Type d’opération
Règle de regroupement

17
Traitements :
Le choix de la meilleure façon de faire est en cours, il faut faire des mesures entre les deux (côté
serveur via une procédure stockée ou côté client) mais le principe reste la même.
1/ sélection des WI :
- available et non-locked
- de type de l’opération en entrée
- respectant la règle de regroupement
- avec un limit nb_wi_max * 10
- avec orderBy nvlt:priority, cmis:objectId
2/ prendre aléatoirement nb_wi_max WI parmi les résultats de 1/. Si on n’a pas le nb requis, on prend
ce qu’il en reste.
3/ les verrouiller à l’opérateur en entrée
4/ création d’un item WB
5/ affectation des WI au WB via le nvlt:workItemIds
6/ retourner l’id du WB créé pour traitement à l’opérateur.

Sortie :
Un WB AVAILABLE avec une liste de WI verrouiller par l’opérateur en entrée

3.4.3 Traitement

3.4.3.1 wi:manualDocIndexation

3.4.3.1.1 Description fonctionnelle

1.1.1.1.1.3 Champs à saisir


Tous les champs sont obligatoires. Si un champ autre que les montants n’est pas renseigné sur la facture, saisir
les caractères **. Pour les champs indiquant des montants, saisir 0 s’il n’est pas renseigné sur la facture. Pour
les champs date et TVA Intracomm, s’ils sont absents de la facture, les laisser vides.

La liste des champs à faire apparaître sur l’application est donnée par le tableau suivant, selon leur ordre
d’apparition. Cette liste représente également la désignation de chaque champ à faire apparaître en en-tête du
fichier CSV généré avec le format de sortie de la donnée. L’ergonomie de l’application pour améliorer la saisie
est à considérer à partir de la taille moyenne des champs. Des consignes d’extraction ainsi que les contrôles par
champ et inter-champ y sont indiqués.

Un résultat négatif de ces contrôles doit générer un WARNING non bloquant mais qui nécessite une validation
de l’opérateur de saisie.

Important :

Pour les documents de nature « NT » les autres champs ne doivent être saisis. Dans le fichier csv
résultat du traitement du lot, il faudra uniquement référencer pour ces documents :

18
 Le nom du fichier
 La nature du document = « NT »

Pour les documents des autres natures, il faudra saisir toutes ou parties des autres champs.

L’indexation du numéro facture en mode double saisie compare se fait à l’étape d’indexation même et non à
la correction comme prévu initialement.
L’indexation 1 du numéro facture se fait en mode picking uniquement. Le champ ne peut ni être copier ni être
coller.
Lorsque l’opérateur quitte ce champ et passe à l’indexation 2 du numéro facture, le précédent champ est
masqué.
Sur ce deuxième champ, le mode d’indexation est uniquement de la saisie. Le « copier-coller » n’est
également pas autorisé sur ce champ
Au moment de la validation du document, s’il y a un écart entre ces deux champs de numéro facture, un
warning s’affichent et le masque du 01er champ s’enlève pour voir l’écart.
L’opérateur procède par la suite à la modification des 02 champs par la saisie.

En-tête et pied de page :

Ordre Désignation Format de sortie Consignes Contrôles Warning Taille champ à


de sur CSV bloquant afficher
colonne (Oui/Non) (ergonomie IHM)
dans
CSV
1 nom_fichier texte Ne pas oublier
l’extension du fichier

2 nature_fichie texte (1,2 ou 3F=Facture Si type NT ou PF:Oui si typeMenu déroulant


r caractères) PF= fichier contenantaucun champ ne doitde
plusieurs factures.être à renseigner,document
ANF=Annulation del’opérateur peutest PF ou
facture valider le document etNT
A=Avoir passer au suivant.
ANA=Annulation
d'avoir
AF=Auto-facturation
AC=Acompte
AAC=Annulation
d'acompte
NT=document non
traité (email, scan de
courrier/cheque,…)

19
3 Fournisseur texte Il s’agit de la raisonPas de caractères Warning 60 caractères
sociale du fournisseur.spécifiques autorisés bloquant si
Ce champ doit êtreà y être saisis. le
renseigné format par défaut fournisseur
automatiquement àtout en majuscule, n’est pas
partir du tri par retrouvé
répertoire fournisseurne doit pas contenir dans le
et à l’aide duplus de 05 caractères référentiel
référentiel. numériques.

Si l’indexation
automatique est KO,
notamment pour les
nouveaux
fournisseurs, à
modifier lors de la
saisie.
23 num_TVA alphanumérique TVA Clé de contrôle TVA 13 caractères
Intracommunautaire Intra + Référentiel
du fournisseur,
récupéré
automatiquement.
Si non reconnu
automatiquement, à
saisir par les
opérateurs.
4 num_facture alphanumérique Saisir la donnée telleLes données serontWarning 35 caractères
qu’elle. Double saisiecomparées etbloquant
par 02 opérateurscorrigées lors de lalorsque les
différents où le 02ème02ème saisie. 02 champs
est de niveau plus num facture
élevé que le premier. ne sont pas
identiques
5 date_facture jj/mm/aaaa Il s'agit bien de la>2012 Warning 10 caractères
date d'édition de la>= date du jour de labloquant si :
facture. saisie Date <2012
Si cette date d'édition
n'est pas présente, Ou si date >
laisser le champ vide. date du jour
de saisie
Ou si date
absente
date_debut_ jj/mm/aaaa ; S’il y a une date deDate début prestationWarning 10 caractères
prestation mm/aaaa début et date de fin< date facture bloquant si
précisées sur la « date début
facture, renseigner et fin
séparément ces prestation »
dates. vides ou

20
date_fin_pre jj/mm/aaaa ; La concaténation deDate fin prestation <date 10 caractères
station mm/aaaa ces 02 champsdate facture prestation
successifs dans leDate fin prestation >vide
champ date prestationdate début prestation
se fera à l’issue de
leur saisie. Les 02
dates seront séparées
par « espace tiret
espace »
6 date_prestati jj/mm/aaaa, jj/mm/aaaa; S'il y a plusieurs mois 23 caractères
on mm/aaaa, mm/aaaa ou un mélange de
période et mois,
reportez l'intitulé tel
qu'il apparait dans la
facture
immédiatement dans
le champ « date
prestation ». Par ex :
"Jan 2016, Mars 2016,
Juillet 2016"
7 objet_facturetexte Objet / titre de la 200 caractères
facture (Objet /
Activité / Opération /
Nom de l’opération /
Reference
commande / …)
8 num_cmd_by alphanumérique Rechercher 10 chiffresWarning 10 caractères
tel automatiquement unecommençant par 4 oubloquant si
série de 10 chiffres45 numéro
parfois écrits à la commande
main et souvent absent
commençant par 4 ou
45.
Si non récupérer
automatiquement, à
saisir par les
opérateurs.
9 montant_tot nombre décimal Saisir le montant tel<50 millions Warning 04 décimales
al_ht qu’il apparait sansMontant total HT =bloquant si
tronquer lessomme montant htincohérence
décimales des lignes du total des
Si la facture présente montants
des lignes de détails, HT lignes et
somme montant ht montant
des lignes = total HT en-
montant_total_ht tête/pied de
page (en
respectant
le seuil de
tolérance de
0,001)
Remise Nombre décimal Mettre le pourcentage 04 décimales

21
de la remise dans ce
champ. Ne plus saisir
le « % ».
Il est possible d’avoir
des multi remises en
rajoutant le champ
par un bouton « + ».
13 remise_num Nombre décimal mettre la valeurremise_num= 04 décimales
numérique de lamontant_total_ht
remise dans ce champ *remise
si c'est
Il est possible d’avoir
des multi remises en
rajoutant le champ
par un bouton « + ».
Remise_num_1
correspond à
remise_1
montant_tot Nombre décimal Mettre le pourcentage 04 décimales
al_tva_pcent de TVA. Ne plus saisir
le caractère %.
Il est possible d’avoir
des multi TVA en
rajoutant le champ
par un bouton « + ».
11 montant_tot Nombre décimal Mettre la valeurMontant_total_tva = 04 décimales
al_tva numérique de la TVA. (montant_total_ht –
Il est possible d’avoir remise_num) *
des multi TVA en montant_total_tva_pr
rajoutant le champcent
par un bouton « + ».
Montant_total_tva_1
correspond à
montant_total_tva_pr
cent_1
autres_taxes Nombre décimal Il s’agit d’un montant 04 décimales
d’un autre type de
taxe. Il est possible
d’avoir des multi taxe
en rajoutant le champ
par un bouton « + ».
10 montant_tot nombre décimal Saisir le montant tel<50 millions 04 décimales
al_ttc qu’il apparait sansMontant_total_ttc=
tronquer lesmontant_total_ht –
décimales remise_num +
montant_total_tva +
autres_taxes
12 Acompte nombre décimal Saisir le montant sur 04 décimales
la facture tel qu’il
apparaît sans

22
tronquer les
décimales
solde_anteri Nombre décimal à renseigner si 04 décimales
eur indiqué explicitement
sur la factures en
saisissant le montant
sur la facture tel qu’il
apparaît sans
tronquer les
décimales
14 net_a_payer Nombre décimal Le montant du net àNet_a_payer=Montan 04 décimales
payer peut êtret_total_ttc – acompte
différent du montant+ solde_antérieur
total ttc
Commentaire Texte Pour tout éventuelChamp non
commentaire ouobligatoire sauf pour
remarque particulière le type de document
« NT »

Lignes de détail :

Ordre Désignation sur Format Consignes Contrôles +warning Taille


de IHM et CSV de sortie champ à
colonne afficher
dans (ergonomie
CSV IHM)
15 Libellé texte Si le libellé est dispatché sur 500
plusieurs lignes, il faut le caractères
restituer sur une seule ligne
16 Quantite Nombre Saisir la donnée telle qu’elle. 04
décimal Ne pas tronquer les décimales
décimales.
17 Pu Nombre Saisir la donnée telle qu’elle. 04
décimal Ne pas tronquer les décimales
décimales.
19 montant_ht_ligne Nombre Saisir la donnée telle qu’elle. Montant_ht_ligne = 04
décimal Ne pas tronquer les quantité * pu décimales
décimales.
remise_ligne Nombre Mettre le pourcentage de 04
décimal remise de la ligne dans ce décimales
champ. Ne plus saisir le
« % ».
18 remise_ligne_num Nombre mettre le montant de la remise_num_ligne= 04
décimal remise de la ligne dans ce montant_ht_ligne décimales
champ. Ne pas tronquer les *remise_ligne
décimales.

23
20 code_tva_ligne Nombre Il s’agit du taux TVA. 04
décimal Mettre le pourcentage de décimales
TVA de la ligne ici. Ne plus
saisir le caractère %.
21 montant_tva_ligne Nombre Mettre le montant de la TVA Montant_tva_ligne 04
décimal de la ligne ici = décimales
(montant_ht_ligne

remise_ligne_num)
* code_tva_ligne
22 montant_ttc_ligne Nombre Saisir la donnée telle qu’elle. Montant_ttc_ligne= 04
décimal Ne pas tronquer les montant_ht_ligne – décimales
décimales. remise_ligne_ num
+
montant_tva_ligne

1.1.1.1.1.4 Validation au transfert après indexation


Au transfert d’une facture, il faut vérifier tous les contrôles par champ et inter-champ ainsi que les
champs vides et illisibles.

Si ces points sont KO, faire un WARNING non bloquant avec une demande de confirmation par
l’opérateur.

Si l’opérateur confirme que ces anomalies sont « conformes » à la facture sur le message de Warning,
l’application renseigne seulement que ces champs sont douteux et le document est transféré.

Si l’opérateur constate son erreur, il ne confirme pas le message d’erreur et procède à la correction
avant validation du document.

3.4.3.1.2 Descriptions techniques

On utilisera WebCapture – NumenIndex.


Les lots mada:workBatch chargés dans l’IHM est un regroupement de 5 WI de type
acq:manualDocIndexation qui pointent sur des documents ayant les mêmes fournisseurs.
Entrée :
Un mada:workBatch AVAILABLE ayant nvlt:workItemObjectTypeId = acq:manualDocIndexation
Traitement:
Chargement des documents acq:verticalInvoice pointés par les WI du WB.
Les champs à afficher dans l’IHM sont décrits dans les tableaux ci-dessous
Une recherche référentiel sera mise sur le champ TVA intra « inv:supplierFederalId » (recherche à la
google).
Une recherche référentiel globale (via une boite de dialogue) aussi sera mise en place avec les
champs de recherche suivants :
TVA Intra - inv:supplierFederalId
Fournisseur – inv:supplierName
Code Postal - inv:supplierPostCode

24
A chaque validation/confirmation d’un item via le réferentiel les champs suivants
Founisseurs, TVA Intracom seront mise à jour automatiquement.

Pour les champs illisibles, l’operateur laisse les champs à vide et confirmera avec la validation du
message avec warning et ces champs passeront automatiquement à l’étape
acq:manualDocCorrectionIndexation (voir la section « Gestion des warning » )

Contrôles:
Pour les documents de nature « NT » et « PF » les autres champs ne doivent pas être saisis. Dans le
fichier csv résultat du traitement du lot, il faudra uniquement référencer pour ces documents :
Le nom du fichier
La nature du document = « NT »
Pour les documents des autres natures, il faudra saisir toutes ou parties des autres champs.

L’indexation 1 du numéro facture se fait en mode picking uniquement. Le champ ne peut ni être
copier ni être coller.
Lorsque l’opérateur quitte ce champ et passe à l’indexation 2 du numéro facture, le précédent champ
sera masqué.

Sur ce deuxième champ, le mode d’indexation est uniquement de la saisie. Le « copier-coller » n’est
également pas autorisé sur ce champ.

Au moment de la validation du document, s’il y a un écart entre ces deux champs de numéro facture,
un warning s’affichent et le masque du 01er champ s’enlève pour voir l’écart.

L’opérateur procède par la suite à la modification des 02 champs par la saisie.

Un résultat négatif de ces contrôles doit générer un WARNING qui nécessite une validation de
l’opérateur de saisie.

25
1.1.1.1.1.5 Les champs du document

Contrôles Warning bloquant (Oui/Non)

Identifiant Champs canonicalFormatter cannonicalParser postOcrFilters postOcrParser validators

cmis:name

Nom document
Si type NT ou PF: aucun champ ne Oui si type de document est PF ou
doit être à renseigner, l’opérateur NT
peut valider le document et passer
au suivant.
inv:invoiceType

Type facture
Pas de caractères spécifiques Warning bloquant si le fournisseur
autorisés à y être saisis. n’est pas retrouvé dans le
Format par défaut tout en référentiel
inv:supplierName
propertyConstrmajuscule,
aintSupplierNa Ne doit pas contenir plus de 05
Fournisseur me caractères numériques.
ocrFilterRemovePu Clé de contrôle TVA Intra + Warning bloquant si le fournisseur
nct Référentiel n’est pas retrouvé dans le
ocrFilterRemoveW propertyConstr référentiel
canonicalFormatterS canonicalParserSup hitespace ocrParserSuppl aintSupplierFe
inv:supplierFederalId TVA intra upplierFederalID plierFederalID ocrFilterNumber ierFederalID deralId

26
ocrFilterRemoveInv Les données seront comparées et Warning bloquant lorsque les 02
oiceMinus corrigées lors de la 02ème saisie. champs num facture ne sont pas
ocrFilterRemoveInv identiques
oiceN
ocrFilterRemoveInv
oiceMinus propertyConstr
canonicalFormatterIn canonicalParserInv ocrFilterRemoveInv ocrParserInvoi aintEscapingCh
inv:id Numero facture voiceID oiceID oiceApostroph ceID araracter

propertyConstr
aintEscapingCh
inv:id2 Numero facture 2 araracter
>2012 Warning bloquant si :
>= date du jour de la saisie Date <2012
Ou si date > date du jour de saisie
canonicalFormatterD canonicalParserDat propertyConstr Ou si date absente
inv:invoiceDate Date facture ate ePeriode ocrFilterDate ocrParserDate aintIssueDate
Date début prestation < date Warning bloquant si « date début
facture et fin prestation » vides et date
prestation vides
canonicalFormatterD canonicalParserDat propertyConstr
acq:debutPeriode Debut periode ate ePeriode ocrFilterDate ocrParserDate aintPeriode
Date fin prestation < date facture Warning bloquant si « date début
Date fin prestation > date début et fin prestation » vides et date
prestation prestation vides
canonicalFormatterD canonicalParserDat propertyConstr
acq:finPeriode Fin periode ate ePeriode ocrFilterDate ocrParserDate aintPeriode
Warning bloquant si « date début
et fin prestation » vides et date
acq:datePrestation prestation vides
canonicalFormatterD canonicalParserDat propertyConstr
Date prestation ate ePeriode ocrFilterDate ocrParserDate aintPeriode

propertyConstr
canonicalParserPur ocrParserPurchase aintPurchaseO
acq:invoiceObject Objet de la facture chaseOrderID OrderID rderID

27
10 chiffres commençant par 4 ou Warning bloquant si numéro
45 commande absent
inv:purchaseOrderID Numéro propertyConstr
Commande canonicalParserNu aintnumComm
Bouygues mCommandeByTel andeByTel
<50 millions Warning bloquant si incohérence
Montant total HT = somme du total des montants HT lignes et
inv:taxExclusiveAmount propertyConstrmontant ht des lignes montant total HT en-tête/pied de
canonicalFormatterD canonicalParserDec ocrParserDeci aintTaxExclusiv page (en respectant le seuil de
Montant total HT ecimal4 imal4 mal eAmount tolérance de 0,001)
remise_num= montant_total_ht
*remise
inv:discountAmount ocrFilterRemoveW propertyConstr
canonicalFormatterD canonicalParserDec hitespace ocrParserDeci aintEscompteP
Montant Remise ecimal4 imal4 ocrFilterNumber mal ercent

ocrFilterRemoveW
acq:discountAmountPe canonicalFormatterD canonicalParserDec hitespace ocrParserDeci propertyConstr
rcent Remise en % ecimal4 imal4 ocrFilterNumber mal aintDiscount

acq:TVAmountPercent ocrFilterRemoveW propertyConstr


Montant total TVA canonicalFormatterD canonicalParserDec hitespace ocrParserDeci aintTVAmount
en % ecimal4 imal4 ocrFilterNumber mal Percent
Montant_total_tva =
(montant_total_ht – remise_num)
ocrFilterRemoveW propertyConstr* montant_total_tva_prcent
canonicalFormatterD canonicalParserDec hitespace ocrParserDeci aintVATAmoun
inv:VATAmount Montant total TVA ecimal4 imal4 ocrFilterNumber mal t

ocrFilterRemoveW propertyConstr
canonicalFormatterD canonicalParserDec hitespace ocrParserDeci aintOtherTaxA
inv:otherTaxAmount Autres taxes ecimal4 imal4 ocrFilterNumber mal mount
<50 millions
Montant_total_ttc=
ocrFilterRemoveW propertyConstrmontant_total_ht – remise_num +
canonicalFormatterD canonicalParserDec hitespace ocrParserDeci aintTaxInclusiv montant_total_tva + autres_taxes
inv:taxInclusiveAmount Montant total TTC ecimal4 imal4 ocrFilterNumber mal eAmount

28
ocrFilterRemoveW
Montant sur la canonicalFormatterD canonicalParserDec hitespace ocrParserDeci propertyConstr
acq:accompte facture ecimal4 imal4 ocrFilterNumber mal aintAccompte

ocrFilterRemoveW propertyConstr
canonicalFormatterD canonicalParserDec hitespace ocrParserDeci aintSoldeAnter
acq:soldeAnterieur Solde antérieure ecimal4 imal4 ocrFilterNumber mal ieur
Net_a_payer=Montant_total_ttc –
acompte + solde_antérieur
ocrFilterRemoveW propertyConstr
Montant total canonicalFormatterD canonicalParserDec hitespace ocrParserDeci aintPaidAmou
inv:paidAmount facture ecimal4 imal4 ocrFilterNumber mal nt
Champ non obligatoire sauf pour le
type de document « NT » et l’envoi
du document immédiatement en
étape de correction
inv:comment Commentaire

29
1.1.1.1.1.6 Les lineItem dans chaque document

Contrôles +warning
Identifiant Champs canonicalFormatter cannonicalParser postOcrFilters postOcrParser validators
inv:label Libellé canonicalParserLabel ocrParserLabel

ocrFilterRemoveW
canonicalFormatterD canonicalParserDec hitespace ocrParserDeci
acq:InvoiceQuantity Quantité ecimal4 imal4 ocrFilterNumber mal

ocrFilterRemoveW
canonicalFormatterU canonicalParserPric hitespace ocrParserPrice
acq:UnitPrice Prix Unitaire nitPrice eUnit ocrFilterNumber Unit
acq:TaxExclusiveAmount Montant HT canonicalFormatterD canonicalParserDec propertyConstraintTaxExcl Montant_ht_ligne = quantité *
Line Ligne ecimal4Decimal4 imal4 ocrParserDecimal usiveAmountLine pu
Remise ligne en
acq:DiscountLinePercent %
acq:DiscountLineNumbe Remise ligne remise_num_ligne=
r montant montant_ht_ligne *remise_ligne

ocrFilterRemoveW
canonicalFormatterD canonicalParserDec hitespace ocrParserDeci propertyConstraintVATRat
acq:VATRatLine Line TVA en % ecimal imal ocrFilterNumber mal e
Montant_tva_ligne =
Line montant ocrFilterRemoveW (montant_ht_ligne –
TVA canonicalFormatterD canonicalParserDec hitespace ocrParserDeci propertyConstraintVATAm remise_ligne_num) *
acq:VATAmountLine ecimal4 imal4 ocrFilterNumber mal ount code_tva_ligne
Montant_ttc_ligne=
ocrFilterRemoveW montant_ht_ligne –
acq:TaxInclusiveAmount Line montant canonicalFormatterD canonicalParserDec hitespace ocrParserDeci propertyConstraintTaxIncl remise_ligne_ num +
Line TTC ecimal4 imal4 ocrFilterNumber mal usiveAmountLine montant_tva_ligne

30
Layout dynamique :

Un premier prototype de layout dynamique à implémenter sur ce projet. Deux layout plus
précisement.
Un layout standard pour les entêtes et les pieds de page

Un layout type treeView pour les lignes de détails :

Gestion des warning :


A la validation d’une facture, il faut vérifier tous les contrôles par champ et inter-champ ainsi que les
champs vides et illisibles.

Si l’opérateur rencontre des WARNING bloquant, il sera impossible pour ce dernier de valider le
document. Le document doit obligatoirement passer par l’étape de correction et être analyser par un
correcteur expert.
Tous les warnings non bloquant seront stockés dans le champ acq:fieldInWarning et exploités
pendant l’étape packaging car cette liste de warning sera à livrer au client.

Avertissement : Seul le document en ligne a valeur applicative


Modèle DO V. 2.01 DO_DEFP_01-Mada 31/39
Spécifications du procédé de Fabrication et de Réfection/DO_DEFP_01-Mada

Evolution attendu de webcapture dans les prochaines versions :


Sauvegarde au fur et à mesure des x lignes saisies pour éviter des pertes d’info en cas de
plantage/sortie de webcapture.

3.4.3.2 wi:autoBatchApply
Entrée :
WorkItem wi:autoBatchApply AVAILABLE
Traitements :
Si la propriété liste acq:fieldsInWarning du document est différente de vide alors nvlt:switchCode =
« manualDocCorrectionIndexation »
Sinon nvlt:switchCode = « autoBatchPackaging». Ce flow est le flow par défaut.
Sortie :
finishWorkItem

3.4.4 Post Traitement

3.4.4.1 wi:autoBatchControl
Entrée :
WorkItem wi:autoBatchControl, AVAILABLE.
Traitements :
Ce script ne fait rien pour le moment

3.4.4.2 acq:manualDocCorrectionIndexation
Entrée :
WorkItem acq:manualDocCorrectionIndexation AVAILABLE.

Traitements :
Cette étape n’est pas obligatoire pour toutes les factures. Seules les factures avec des champs
douteux, warning bloquants et envoyé en anomalie par l’opérateur passeront par cette étape.
Si le correcteur confirmera les warning alors les champs restent dans la propriété
« acq:fieldsInWarning » et seront utilisés en acq:autoBatchPackaging pour générer un fichier plat
lisezmoi.txt à mettre dans le ZIP de livraison. Le contenu du champ acq:fieldsInWarning serait ainsi
valorisé par un json contenant les champs en erreur sur l’entête et un sous tableau contenant les
champs en erreurs sur les lignes de détails.

Dans un cas extrême, ou un ou plusieurs champs avec warning bloquants ne sont vraiment pas
exploitable ou absent dans une facture donnée, on échappera ces champs selon leur type :
Type date : 01/01/1970

Avertissement : Seul le document en ligne a valeur applicative


Modèle DO V.2.01 DO_DEFP_01-Mada 32/39
Spécifications du procédé de Fabrication et de Réfection/DO_DEFP_01-Mada

Type montant : 0
Type alpha-numérique comme numéro facture / numéro commande : **

Sortie :
finishWorkItem

3.4.4.3 wi:autoBatchPackaging

3.4.4.3.1 Descriptions fonctionnelles

Le livrable est au format .csv et contient les champs listés ci-dessus.


Point de vigilance :
 On aura autant de ligne dans le CSV que de ligne dans les lignes de détails
 Toutes les virgules dans les champs montants doivent être remplacées par des points dans le
csv à livrer.

 Pour les champs montants, que ce soit en en-tête/pied de page ou dans les lignes de détails,
si la valeur est 0, laisser le champ vide dans le csv à livrer.

Exemple d'entête
csv.csv

Chaque lot livré par le client devra générer un fichier csv.
Dans le fichier csv généré, chaque facture traitée génèrera « n » lignes (« n » correspondant au
nombre de lignes extraites pour chaque facture).
Le format de sortie est du « csv » encodé en UTF8
Le zip packagé contient :
Le fichier csv correspondant au document pdf = document
Les fichiers OCR correspond aux pages du document pdf.
Le fichier lisezmoi.txt contenant la liste des champs avec les warning bloquants
confirmés à l’étape de correction (il s’agit donc logiquement d’une anomalie sur la
facture en elle-même).

3.4.4.3.2 Descriptions techniques


L’étape wi:autoBatchPackaging est une étape automatique fait en script balise.

Entrée :

Workitem wi:autoBatchPackaging AVALAIBLE


En paramètre un hotFolder pour les livrables
Traitement :

Constitution d’un livrable pour chaque document :

Avertissement : Seul le document en ligne a valeur applicative


Modèle DO V.2.01 DO_DEFP_01-Mada 33/39
Spécifications du procédé de Fabrication et de Réfection/DO_DEFP_01-Mada

Exemple d'entête
csv.csv
Pour chaque document, Génération CSV de la forme , ce csv sera
stocké en rendition de type acq:csv du document acq:verticalInvoice.
Pour chaque page, Récupération des xml finereader (fichier OCR)
Pour chaque document, Génération du fichier lisezmoi.txt contenant la liste des
champs avec ces warning via les propriétés acq:fieldsInWarning, si cette
propriété n’est pas vide

Sortie :
Un répertoire contenant les livrables pour chaque document

3.4.4.4 wi:autoBatchLivraison

3.4.4.4.1 Description fonctionnelle

En sortie, les fichiers CSV et OCR seront déposés sous forme de lot ou de sous lot par fournisseur sur
le serveur ftp Numen à Chambray-les-Tours.

Le depot sur FTP (Client ou Numen : à définir) se fera automatiquement via le


BAT_Livraison dans un dossier ~\livraison\Dhatim\Bouygues\CSV Numen\<date
du jour> (au format JJ-mm-AAAA)\
Un mail automatique est reçu par le responsable de production Numen de ce dépôt
afin qu’il puisse aviser le responsable client de la prestation pour indiquer :
 la référence des lots déposés et pour chaque lot
 le nombre de documents livré
 la référence des documents ayant été contrôlés par échantillonnage parmi ceux livrés
Le responsable client de la prestation se connecte au FTP :
 Récupère les lots déposés
 Dépose un fichier intitulé "data du jour et heure"_AR.txt qui indique la liste des lots et le
nombre de documents récupérés
Le responsable client de la prestation contrôle les lots livrés
A l'issue de ses contrôles, le responsable client de la prestation dépose :
 si les contrôles sont corrects, un fichier intitulé : "data du jour heure minute seconde"_OK.txt
 si les contrôles sont incorrects, un fichier intitulé : "data du jour heure minute seconde
"_KO.txt et contenant les contrôles détectés incorrects
Le responsable client de la prestation envoie un mail au responsable de production
Numen pour lui indiquer qu'il a contrôlé les éléments livrés

Avertissement : Seul le document en ligne a valeur applicative


Modèle DO V.2.01 DO_DEFP_01-Mada 34/39
Spécifications du procédé de Fabrication et de Réfection/DO_DEFP_01-Mada

3.4.4.4.2 Description technique


Entrée :
Workitem wi:autoBatchLivraison AVALAIBLE
Paramétrage dans un fichier ini / xml contenant :
 Compte ftp / login / user
 Liste des adresses emails
 Pourcentage de l’échantillon à contrôler après la livraison
 hotFolder
Traitement :
Ce batch sera lancé par la production.
Créer un zip par fournisseur
Dépôt sur ftp

Sortie :
Fichiers Zip sur le FTP du client.

3.5 Mesure qualité

La qualité du livrable est mesurée à postériori de la livraison. Un échantillon sera tiré simultanément et au
hasard dans tout l’ensemble des factures livrées puis sera généré automatiquement Comme le taux qualité est
mesuré au champ, la taille de cet échantillon est définie selon le nombre de population de champs indexés. Cet
échantillon sera reçu par mail automatique par le responsable de production.

Le fichier extrait est du même format que le csv livré avec une colonne en plus à côté de chaque champ pour
mentionner si le champ contrôlé est OK ou KO. En plus, il y aura 02 colonnes supplémentaires tout à droite. Ces
colonnes renseigneront le N° matricule de l’opérateur lors de l’indexation ainsi que celui qui a effectué la
correction.

Un opérateur qualifié contrôle les données intégralement sur un tableur avec lien permettant de visualiser
immédiatement chaque facture. Il n’effectue aucune correction mais renseigne uniquement le statut de
chaque champ (OK ou KO).

Des statistiques sont générées à l’issue de cette opération pour voir le nombre de champs total sur cet
échantillon, le nombre de champs KO, le nombre de champs OK, la ventilation de ces statuts par type de champ.

Ces résultats seront envoyés au client par mail, en tant que contrôle contradictoire. Ils serviront également de
mesure qualité en interne pour pallier les prochaines productions.

Rappelons que le taux de qualité requis est de 100% sur le numéro facture et 98% au champ pour les autres
champs de l’en-tête/pied de page puis 95% pour les champs des lignes de détails.

Techniquement, cette étape se fera en parallèle avec l’étape livraison. Ainsi ce sera le BAT_Livraison qui
générera le fichier CSV avec les colonnes décrites ci-dessus dans la description fonctionnelle. Le fichier CSV
généré sera envoyé par la suite par email en pièce jointe aux responsables de production.

Avertissement : Seul le document en ligne a valeur applicative


Modèle DO V.2.01 DO_DEFP_01-Mada 35/39
Spécifications du procédé de Fabrication et de Réfection/DO_DEFP_01-Mada

4 Spécification des outils de suivi


Les outils de suivi à déployer sur Dhatim sont MySmartGed et SmartReport.
Ces outils doivent permettre d’indiquer :
Un reporting global : le volume de lots et factures reçus, nombre de lots et factures
traités, nombre de lots et factures en cours de traitement (à chaque opération),
nombre de lots et factures libres.
Un reporting en temps réel de production définissant tant le volume que la vitesse de
traitement pour chaque opération par rapport à la cible.
Un reporting par opérateur pour suivre le volume traité et la vitesse moyenne
comparés aux objectifs respectifs.
Un reporting qualité pour avoir un taux qualité global, un taux qualité par type de
champ, un taux qualité par opérateur pouvant mettre en évidence les écarts
d’informations indexées.
Ces outils de suivi doivent afficher à la fois des tableaux ainsi que des graphes

5 Spécification des batchs à surveiller


Nom Fréquence Intervalle de Multi Multi Monitoring en
rafraîchissement instance nb thread nb place
max max

Avertissement : Seul le document en ligne a valeur applicative


Modèle DO V.2.01 DO_DEFP_01-Mada 36/39
Spécifications du procédé de Fabrication et de Réfection/DO_DEFP_01-Mada

6 Paramétrage GPAO V2 (à compléter ultérieurement)

6.1 Projet
Libellé projet à dupliquer BOUYGUES-TELECOM_FACTURE_2016_SAISIE_PROD
Libellé du projet
Description du projet
Client Numen Mada
Client final
Difficulté projet

6.2 Opérations
Ordre Libellé Opération Nature Unité en Unité en Sortie OK Sortie KO Ajout auto opération Opération Opération

(Batch ou entrée sortie (N° d’Ordre) (N° d’ordre) suivante de contrôle contrôlée
OS) (cocher X)
(Oui ou Non) (N° d’ordre)

1 ACQ_Indexation OS Facture Facture


2 ACQ_Correction OS Facture Facture
3 ACQ_Conttrole OS Facture Facture
4
5
6
7
….

Avertissement : Seul le document en ligne a valeur applicative


Modèle 2.01 DO_DEFP_01-Mada 37/39
Spécifications du procédé de Fabrication et de Réfection/DO_DEFP_01-Mada

6.3 Suivi performance & objectifs cibles


Ordre Difficulté opération Prorata temporis Taux vitesse Taux qualité Vitesse cible Qualité cible Quantité de

(Oui ou Non) (%) (%) référence

1
2
3
4
5
6
7

7 Volumétrie et délai de traitement


La volumétrie mensuelle des factures livrées par Dhatim est de 5000 factures.

Numen, traitera à réception sur un mois glissant les factures et les livrera au fil de l’eau

Avertissement : Seul le document en ligne a valeur applicative


Modèle 2.01 DO_DEFP_01-Mada 38/39
Spécifications du procédé de Fabrication et de Réfection/DO_DEFP_01-Mada

Avertissement : Seul le document en ligne a valeur applicative


Modèle 2.01 DO_DEFP_01-Mada
39/39