Règle de contrôle de base de données
Le contrôle des champs d'une base de données implique la comparaison entre la valeur reconnue pour un champ et les valeurs de la table contenue dans la base de données. Ce contrôle est considéré satisfaisant si la valeur du champ est trouvée dans les valeurs contenues dans la base de données. Dans le cas contraire, un message d'erreur de règle est affiché.
Vous pouvez utiliser cette règle pour vérifier s'il existe une entrée pour une valeur capturée dans votre base de données, réaliser des recherches d'analogie dans votre base de données s'il y a des erreurs ou fautes de frappe dans les champs, remplacer une valeur de champ par son enregistrement correspondant dans la base de données, et copier certaines valeurs de la base de données dans les champs de document.
Créer une règle de vérification de base de données
Pour créer une règle de vérification de base de données :
- Ouvrez la boîte de dialogue Propriétés du champ (option Propriétés... du menu contextuel) ou la boîte de dialogue Propriétés de la définition de document (option Définition de document → Propriétés de la définition de document... du menu de l'éditeur de définitions de documents).
- Accédez à l'onglet Règles.
- Cliquez sur le bouton Nouvelle règle....
- Dans la liste de types de règles, sélectionnez Vérification de base de données et cliquez sur OK.
- Saisissez le nom de la règle.
- Désactivez l'option Afficher le nom de règle dans le message destiné au vérificateur si nécessaire. Si cette option est désactivée, le message d'erreur sera affiché en tant que « message d'erreur » au lieu de « nom de règle : message d'erreur ».
- Saisissez la gravité de la règle
- Si nécessaire, spécifiez les conditions sous lesquelles la règle doit être appliquée (par défaut, une règle est appliquée sans condition). Voir Conditions d'application des règles pour plus d'informations.
- Spécifiez les balises pour la règle.
- Désactivez l'option Règle activée si nécessaire. La règle sera créée mais ne sera pas appliquée jusqu'à ce que cette option soit activée par un utilisateur.
- Cliquez sur Suivant >.
- Configurez une connexion vers la source de données en spécifiant son type et ses paramètres de connexion.
Les sources de données suivantes sont prises en charge : - Base de données externe (simple) : la connexion à la base de données externe est configurée pour chaque règle de la Définition de document.
- Base de données externe (variable) : la connexion à la base de données externe est configurée uniquement dans les propriétés du projet (Propriétés du projet → Variables d'environnement). Ce type de source de données peut être utilisé simultanément pour plusieurs règles. Si vous utilisez une base de données différente pour le projet, il vous faudra modifier les paramètres de connexion seulement dans les propriétés du projet.
- Jeu de données : la connexion au Jeu de données est configurée par l"utilisateur dans les propriétés de la Définition de document (Propriétés de la Définition de document → Jeux de données).
Astuce. Nous vous recommandons de sélectionner ceci comme fournisseur de Bdd OLE : - Lorsque vous exportez en SQL, préférez un fournisseur de Bdd OLE pour les pilotes ODBC.
- Lorsque vous exportez vers Oracle, préférez un fournisseur Oracle pour Bdd OLE (Pour obtenir des détails, consultez la section Exportation vers une base de données Oracle).
Remarque : Pour éviter d'entrer un mot de passe chaque fois que vous connectez à la base de données, sélectionnez l'option Autoriser l'enregistrement de mot de passe ou configurez la base de données afin qu'elle ne nécessite aucun mot de passe pour s'y connecter (par exemple, vous pouvez utiliser l'authentification Windows). - Sélectionnez le schéma et le tableau de la base de données requis dans les listes déroulantes, ou spécifiez le Jeu de données requis si vous configurez une connexion à une source de type Jeu de données.
Remarque : Si Rechercher dans tous les schémas est sélectionné en tant que système et si la table spécifiée n'est pas incluse dans le système par défaut, le message d'erreur suivant apparaîtra :
[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name K1. [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared.
Si ce message d'erreur apparaît, le nom du système contenant la table doit être spécifié explicitement. - Sélectionnez l'option Ne pas vérifier que tous les champs sont vides pour exclure les vérifications de règle s'il n'y a aucune valeur dans les champs impliqués dans la comparaison. La validation de règle sera ainsi accélérée.
- Établissez des liens entre les champs de la Définition de document et les champs de la base de données (voir « Définir les champs à comparer » ci-dessous).
- Utilisez les boutons Ajouter..., Éditer... et Supprimer pour ajouter, modifier ou supprimer des liaisons entre les champs.
- Si vous avez sélectionné un Ensemble de données comme source, vous pouvez maintenant sélectionner le champ qui agira comme clé primaire à partir de la liste déroulante Champ dans lequel enregistrer l'ID d'enregistrement .
Important !Il est possible d'accéder directement à un jeu de données à partir d'un formulaire de données via un contrôle de type « Bouton ». Pour ajouter un bouton au formulaire de données, sélectionnez Formulaire → Insérer un contrôle → Bouton dans l'éditeur de définition de documents. Quand vous ajoutez un bouton dans le formulaire de données, la boîte de dialogue Propriétés s'ouvre. Cliquez sur l'onglet Format, sélectionnez Recherche dans la base de données dans la liste déroulante Type, puis sélectionnez une règle de vérification de la base de données créée précédemment.
Définir les champs à comparer
Dans le groupe Liaisons des champs de l'onglet Paramètres de règle, vous pouvez voir les comparaisons de champ déjà définies. Vous pouvez configurer une règle de vérification de base de données pour un seul champ ou pour un jeu de champs.
Lorsque vous ajoutez ou modifiez un champ à comparer, vous devez spécifier les éléments suivants :
- Champ du document : le champ de la Définition de document qui doit être comparé avec un champ de base de données
- Champ de base de données : le champ de la base de données qui doit être comparé au champ de document
- Recherche : spécifie le type de comparaison :
- Exact La valeur du champ de document doit correspondre exactement à la valeur dans la base de données (notez toutefois que les recherches ne sont pas sensibles à la casse).
- Approximative La valeur du champ de document peut correspondre partiellement à la valeur de la base de données. Seuls les champs de texte peuvent être utilisés dans ce type de comparaison.
Quelques remarques sur les recherches partielles
Les options suivantes supplémentaires sont disponibles :
- Ne pas rechercher si le champ est vide si le champ est vide, sa valeur ne sera pas comparée aux valeurs de la base de données.
- Entrer une valeur à partir de la base de données : si une recherche par analogie trouve une valeur correspondante dans la base de données, cette valeur peut être saisie automatiquement dans le champ si :
- les valeurs dans le champ et dans la base de données sont différentes
- Le champ est vide.
Remarque : En cas de recherche exacte, sélectionner l'option Entrer une valeur à partir de la base de données est illogique, car les deux valeurs seront identiques. - Autoriser les valeurs vides dans la base de données : selon les résultats de la vérification de la base de données et d'autres paramètres, cette option aura la signification suivante :
- si le champ de la base de données est vide et que le champ du document n'est pas vide, les valeurs du champ et de la base de données sont considérées comme identiques
- si le champ de la base de données est vide, que le champ du document n'est pas vide et que Remplir à partir de la base de données est sélectionné, la valeur de la base de données ne sera pas saisie dans le champ.
Touches principales dans les jeux de données
Si votre projet inclut un Jeu de données (une copie locale d'un champ de données externe) à partir duquel vous voulez obtenir des valeurs de champ lorsqu'elles sont traitées, vous pouvez utiliser une règle de vérification de base de données pour spécifier un champ qui servira de touche principale (identificateur unique) d'un enregistrement dans le Jeu de données.
Si vous faites ceci, les données du formulaire de données seront similaires à celles du Jeu de données. Lorsque vous sélectionnez un enregistrement, tous les enregistrements sont renseignés par les valeurs du Jeu de données. Vous ne pourrez pas éditer de valeurs dans le formulaire de données. Si vous essayez, une boîte de dialogue s'affiche vous demandant d'effectuer l'une des actions suivantes :
- sélectionnez un autre enregistrement dans le Jeu de données
- éditez l'enregistrement existant
Vous pouvez ouvrir la boîte de dialogue pour ajouter ou éditer des enregistrements en cliquant avec le bouton droit sur un champ, puis en cliquant sur Modifier l'enregistrement de jeu de données ou Ajouter un enregistrement de jeu de données dans le menu de raccourcis.
Lorsque vous supprimez des données d'un champ renseigné en appuyant sur la touche Supprimer, les données de tous les autres champs en rapport avec la règle sont également supprimés.
La règle sera vérifiée à nouveau en appliquant vos modifications.
Comment fonctionnent les touches principales
- Tous les champs ciblés par la règle doivent avoir l'option Entrer une valeur à partir de la base de données activée, auquel cas, si le champ servant de touche principale contient une valeur, le programme ne recherchera pas de valeurs d'autres champs et les renseignera avec des valeurs de la base de données.
- Si le champ servant de touche principale ne contient aucune valeur, le programme examinera d'autres champs pour lesquels l'option Rechercher a été activée lorsque les champs devant être comparés ont été spécifiés dans la boîte de dialogue Lien du champ (voir Spécifier les champs à comparer ci-dessus). Si un enregistrement unique est trouvé pour ces champs, les valeurs de la base de données seront utilisées (comme dans 1. ci-dessus).
À présent, il suffit à l'utilisateur de décider d'accepter toutes les modifications ou de choisir un autre enregistrement dans le Jeu de données.
Les conditions suivantes doivent être remplies pour que la touche principale fonctionne :
- Un Ensemble de données est sélectionné comme source ;
- Une touche principale est spécifiée dans le Jeu de données, par ex. l'option Clé primaire a été activée pour un champ lorsque
- Le champ utilisé comme touche principale n'apparaît pas dans la liste Liaisons des champs sur l'onglet Paramètres de la règle.
La section Qu'est-ce qu'ABBYY FlexiCapture for Invoices contient plus d'informations sur les Jeux de données et décrit leur utilisation dans un projet en exemple.
Voir Connexion des bases de données d'entités commerciales et de fournisseurs.
Voir Recherche de fournisseurs et d'entités commerciales dans la base de données.
Faire une vérification de la base de données pour un jeu de champs
Dans ce cas, le programme recherchera dans la base de données une chaîne correspondante pour les valeurs d'un jeu de champs, chaque valeur dans le jeu de champs étant lié à différentes colonnes de la chaîne trouvée.
Considérez l'exemple suivant :
Associons les champs de document Fa, Fb et Fc avec les colonnes de la base de données Ta, Tb et Tc comme suit :
- La valeur du champ Fa correspond exactement à la valeur de Ta
- La valeur de Fb est une analogie partielle de la valeur de Tb
- Lorsque les conditions spécifiées sont satisfaites, la valeur du champ Tc est copié dans le champ Fc.
La vérification de la base de données sera réussie si le programme trouve une chaîne de base de données où la valeur de la colonne Ta correspond exactement à la valeur du champ Fa et que la valeur de la colonne Tb est une analogie partielle de la valeur du champ Fb. La valeur de la colonne Tc de cette chaîne sera copiée dans le champ Fc.
Si aucune chaîne n'est trouvée, la règle retournera une erreur, même si le programme trouve par exemple Ta = Fa et Tb = Fb dans différentes chaînes.
Remarque : Différentes combinaisons sont possibles : analogies exactes/partielles/mixtes, aucun remplissage automatique, nombre de champs non spécifié, etc.
12.04.2024 18:16:04