spécifications - documentation SEPAmail

Transcription

spécifications - documentation SEPAmail
DOCUMENT DE LA SÉRIE
«SPÉCIFICATIONS»
SPÉCIFICATIONS FONCTIONNELLES
IMPRIMANTE SEPAMAIL RUBIS
VERSION
1. VERSION
Date
20120131.003
DU DOCUMENT
Version du document
Intervenant
Action
Validation
23/01/2012
Version initiale, pour relecture
Manfred S. Olm
Rédaction
26/01/2012
Version 20120126.002
Manfred S. Olm
Ajout des remarques
Cyril VIgnet
31/01/2012
Version 20120131.003
Manfred S. Olm
Finalisation structure
avant envoi
Cyril VIgnet
2. DOCUMENTS
Date
RÉFÉRENCÉS
Document
Auteur
Version
Ce document ne peut être diffusé sans l'accord explicite de ses auteurs ou de ses
destinataires.
Série Spécifications
Document SPF1201
1/13
scheme SEPAmail – au service du réseau des adhérents SEPAmail
3. INTRODUCTION
Le logiciel « Imprimante Sepamail Rubis Creancier » de nom de code SMURF (Sepa Mail
Universal Resource Formater) permet pour les clients créanciers des banques
adhérentes du réseau SEPAmail de générer en relation avec leur logiciel ERP des
documents au format SEPAmail.
4. SOMMAIRE
1. Version du document........................................................................................................................1
2. Documents référencés.......................................................................................................................1
3. Introduction......................................................................................................................................2
4. Sommaire..........................................................................................................................................2
5. Le contexte.......................................................................................................................................2
6. Les acteurs........................................................................................................................................4
7. Le principe........................................................................................................................................4
8. Le séquencement détaillé..................................................................................................................5
9. Le modèle de donnée........................................................................................................................6
10. Les fonctionnalités..........................................................................................................................7
10.1. Récupérer les demandes de paiement......................................................................................7
10.2. Sélectionner/ Dé-sélectionner les demandes de paiement.......................................................8
10.3. Génération des demandes de paiement au format pdf/a-1a.....................................................8
10.4. Envoi des demandes de paiement au client de messagerie....................................................10
10.5. Génération d'un récépissé d'envoi.........................................................................................10
11. Les librairies à utiliser...................................................................................................................10
12. Les écrans.....................................................................................................................................10
12.1. l'écran RUBIS.......................................................................................................................11
12.2. l'écran paramétrage...............................................................................................................11
12.3. l'écran aide.............................................................................................................................11
13. Les livrables..................................................................................................................................12
14. la qualification...............................................................................................................................12
15. Évolutions pour versions ultérieures.............................................................................................13
5. LE
CONTEXTE
Un client créancier dispose d'un logiciel ERP1 qui lui permet de disposer des comptes de
ses clients.
Pour disposer du service RUBIS2, il a besoin de pouvoir envoyer ses demandes de
paiement au format RUBIS sur la prise SMILE de sa banque.
Le composant SMURF va lui permettre de générer automatiquement le document pdf
au format SEPAmail à envoyer à la prise bancaire SEPAmail SMILE, soit directement
(canal web service), soit via un client de messagerie S/Mime (canal messagerie).
1 Enterprise Resource Planning ou Progiciel de gestion intégrée en français (PGI)
2 RUBIS est l'acronyme français de "Règlement Universel Bancaire Immédiat & SEPA". L'application permet le
paiement de facture par virement en initiant une demande de paiement.
Série Spécifications
Document SPF1201
2/13
scheme SEPAmail – au service du réseau des adhérents SEPAmail
Ce composant est paramétrable
•
•
en entrée avec :
◦
un gabarit du document à générer (la demande de paiement, par exemple
une quittance de loyer, une facture pro-format etc...) au format
OpenDocument.
◦
un gabarit du flux SEPAmail à générer (la demande de paiement RUBIS) au
format xml SEPAmail
◦
une connexion/requête sur la base de données de l'ERP ou un fichier de
données brutes
en sortie avec :
◦
soit une prise au client de messagerie (protocole mailto://)
◦
soit une prise directe au web-service SMILE
◦
soit un fichier utilisable sur une autre prise avec sa banque (EBICS, dépôt
fichier...)
SMURF avec prise directe à l'ERP
Le SMURF est développé avec les contraintes
suivantes :
SMURF sans prise directe à l'ERP
Série Spécifications
Document SPF1201
3/13
scheme SEPAmail – au service du réseau des adhérents SEPAmail
•
le composant utilise le langage de programmation JAVA,
•
le composant utilise un unique fichier de configuration,
•
le composant pourra être installé indifféremment sur MacOS, windows ou tout
système UN*X dont GNU/Linux,
•
le composant est développé sous licence open source « Creative Commons
Paternité - Partage à l'Identique 3.0 non transposé » pour les composants
développé spécialement pour l'outil et sous n'importe quelle licence libre pour
les composants réutilisés en respectant les termes de chacune d'elles.
6. LES
ACTEURS
Le composant SMURF est utilisé par le service réalisant les demandes de paiement.
L'utilisateur principal du composant est un agent humain qui génère les demandes à
partir d'une requête paramétrée et d'un gabarit vérifié et mis à jour si besoin. C'est
donc un utilisateur habituel de la fonction publi-postage d'un traitement de texte ou
d'un écran de génération de demande de paiement dans un ERP. Cet utilisateur a
besoin d'une interface pour réaliser ces opérations.
On peut envisager qu'une ressource informatique intervienne pour le paramétrage du
composant SMURF si ce paramétrage est durable et ne doit pas changer à chaque
génération de demande de paiement. Pour une bonne visibilité du composant vis à vis
de l'utilisateur premier, ce paramétrage est possible au sein d'une interface, avec la
mention « avancée ».
Les automates acteurs de la cinématique autour du composant sont :
•
SMILE, accessible via une interface web-service
•
le client de messagerie, accessible via une interface protocolaire (mailto://)
•
le moteur de base de données du logiciel ERP, accessible via une connexion de
type odbc depuis un utilisateur externe, sans passer par l'ERP directement
SMILE et le client de messagerie sont utilisés exclusivement l'un de l'autre, selon le
mode de transmission choisi, courriel sécurisé ou web-service.
7. LE
PRINCIPE
Le composant SMURF se connecte, sur demande de l'utilisateur, à la base de données
de l'ERP et réalise la requête paramétrée pour récupérer un jeu de données sur les
demandes de paiements (par exemple le montant, la référence client, l'objet de la
demande de paiement, les dates).
L'utilisateur du composant doit pouvoir :
•
filtrer ce jeu de données et ne choisir que les demandes désirées,
•
tester la génération des demandes de paiement au format SEPAmail PDF 1.5/A1 3,
3 http://fr.wikipedia.org/wiki/ISO_19005-1
Série Spécifications
Document SPF1201
4/13
scheme SEPAmail – au service du réseau des adhérents SEPAmail
•
valider le jeu de données et générer la demande définitive,
•
récupérer un état des demandes validées et générées pour archive de l'action,
•
enregistrer la configuration du composant pour pouvoir réutiliser de façon
automatique cette configuration,
•
accéder au paramétrage du composant,
•
accéder depuis le composant aux deux gabarits utilisés en entrée :
◦
le gabarit de la demande de paiement que reçoit habituellement le client, au
format opendocument 4 via un lecteur de ce format,
◦
le gabarit de la missive SEPAmail qui va permettre l'automatisation du
procédé de transmission de la demande de paiement, au format xml via un
éditeur de ce format 5.
8. LE
SÉQUENCEMENT DÉTAILLÉ
Le séquencement détaillé est résumé sur le diagramme de séquence suivant :
Soit la séquence détaillée :
1. l'utilisateur se connecte au composant (il n'y a pas besoin de gestion de droits)
2. l'utilisateur déclenche la récupération des données
4 http://fr.wikipedia.org/wiki/OpenDocument
5 La missive doit respecter le schéma http://xsd.sepamail.eu/current/sepamail_missive.xsd
et contenir un message de type payment.activation activationRequest
http://xsd.sepamail.eu/current/sepamail_message_payment.activation_ActivationRequest.xsd
Série Spécifications
Document SPF1201
5/13
scheme SEPAmail – au service du réseau des adhérents SEPAmail
3. le composant SMURF se connecte au moteur de base de données (liaison ODBC)
et réalise la requête sur ce moteur. La liaison et la requête sont fournies en
paramétrage du composant
4. le moteur de base de données renvoie un jeu de données
5. le composant SMURF présente le résultat de la requête en mode liste avec la
possibilité de filtrer la liste et sélectionner/dé-sélectionner chacun des éléments
6. l'utilisateur sélectionne/ dé-sélectionne les éléments désirés
7. l'utilisateur déclenche la génération test
8. le composant SMURF récupère le fichier gabarit de la demande de paiement
visuelle (au format opendocument)
9. le composant SMURF récupère le fichier gabarit de la demande de paiement
SEPamail (au format xml)
10.le composant SMURF réalise une fusion contrôlée des gabarits avec la sélection
utilisateur du jeu de données
11.le composant SMURF génère un pdf pour chacune des demandes de paiement
(format PDF 1.5/A6) et présente chacune des demandes de paiement (pdf) au
téléchargement au sein de la liste sélectionnée.
12.l'utilisateur vérifie cette génération
en cas de succès de cette vérification
13.l'utilisateur déclenche la validation de la génération
14.le composant SMURF produit un récépissé de génération dans un format pdf
1.5/A selon un paramétrage défini.
15.Le composant SMURF envoie chacune des demandes pdf au client de messagerie
avec la méthode mailto du client de messagerie, tout en créant sur lesystèmede
fichier local une copie de ces fichiers.
En cas d'échec de cette vérification
16.l'utilisateur revient au point 2 ou 6
9. LE
MODÈLE DE DONNÉE
Le composant SMURF manipule :
•
un fichier de configuration au format Properties 7
•
un fichier gabarit au format OpenDocument ou ODF (Open Document Format for
Office Applications) du groupe normatif OASIS (Organization for the
Advancement of Structured Information Standards) pour la demande de
paiement
•
un fichier gabarit au format OpenDocument pour le récépissé d'envoi
6 http://www.fedisa.eu/fedisa2007/info.php3?page=ARTICLES&id=322 et
http://www.pdfa.org/publication/pdfa-l%e2%80%99essentiel/?lang=fr
7 Par exemple, http://commons.apache.org/configuration/howto_properties.html
Série Spécifications
Document SPF1201
6/13
scheme SEPAmail – au service du réseau des adhérents SEPAmail
•
un fichier gabarit au format xml (une missive SEPAmail avec
•
un fichier de journalisation des actions et des erreurs, au format syslog 8
•
un récépissé de chacun des envois, au format PDF/A-1a
Il n'y a pas de base de données pour SMURF.
SMURF manipule les objets en mémoire et dans le système de fichier, avec une
arborescence paramétrable répondant à la classification suivante :
•
un répertoire pour l'application SMURF (par défaut smurf)
•
un répertoire pour la configuration de SMURF (par défaut conf)
•
un répertoire pour les gabarits de SMURF (par défaut template)
•
un répertoire temporaire pour les besoins de décharge mémoire (par défaut tmp)
•
un répertoire pour les sorties pdf de SMURF (par défaut output)
Le nom des fichiers générés répond à la norme :
[nom gabarit demande paiement]_[yyyymmddhhiiss]_[id demande].pdf
où :
•
[yyyymmddhhiiss] est la date/heure de la génération du document
•
[id demande] est l'identifiant de la demande
•
[nom gabarit demande paiement] est le nom du fichier gabarit privé de son
extension finale
10. LES
FONCTIONNALITÉS
Cette version de SMURF ne développe pas la prise directe web-service entre le SMURF
et le composant SMILE. Elle n'utilise pas non plus de données brutes en entrée mais
une connexion au moteur de base de données de l'ERP.
Les grandes fonctions sont décrites ci-dessous.
10.1. RÉCUPÉRER LES DEMANDES DE PAIEMENT
Le composant implémente une fonction de récupération des demandes de paiement.
Cette récupération se fait au moyen d'une liaison de type jdbc directement au moteur
de base de données de l'ERP.
Cette liaison est variable et paramétrable dans le fichier de configuration avec une
interface (écran paramétrage, zone paramétrage avancé). Il n'est pas grave que le mot
de passe associé à l'utilisateur de cette liaison soit en clair dans le programme.
La requête est également variable et doit permettre de récupérer à chaque demande le
bon jeu de données.
On implémente deux variables de cette requête:
•
la date de début (format date/heure)
8 http://tools.ietf.org/html/rfc5424
Série Spécifications
Document SPF1201
7/13
scheme SEPAmail – au service du réseau des adhérents SEPAmail
•
la date de fin (format date/heure)
Ces deux variables disposent d'une saisie à part dans la zone de paramétrage et
peuvent être mise en variable de la requête si besoin.
SI chacune des dates n'est pas renseignée ou mal formatée alors qu'elle est présente
dans la requête, alors un message avertit l'utilisateur de la nécessité de saisir une date
correcte.
Le nom des variables à insérer dans la requête est :
•
#SMURF#dateTimeRequestBegin#
•
#SMURF#dateTimeRequestEnd#
La fonction « récupération des données » réalise donc la séquence d’instruction
suivante :
1. ouverture de la liaison jdbc, exception en cas d'échec
2. construction de la requête, exception en cas d'échec
3. soumission de la requête, exception en cas d'échec
4. récupération du curseur sur le jeu de données résultat, exception en cas d'échec
5. peuplement de l'objet adhoc SMURF qui reçoit la liste des demandes de
paiement, exception en cas d'échec
10.2. SÉLECTIONNER/ DÉ-SÉLECTIONNER LES DEMANDES DE
PAIEMENT
Le composant implémente une fonction de sélection et désélection des demandes de
paiement proposées et affichées.
Par défaut, toutes les demandes de paiements sont sélectionnées.
Le composant permet la dé-sélection de chacune des demandes de paiement.
Le but de cette fonctionnalité est de pouvoir retirer quelques demandes de paiement
en cas de résultat (de la récupération des données) trop important et éviter ainsi que
ces demandes de paiement soient envoyées au client.
10.3. GÉNÉRATION DES DEMANDES DE PAIEMENT AU FORMAT PDF/A1A
Le composant implémente une fonction de génération des demandes de paiement au
format SEPAMail pdf.
Cette fonction est la fonction centrale du composant.
Le format de sortie impose pour chacune des demandes de paiement la génération
d'un fichier avec les contraintes suivantes :
•
le fichier est au format PDF/A-1a
•
le fichier présente des méta-données SEPAmail telles que définies ci-dessous
Série Spécifications
Document SPF1201
8/13
scheme SEPAmail – au service du réseau des adhérents SEPAmail
(spécification issue du « guide SEPAmail de l'entreprise et de l'éditeur de
logiciel »)9
◦
méta-données au format XMP10 (en dehors de l'objet DocumentInfo)
◦
encodage de ces metadata en UTF-8
◦
générateur de nom de code « smurf »
◦
méta-données à insérer
metadonnées
type
xmp:sepamail_missive
xml valide
xmp:sepamail_document.signed
xmp:sepamail_document.generator
Boolean
String(100)
description
obligatoire
contient le message lié au document
format xml valide (schema xml du message SEPAmail
correspondant) intégré dans une missive (schema xml de
la missive SEPAmail)
OUI
contient false ou true selon que la signature doit être
prise en compte par SEPAmail (remarque, le document
doit alors être signé selon une norme reconnue par
l'entreprise et sa banque)
NON
contient une chaine de caractères liée au logiciel
émetteur du document
NON
les métadonnées XMP SEPAmail du fichier PDF/A
La fonction « génération des demandes de paiement » réalise donc la séquence
d’instruction suivante :
1. récupération du gabarit OpenDocument (voir page 10 le paragraphe « Les
librairies à utiliser »), exception en cas d'échec
2. remplacement des variables #SMURF#nom_variable# par les variables de même
nom récupérées dans la requête, exception en cas d'échec sur l'une des
variables
3. récupération du gabarit xml SEPAmail, exception en cas d'échec
4. remplacement des variables #SMURF#nom_variable# par les variables de même
nom récupérées dans la requête, exception en cas d'échec sur l'une des
variables
5. génération d'un fichier pdf par demande de paiement au format PDF/A-1a (voir
page 10 le paragraphe « Les librairies à utiliser »), exception en cas d'échec à
partir du gabarit OpenDocument enrichi avec en méta données xml :
1. le gabarit xml enrichi en valeur de la métadonnée XMP clé
xmp:sepamail_missive
2. la métadonnée XMP clé xmp:sepamail_document.generator avec le code du
composant
3. nom du fichier pdf selon la norme proposée dans le paragraphe Le modèle de
donnée page 6.
Il doit être possible :
9 Pour plus de précisions sur la compatibilité de XMP avec le format PDF/A, voir http://www.pdflib.com/knowledgebase/xmp-metadata/xmp-in-pdfa/
10 spécifications des métadonnées http://www.aiim.org/documents/standards/xmpspecification.pdf
Série Spécifications
Document SPF1201
9/13
scheme SEPAmail – au service du réseau des adhérents SEPAmail
•
de visualiser chacune de ces demandes de paiements au format pdf,
•
de les imprimer une à une pour vérifier visuellement
•
de les récupérer pour vérifier la validité du format PDF/A-1a et celle du format
SEPAmail PDF (outils en ligne).
10.4. ENVOI DES DEMANDES DE PAIEMENT AU CLIENT DE
MESSAGERIE
Le composant implémente une fonction d'envoi des demandes de paiement au client
de messagerie.
A finaliser avec Cyril, pb avec mailto et attachment, astuce à trouver si beaucoup de
demande de paiement...envoi direct.
10.5. GÉNÉRATION D'UN RÉCÉPISSÉ D'ENVOI
Le composant implémente une fonction de génération de récépissé d'envoi.
Cette fonction réalise la séquence d'instruction suivante :
1. récupération du gabarit OpenDocument du récépissé (voir page 10 le
paragraphe « Les librairies à utiliser »), exception en cas d'échec
2. remplacement des variables #SMURF#nom_variable# par les variables de même
nom récupérées dans la requête, exception en cas d'échec sur l'une des
variables. On y trouve notamment ce qui concerne les demande de paiement :
date de génération, date d'envoi, nom du fichier pdf, client, montant.
3. Génération d'un fichier PDF au format pdf/A-1a et écriture dans le répertoire de
journalisation.
11. LES
LIBRAIRIES À UTILISER
La maîtrise d’œuvre utilisera les librairies suivantes :
•
jOpenDocument, pour la manipulation de gabarit OpenDocument 11.
•
iText, avec la conformité PDFA1A12 pour la génération des PDF/A ou
préférentiellement pdflib 13, qui garantit cette compatibilité.
12. LES
ÉCRANS
L'interface SMURF se compose de trois écrans que l'on décrit succinctement ci-dessous.
L'interface est classique, avec un menu imagé à gauche et le résultat de l'action de ce
menu sur la droite, comme le menu « préférences » du navigateur firefox.
11 http://www.jopendocument.org/
12 http://api.itextpdf.com/itext/com/itextpdf/text/pdf/interfaces/PdfXConformance.html
13 http://www.pdflib.com/
Série Spécifications
Document SPF1201
10/13
scheme SEPAmail – au service du réseau des adhérents SEPAmail
12.1. L'ÉCRAN RUBIS
Cet écran permet l'assistant en trois étapes, de la récupération des données jusqu'à
l'envoi.
La colonne de gauche permet la sélection des lignes. Un système de pagination est à
proposer.
Les fichiers pdf doivent être cliquables.
12.2. L'ÉCRAN PARAMÉTRAGE
Cet écran permet le paramétrage de l'application. Le bouton « paramétrage avancé »
active les paramètres non accessibles par défaut.
12.3. L'ÉCRAN AIDE
Cet écran permet l'affichage de l'aide.
Série Spécifications
Document SPF1201
11/13
scheme SEPAmail – au service du réseau des adhérents SEPAmail
13. LES
LIVRABLES
Les livrables confiés à la maîtrise d’œuvre par la maîtrise d'ouvrage sont, en sus de
cette spécification :
•
une base de donnée de test
•
trois gabarits de test : la demande de paiement, la missive SEPAmail RUBIS, le
récépissé d'envoi
•
la spécification des méta-données à inclure dans chacun des fichiers pdf (issue
du guide SEPAmail de l'entreprise et de l'éditeur)
Les livrables attendus de la part de la maîtrise d’œuvre sont :
•
L'application directement installable pour une plate-forme windows, linux et
macOs.
•
Les sources de l'application
•
Le texte de licence avec la mention de toutes les librairies utilisées et leurs
licences respectives.
•
Un fichier readme expliquant rapidement comment installer l'application sur
chacune des plates-formes
14.
LA QUALIFICATION
La qualification des livrables sera réalisée par le maître d'ouvrage désigné dans le
contrat commercial ou toute personne qu'il aura déléguée à cette qualification. Elle
sera réalisée en autant de fois que nécessaire pour permettre un résultat conforme à
ces spécifications.
Le maître d'ouvrage mettra à disposition des parties un outils de suivi des anomalies en
ligne. C'est cet outil qui fera référence entre la maîtrise d'ouvrage et la maîtrise
d’œuvre, cette dernière s'obligeant à utiliser cet outil pour confirmer les anomalies et
commenter leur correction, jusqu'à signature du bon de livraison finale de l'application
Série Spécifications
Document SPF1201
12/13
scheme SEPAmail – au service du réseau des adhérents SEPAmail
pour mise en production.
15. ÉVOLUTIONS
POUR VERSIONS ULTÉRIEURES
Nous listons ci-dessous des évolutions envisagées dans le cadre des spécifications et
repoussées à des versions ultérieures :
•
multi-utilisateurs avec authentification et gestion de profil agent et
administrateur
•
protection du mot de passe de la liaison jdbc
•
implémentation du web-service SEPAmail directement avec le SMILE
•
chargement des données brutes sans liaison à l'ERP
•
sauvegarde/chargement de la sélection d'un jeu de données
Série Spécifications
Document SPF1201
13/13
scheme SEPAmail – au service du réseau des adhérents SEPAmail