Zum Hauptinhalt springen
ABBYY FlexiLayout Studio verfügt über mehrere spezielle Funktionen für die Entwicklung zusätzlicher FlexiLayouts für Rechnungsprojekte:
  • Sie können die Positionen von Elementen relativ zu den Regionen von Feldern festlegen, die erkannt wurden, als das Haupt-FlexiLayout aus dem Rechnungsprojekt angewendet wurde.
  • Bezeichner von Vendors und Geschäftsbereichen können in Anfragen an den Datensatz der Dokumentdefinition verwendet werden.
  • Listen mit Schlüsselwörtern und anderen Parametern eines FlexiLayouts können in eine XML-Datei exportiert werden, sodass Sie sie bearbeiten können, ohne das FlexiLayout oder die Dokumentdefinition selbst zu bearbeiten.

Zusätzliches FlexiLayout erstellen

1

Öffnen Sie einen Batch in FlexiCapture

Öffnen Sie einen Batch mit erkannten Rechnungen in FlexiCapture.
2

Erstellen Sie ein Projekt in FlexiLayout Studio

Erstellen Sie ein neues Projekt in ABBYY FlexiLayout Studio. Wählen Sie im Hauptmenü Tools → Export Batch to FlexiLayout Studio → Create New FlexiLayout Studio Project… aus.
Dieser Befehl ist nur für FlexiCapture-Projekte verfügbar, die auf Ihrem Computer gespeichert sind. Wenn Sie die Distributed-Version von FlexiCapture verwenden und das Projekt auf dem Server gespeichert ist, laden Sie es zunächst auf Ihren Computer herunter, indem Sie im Menü Project auf Export Project… klicken.
Das Suffix des ABBYY FlexiLayout-Studio-Projekts gibt die Version der Dokumentdefinition zum Zeitpunkt der Projekterstellung an.
Das ABBYY FlexiLayout-Studio-Projekt, das Sie gerade erstellt haben, enthält alle Dokumente aus dem FlexiCapture-Batch sowie die bei der Erkennung ermittelten Feldregionen in Form eines Referenzlayouts.

So fügen Sie einem zusätzlichen FlexiLayout ein Feld hinzu

Um einem zusätzlichen FlexiLayout ein Feld hinzuzufügen, müssen Sie einen Block für dieses Feld erstellen und dessen search element angeben. Felder in der Dokumentdefinition müssen eindeutige Namen haben. Das bedeutet:
  • Um die Suchlogik für ein Feld zu beschreiben, müssen Sie einen Block mit einem eindeutigen Namen erstellen.
  • Um die Suchlogik für ein Feld zu ändern, das bereits in der Dokumentdefinition vorhanden ist, müssen Sie einen Block mit demselben Namen erstellen.

Seiten zu einem zusätzlichen FlexiLayout hinzufügen

Wenn Sie die Änderungen, die Sie an einem zusätzlichen FlexiLayout vorgenommen haben, mit neuen Bildern testen möchten, können Sie Ihre FlexiCapture-Batches in ein vorhandenes Rechnungsprojekt in ABBYY FlexiLayout Studio exportieren. Um Ihre Batches zu exportieren, klicken Sie auf Tools → Export Batch to FlexiLayout Studio → Add to Existing FlexiLayout Studio Project….
  • Sie können FlexiCapture-Batches nur in ABBYY FlexiLayout Studio-Projekte exportieren, die über Tools → Export Batch to FlexiLayout Studio → Create New FlexiLayout Studio Project… erstellt wurden.
  • Wenn Sie einen FlexiCapture-Batch nach ABBYY FlexiLayout Studio exportieren, wird dort für diesen Batch ein neuer Batch erstellt.
  • Wenn die neue Document Definition mehr Felder enthält als die Document Definition, die für das ABBYY FlexiLayout Studio-Projekt verwendet wurde, wird im Exportprotokoll für jedes zusätzliche Feld eine Warnung ausgegeben.
  • Damit das Programm die zusätzlichen Felder exportiert, fügen Sie für jedes zusätzliche Feld im Knoten CommonBlockRegions des Baums SearchElements einen Block mit demselben Namen hinzu.

Anfragen an Datensätze aus der Dokumentdefinition senden

Eine Beispielanfrage finden Sie im Element DataSetRequestSample. Dieses Element ist standardmäßig deaktiviert.

Funktionen

Syntax:
  • Der Pfad zur Dokumentdefinition und der Name des Datensatzes werden verwendet, um auf den Datensatz zuzugreifen, wenn in ABBYY FlexiLayout Studio mit einem FlexiLayout gearbeitet wird.
  • Nachdem ein kompiliertes FlexiLayout in FlexiCapture zu einer Dokumentdefinition hinzugefügt wurde, wird für den Zugriff auf den Datensatz nur noch dessen Name verwendet.
  • Format von connectionString:
    Hinweis: Trennen Sie die Bestandteile des Pfads durch doppelte Backslashes (\\).
  • searchFields — Array mit den Namen der Spalten, aus denen Werte abgerufen werden sollen.
  • searchCriteria — Array von Spalte-Eintrag-Paaren; wenn leer, werden alle Werte zurückgegeben.
    • Wenn eine Abfrage mehrere Werte für ein Feld enthält, verwenden Sie den Operator OR.
    • Wenn eine Abfrage mehrere Werte enthält, die jeweils nur einem Feld entsprechen, verwenden Sie den Operator AND.
    • Wenn eine Abfrage mehrere Werte für ein Feld sowie Werte für mehrere Felder enthält, verwenden Sie den Operator OR, um mehrere Werte für ein Feld zu unterscheiden, und den Operator AND, um die Werte verschiedener Felder zu verknüpfen.

