> ## 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.

# Beispielskript für die Datenbanksuche

> Beispielskript für eine benutzerdefinierte Web-Aktion, das einen Datensatz aus der FlexiCapture Web-Verifizierungsstation durchsucht und den gefundenen Wert in das aktuelle Feld kopiert.

Dieses Beispielskript durchsucht einen Datensatz aus der Web-Verifizierungsstation und kopiert den gefundenen Wert in das aktuelle Feld.

<div id="create-a-data-set">
  ## Einen Datensatz erstellen
</div>

Bevor Sie das Skript konfigurieren, erstellen Sie einen Datensatz, in dem gesucht wird:

<Steps>
  <Step title="Dokumentdefinitionen öffnen">
    Öffnen Sie die Project Setup Station und klicken Sie auf **Project → Dokumentdefinitionen**.
  </Step>

  <Step title="Einen Datensatz hinzufügen">
    Klicken Sie auf **Document Definition → Eigenschaften der Dokumentdefinition**, öffnen Sie die Registerkarte **Data Sets** und klicken Sie auf **Add**.
  </Step>

  <Step title="Datensätze erstellen">
    Erstellen Sie einen Datensatz, fügen Sie einige Datensätze hinzu und klicken Sie auf **Close**.
  </Step>
</Steps>

Sie fügen dieses Skript als Benutzerskript für die Web-Verifizierungsstation hinzu. Weitere Informationen finden Sie unter [Benutzerskripte für die Web-Verifizierungsstation](/de/flexi-capture/appendix/scripts/web-custom-action-script).

<div id="sample-script">
  ## Beispielskript
</div>

```javascript theme={null}
//DataSet-Name
var dbCacheName = 'DataSet1';
//Feld im Datensatz, wird verwendet, um den aktuellen Feldwert zu ersetzen
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 = '';
// Setzt iframe-Stile
setStyles(
    styles,
    function() {
        //Dialog-Markup
        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>";
        //Dialog-Stile
        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>";
        //Stile setzen
        $('head').append(css);
        //Erstellt DOM im iframe
        $("body").append(windowMarkup);
        // Klick auf Schaltfläche „Suchen"
        $('#searchButton').click(function () {
            //Im Wörterbuch nachschlagen
            getDict(
                {
                    cacheName: dbCacheName, //Datensatzname
                    filters: [{ FieldName: "", FieldValue: $('#searchValue').val() }] //zu durchsuchende Felder
                },
                function (result) {
                    //Datensatzzeilen aus dem Datensatz
                    var records = result.detail.result;
                    //Beschreibung der ersten Zeile
                    var firstRecord = records[0];
                    //„Tabelle" und „OK"-Schaltfläche ausblenden, wenn kein Ergebnis gefunden wird
                    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>');
                        });
                    }
                });
        });
        //Bei Klick auf Schaltfläche „OK"
        $('#confirm').click(function () {
            if (newValueToInsert) {
                //Wert für das aktuelle Feld setzen
                setCurrentFieldValue(newValueToInsert);
                //iframe speichern und schließen
                save();
            }
        });
        //Bei Klick auf Schaltfläche „Abbrechen"
        $('#cancel').click(function () {
            cancel();
        });
    });
```

Sie können dieses Beispielskript auch unter `https://<ApplicationServer>/FlexiCapture12/Verification/Scripts/CustomScripts/customActionLookup.js` finden. Dabei ist `<ApplicationServer>` der Name des Computers, auf dem der Application Server installiert ist.

Ersetzen Sie die Werte in diesen Zeilen:

* `var dbCacheName = 'DataSet1';` — `DataSet1` ist der Name des Datensatzes, den Sie erstellt haben.
* `var fieldNameInCache = 'Field2';` — `Field2` ist der Name des Felds im Datensatz, das den zu kopierenden Wert enthält.
