> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Exemple de script de recherche dans une base de données

> Exemple de script d’action personnalisée web qui recherche dans un jeu de données dans FlexiCapture Web Verification Station et copie la valeur trouvée dans le champ actuel.

Cet exemple de script recherche dans un jeu de données depuis Web Verification Station et copie la valeur trouvée dans le champ actuel.

<div id="create-a-data-set">
  ## Créer un jeu de données
</div>

Avant de configurer le script, créez un jeu de données pour qu’il puisse y effectuer des recherches :

<Steps>
  <Step title="Ouvrir les définitions de document">
    Ouvrez Project Setup Station, puis cliquez sur **Project → Document Definitions**.
  </Step>

  <Step title="Ajouter un jeu de données">
    Cliquez sur **Document Definition → Document Definition Properties**, ouvrez l’onglet **Jeux de données**, puis cliquez sur **Add**.
  </Step>

  <Step title="Créer des enregistrements">
    Créez un jeu de données, ajoutez quelques enregistrements, puis cliquez sur **Close**.
  </Step>
</Steps>

Ajoutez ce script comme script utilisateur pour Web Verification Station. Pour plus d’informations, voir [Scripts utilisateur pour Web Verification Station](/fr/flexi-capture/appendix/scripts/web-custom-action-script).

<div id="sample-script">
  ## Exemple de script
</div>

```javascript theme={null}
//Nom du DataSet
var dbCacheName = 'DataSet1';
//Champ dans le dataset, utilisé pour remplacer la valeur du champ actuel
var fieldNameInCache = 'Field2';
var self = this;
var styles = {
    display: 'block',
    position: 'absolute',
    top: '0px',
    bottom: '0px',
    left: '0px',
    right: '0px',
    width: '100%',
    height: '100%',
    border: '0',
    overflow: 'hidden',
    'overflow-x': 'hidden',
    'overflow-y': 'hidden',
    'z-index': '10000'
}
var newValueToInsert = '';
// Définit les styles de l'iframe
setStyles(
    styles,
    function() {
        //Balisage de la boîte de dialogue
        var windowMarkup = "<div class='frame'><div class='searchField'><input id='searchValue' /><button id='searchButton'>Search</button></div><div id='recordspanel'><table id='resultspreview'></table><div id='norecord'>No records found</div></div><div class='buttonsfield'><button id='confirm'>Ok</button><button id='cancel'>Cancel</button></div></div>";
        //Styles de la boîte de dialogue
        var css = "<style>body{width:100vw;height:100vh;background:rgba(0,0,0,0.1);margin:0;padding:0;display:flex;align-items:center;justify-content:center;}.frame{width:400px;max-height:80vh;background:white;min-height:200px;padding:50px;}#norecord{display:none;}#searchValue{width:calc(100% - 60px);}#cancel{margin-left:20px;}.buttonsfield{display:flex;justify-content:flex-end;height:25px;}.bolded{font-weight:bold;}button{width:60px;}#confirm{display:none;}#recordspanel{min-height:145px;padding: 10px 0;}#searchfield{height:30px;}</style>";
        //Définition des styles
        $('head').append(css);
        //Crée le DOM dans l'iframe
        $("body").append(windowMarkup);
        // Clic sur le bouton de recherche
        $('#searchButton').click(function () {
            //Rechercher dans le Dictionary
            getDict(
                {
                    cacheName: dbCacheName, //nom du dataset
                    filters: [{ FieldName: "", FieldValue: $('#searchValue').val() }] //champs à rechercher
                },
                function (result) {
                    //Lignes d'enregistrements du dataset
                    var records = result.detail.result;
                    //Description de la première ligne
                    var firstRecord = records[0];
                    //masquer le 'tableau' et le bouton 'ok' si aucun résultat n'est trouvé
                    if (!firstRecord && !firstRecord.BoldMask){
                        $('#resultspreview').hide();
                        $('#norecord').show();
                        $('#confirm').hide();
                    } else {
                        $('#resultspreview').show();
                        $('#confirm').show();
                        $('#norecord').hide();
                        $('#resultspreview').html('');
                        firstRecord.forEach(function (recordData) {
                            if (fieldNameInCache === recordData.FieldName) {
                                newValueToInsert = recordData.FieldValue;
                            }
                            $('#resultspreview')
                                .append('<tr class="' +
                                    (fieldNameInCache === recordData.FieldName ? 'bolded' : '') +
                                    '"><td>' +
                                    recordData.FieldName +
                                    '</td><td>' +
                                    recordData.FieldValue +
                                    '</td></tr>');
                        });
                    }
                });
        });
        //Au clic sur le bouton 'ok'
        $('#confirm').click(function () {
            if (newValueToInsert) {
                //Définir la valeur du champ actuel
                setCurrentFieldValue(newValueToInsert);
                //Enregistrer et fermer l'iframe
                save();
            }
        });
        //Au clic sur le bouton 'cancel'
        $('#cancel').click(function () {
            cancel();
        });
    });
```

Vous trouverez également ce script d’exemple à l’adresse `https://<ApplicationServer>/FlexiCapture12/Verification/Scripts/CustomScripts/customActionLookup.js`, où `<ApplicationServer>` correspond au nom de l’ordinateur sur lequel le serveur d’applications est installé.

Remplacez les valeurs dans ces lignes :

* `var dbCacheName = 'DataSet1';` — `DataSet1` est le nom du jeu de données que vous avez créé.
* `var fieldNameInCache = 'Field2';` — `Field2` est le nom du champ du jeu de données qui contient la valeur à copier.