In einem Bild nach Einträgen aus einer Spalte in einer externen Datenbank suchen

1

Die Spalten auflisten

Verwenden Sie FieldNamesOfFCDataset, um eine nach den Indexnummern aufsteigend sortierte Liste der Spalten abzurufen.
2

Den Spaltenindex ermitteln

Ermitteln Sie die Indexnummer der Spalte, aus der Sie Daten suchen möchten.
3

Den Filter erstellen

Erstellen Sie ein array von Bedingungen, um Daten aus dem Datensatz zu filtern.
4

Die Suche ausführen

Übergeben Sie die Indexnummer der Spalte und die Filterbedingungen an SearchTextFromFCDataSet (oder an RegularExpressionFromFCDataSet, wenn Sie reguläre Ausdrücke verwenden möchten).
Dieser Code wird automatisch generiert, wenn ein erkannter Batch aus FlexiCapture exportiert wird.

In einem Bild nach Einträgen aus mehreren Spalten suchen

Da die Suchparameter bei jedem Aufruf der Funktion SearchTextFromFCDataSet ersetzt werden, hat ein wiederholter Aufruf keine Wirkung. Als Workaround können Sie strings aus einer externen Datenbank abrufen und an die Funktion SearchText übergeben. Diese fügt jeden string zu den vorhandenen Suchparametern hinzu, anstatt sie zu ersetzen.
1

Die Spalten auflisten

Erstellen Sie ein array mit den Namen der Spalten, in denen Sie Daten suchen möchten.
2

Den Filter erstellen

Erstellen Sie ein array mit Filterbedingungen, um Daten aus dem Datensatz zu filtern.
3

Die Einträge zählen

Ermitteln Sie mit der Funktion RecordCountOfFCDataset die Anzahl der zurückgegebenen Einträge.
4

Die Abfrage vorbereiten

Bereiten Sie die Abfragedaten mit der Funktion PrepareRecordsetOfFCDataset vor.
5

Jeden Datensatz lesen

Gehen Sie alle Datensätze durch und rufen Sie für jeden Datensatz mit der Methode RecordOfFCDataset das array ab.
6

Die Werte an SearchText übergeben

Übergeben Sie den Wert jedes Elements im array an die Funktion SearchText.

Zusätzliche Hinweise zu komplexen Spalten

  • Die Funktion FieldNamesOfFCDataset gibt ein Array zurück, das den Namen der komplexen Spalte mehrfach enthält. Die Anzahl der Vorkommen entspricht der Anzahl der Spalteninstanzen in einer kodierten externen Datenbank. Beispiel: {VendorId, VATID, Name, Name, Name, City}. In diesem Fall enthält die externe Datenbank drei Spalten für die eine komplexe Spalte Name im Datensatz.
  • Wenn SearchCriteria eine Bedingung für ein Feld enthält, das einer komplexen Spalte entspricht (wie im obigen Beispiel), wird diese Bedingung verwendet, um alle diese Spalteninstanzen zu überprüfen.
  • Wenn searchFields eine Bedingung für ein Feld enthält, das einer komplexen Spalte entspricht (wie im obigen Beispiel), enthält das Ergebnis ein Array mit den Werten aus jeder Spalteninstanz. Wenn Sie zum Beispiel für {VendorId, VATID, Name, Name, Name, City} Folgendes anfordern:
  • Sie können eine Liste der zurückgegebenen Spalten abrufen, indem Sie das Array searchFields an die Funktion FieldNamesOfFCDataset übergeben.

Eine Anfrage an eine XML-Datei mit FlexiLayout-Einstellungen senden

Sie können mithilfe von zwei Standardfunktionen, die in der Dokumentation zu ABBYY FlexiLayout Studio beschrieben sind, Anfragen an eine XML-Datei mit FlexiLayout-Einstellungen senden:
Um diese Datei zu verwenden, wenn Sie in ABBYY FlexiLayout Studio an einem FlexiLayout arbeiten, legen Sie sie im Projektordner oder in einem seiner Unterordner ab. Der Pfad zur Datei ist relativ zur Projektdatei von ABBYY FlexiLayout Studio. Wenn Sie ein kompiliertes FlexiLayout in FlexiCapture in eine Dokumentdefinition laden und es als zusätzliches FlexiLayout verwenden, wird die XML-Datei im Ordner Templates abgelegt, und Sie können sie bearbeiten. Wenn das FlexiLayout angewendet wird, verwaltet das Programm den Zugriff auf diese Datei automatisch.