Passer au contenu principal

Bases de données compatibles ODBC

FCFORINVOICES vous permet de connecter un jeu de données à une base de données compatible ODBC (voir Utilisation des bases de données de fournisseurs et d’unités commerciales), de charger les données une seule fois ou de mettre à jour un jeu de données avec des données provenant d’une base de données externe à intervalles réguliers (voir Mise à jour des jeux de données). Votre première étape devrait donc consister à déployer les données externes dans une base de données compatible ODBC, telle que Microsoft Access, Microsoft SQL Server ou Oracle.

Élimination des enregistrements en double dans la base de données externe

Il est important de déterminer le champ de la base de données externe des fournisseurs (ou des unités commerciales) dont la valeur doit être obtenue à la suite de la détection du fournisseur (ou de l’unité commerciale) sur une facture. Ce champ (ou cet ensemble de champs) doit devenir la clé unique du jeu de données. La clé unique d’un jeu de données d’unités commerciales est le champ Id (voir le jeu de données BusinessUnits). Du point de vue de l’utilisateur, ce champ est le résultat de la détection, par FCFORINVOICES, de l’unité commerciale à laquelle la facture donnée a été adressée. La clé unique d’un jeu de données de fournisseurs doit être la valeur transmise au système d’information externe à la suite de la détection, par FCFORINVOICES, du fournisseur qui a émis la facture donnée. Si une seule table de fournisseurs est utilisée, la clé unique doit être associée au champ Id du jeu de données. Cette valeur sera transmise au système d’information externe lorsque le fournisseur sera détecté dans la facture. Si vous prévoyez de traiter, dans un même projet, des factures destinées à différentes unités commerciales de votre entreprise, chacune disposant de sa propre base de données de fournisseurs, vous devez associer la clé unique de chaque unité commerciale à la colonne BusinessUnitId du jeu de données Vendors, et la clé de chaque fournisseur à la colonne Id du jeu de données Vendors. Par conséquent, la clé unique de l’enregistrement fournisseur à transmettre au système d’information externe lorsque le fournisseur est détecté sera la paire de valeurs Id et BusinessUnitId (voir le jeu de données Vendors). Dans les explications qui suivent, nous ne considérerons que la détection des fournisseurs, car la situation est exactement la même dans le cas des unités commerciales. La clé unique d’un enregistrement doit correspondre à la combinaison unique de paramètres utilisés pour la détection du fournisseur. Très souvent, un système d’information externe considérera qu’un enregistrement fournisseur est unique en s’appuyant sur davantage de paramètres que ceux indiqués dans la facture et/ou utilisés pour la détection du fournisseur. Par exemple, un système d’information externe peut s’attendre à recevoir un identifiant MCN_USD si le fournisseur My Company Name Ltd. émet une facture en dollars américains, ou un identifiant MCN_EUR si la même société a émis une facture en euros. Même si la devise est indiquée dans la facture (et qu’il est possible de distinguer le cas où MCN_USD doit être renvoyé de celui où l’identifiant MCN_EUR doit être renvoyé), la devise n’est pas utilisée pour la détection du fournisseur. Par conséquent, le mécanisme de détection du fournisseur ne peut pas faire la distinction entre MCN_USD et MCN_EUR. Dans ce type de cas, créez un identifiant MCN, qui correspondra à la fois à MCN_USD et à MCN_EUR et qui sera renvoyé lorsque le fournisseur sera détecté. Ensuite, vous pouvez créer une règle dans la Document Definition qui choisira entre MCN_USD et MCN_EUR en fonction de la devise de la facture concernée. De manière générale, l’identifiant unique d’un enregistrement fournisseur doit correspondre à un ensemble unique de paramètres utilisés pour la détection du fournisseur, tels que le nom de la société, l’adresse de la société, les identifiants fiscaux (VATID, NationalVATID) et l’IBAN (voir le jeu de données Vendors). Ce n’est qu’à cette condition que le mécanisme de détection du fournisseur pourra sélectionner le bon enregistrement fournisseur pour une facture.
Ensuite, le programme peut capturer des champs supplémentaires et utiliser des règles dans la Document Definition pour affiner le résultat afin d’obtenir la valeur requise.
Si le même ensemble de paramètres (ou un ensemble proche, prêtant facilement à confusion) utilisé pour la détection du fournisseur correspond à plusieurs clés uniques, le programme ne pourra pas choisir une seule clé, la détection du fournisseur deviendra aléatoire et la qualité se dégradera. La raison est la suivante. Si le programme peut utiliser les données imprimées sur la facture pour détecter de manière fiable le fournisseur My Company Name, mais qu’il existe plusieurs enregistrements (MCN1, MCN2, … MCNN) dans le jeu de données correspondant aux données de la facture, le programme peut privilégier un autre enregistrement, qui correspond moins bien aux données de la facture mais qui ne mène pas à autant d’enregistrements. Cela finira par entraîner une détection incorrecte du fournisseur. Par conséquent, il est très important d’éliminer les enregistrements en double dans la base de données externe et de disposer d’une colonne dans la base de données externe qui ait une valeur unique pour chaque ensemble unique de valeurs des champs de l’enregistrement utilisés pour la détection du fournisseur. Lors de la connexion au jeu de données, les lignes ayant des valeurs identiques dans la colonne associée à la clé unique du jeu de données seront automatiquement fusionnées en un seul enregistrement dans le jeu de données.

Colonnes à valeurs multiples dans un jeu de données

Un jeu de données peut stocker plusieurs valeurs pour une même colonne logique d’un enregistrement d’entreprise. Il est nécessaire de stocker plusieurs valeurs, car certains paramètres d’entreprise, tels que le nom de l’entreprise, la rue, etc., peuvent varier d’une facture à l’autre (par ex. on peut avoir “My Company Name” et “MCN Ltd.”). Or, pour détecter l’entreprise de manière fiable, le texte du jeu de données doit correspondre étroitement au texte capturé sur l’image d’une facture. En outre, une entreprise peut avoir plusieurs comptes bancaires ou d’autres attributs.
Notez que les colonnes à valeurs multiples dans les jeux de données doivent être utilisées pour stocker la même information écrite de différentes façons. Par exemple, “Karl Marx Street” et “K. Marx str.” sont deux façons différentes d’écrire la même adresse. En revanche, des succursales d’une même entreprise à Londres et à Berlin doivent correspondre à deux enregistrements distincts.
Les valeurs des colonnes à valeurs multiples peuvent provenir d’une base de données externe (par ex. un tableau de fournisseurs peut contenir de une à cinq coordonnées bancaires pour chaque entreprise), ou elles peuvent être ajoutées par l’utilisateur lors de la capture de données (par ex. un opérateur peut ajouter au jeu de données une variante couramment utilisée d’un nom d’entreprise qui n’est pas connue de la base de données externe). les jeux de données utilisent la dénormalisation des colonnes, c’est-à-dire qu’ils stockent les données sous la forme suivante :
Clé unique du jeu de données*Name1Name2NameN
1My Company NameMCN Ltd.<empty value>
2The Second Company, Inc.S-Company<empty value>
Pour un champ logique d’un enregistrement, par exemple Name, plusieurs colonnes sont créées dans le jeu de données pour stocker toutes les valeurs possibles de ce champ logique. Ainsi, Name peut être qualifiée de “colonne complexe”. Lors de la connexion d’un tableau (ou d’une vue) provenant d’une base de données externe, vous pouvez utiliser la dénormalisation des colonnes comme décrit ci-dessus, ou la dénormalisation des lignes, plus courante. Dans ce dernier cas, les lignes qui doivent être fusionnées dans le jeu de données en tant que paramètres d’un même enregistrement doivent avoir la même valeur dans la colonne correspondant à la clé unique du jeu de données. Par exemple :
Colonne correspondant à la clé unique dans le jeu de données*Name
1My Company Name
1MCN Ltd.
N<empty value>
2The Second Company, Inc.
2S-Company
N<empty value>
*La clé unique d’un jeu de données BusinessUnits est le champ Id. La clé unique d’un jeu de données Vendors est soit le champ Id, soit la paire de champs Id et BusinessUnitId, selon les paramètres (voir jeu de données Vendors)