Zum Hauptinhalt springen
Um ein Szenario für die Verarbeitung eines einzelnen Dokuments zu implementieren, erstellen Sie die folgenden Funktionen: SendForProcessing WaitFirstVerificationOrProcessed FetchingCapturedData SingleDocumentBatchIsProcessed

SendForProcessing

Die Funktion SendForProcessing sendet eine Datei zur Recognition an FC und gibt einen Batch-Bezeichner zurück. Eingabeparameter:
NameJava-TypBeschreibung
fileNameStringName der Datei
base64ContentStringInhalt der Datei im Base64-Format
Typ des Ausgabeparameters: int (Batch-Bezeichner). Ausgelöste Ausnahmen: Exception. Java-Quellcode:
// FlexiCapture Web Services API-Client erstellen. 
// Bitte FlexiCapture Application Server-Adresse, Mandantenname, Benutzername und Kennwort angeben. 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // FlexiCapture-Projekt-API abrufen. Bitte einen Projektnamen angeben.
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(singleFileProjectName)) {
    // FlexiCapture-Batch und -Dokument erstellen.
    Batch batch = new Batch();
    Document doc = new Document();
    // Batch zum FlexiCapture-Projekt hinzufügen.
    int batchId = projApi.getBatches().add(batch);
    // FlexiCapture-Batch-API abrufen. Bitte einen Batch-Bezeichner angeben.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Dateiinstanz erstellen. 
    File file = new File(fileName, Base64.getDecoder().decode(base64Content.replace("\n", "").replace("\r", "")));
    // Dokument zum FlexiCapture-Batch hinzufügen.
    // Die Datei ist der Dokumentinhalt.
    int docId = batchApi.getDocuments().add(doc, file);
    // FlexiCapture-Batch zur Verarbeitung starten.
    batchApi.start();
    //Batch-Bezeichner zurückgeben.
    return batchId;
  }
} catch(Exception ex){
  // Fehlermeldungen verketten. 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// Verkettete Meldung auslösen.
throw new Exception(message);
}

WaitFirstVerificationOrProcessed

Die Funktion WaitFirstVerificationOrProcessed gibt eine Verifizierungs-URL zurück. Wenn das Dokument die Stufe der Verifizierung noch nicht erreicht hat, wird ein leerer String zurückgegeben. Eingabeparameter:
NameJava-TypBeschreibung
batchIdintBatch-Bezeichner
Ausgabeparametertyp: String (Verifizierungs-URL). Ausgelöste Ausnahmen: Exception. Java-Quellcode:
// FlexiCapture Web Services API-Client erstellen. 
// Bitte geben Sie hier die Adresse des FlexiCapture Application Servers, den Tenant-Namen, den Benutzernamen und das Kennwort an. 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // FlexiCapture-Projekt-API abrufen. Bitte geben Sie hier einen Projektnamen an.
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(singleFileProjectName)) {
    // FlexiCapture-Batch-API abrufen. Bitte geben Sie hier einen Batch-Bezeichner an.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Warten, bis der Batch in der Verifizierungsstufe angehalten wird, und FlexiCapture-Dokument abrufen.
    Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
    // Prüfen, ob sich der Batch in der Verifizierungsstufe befindet.
    if (doc.getStageType() == ProcessingStageType.Verification) {
      // Erste Verifizierungs-URL für den FlexiCapture-Batch zurückgeben.
      return batchApi.getVerificationUrls(WebPageMode.Mini).get(0).toString();
    } 
    //Leeren String zurückgeben, wenn der Batch ohne Verifizierungsstufe verarbeitet wurde.
    return "";
  }
}catch(Exception ex){
  // Fehlermeldungen verketten. 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// Verkettete Meldung auslösen.
throw new Exception(message);
}

FetchingCapturedData

Die Funktion FetchingCapturedData gibt eine Liste von Ausgabefeldern im JSON-Format zurück. Eingabeparameter:
NameJava-TypDescription
batchIdintBatch-Bezeichner
Typ des Ausgabeparameters: String (Dokumentfelder im JSON-Format). Ausgelöste Ausnahmen: Exception. Java-Quellcode:
// FlexiCapture Web Services API-Client erstellen. 
// Bitte geben Sie hier die Adresse des FlexiCapture Application Servers, den Tenant-Namen, den Benutzernamen und das Kennwort an. 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // FlexiCapture-Projekt-API abrufen. Bitte geben Sie hier einen Projektnamen an.
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(singleFileProjectName)) {
    // FlexiCapture-Batch-API abrufen. Bitte geben Sie hier einen Batch-Bezeichner an.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Warten, bis der Batch verarbeitet wurde, und FlexiCapture-Dokument abrufen.
    Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
    // FlexiCapture-Dokument-API abrufen. Bitte geben Sie hier einen Dokument-Bezeichner an.
    DocumentApi docApi = batchApi.getDocuments().getDocumentApi(doc.getId());
    // Erfasste Felder als JSON-String zurückgeben.
    return docApi.getExportedFields();
  }
}catch(Exception ex){
  // Fehlermeldungen verketten. 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// Verkettete Meldung auslösen.
throw new Exception(message);
}

SingleDocumentBatchIsProcessed

Die Funktion SingleDocumentBatchIsProcessed gibt einen Wert zurück, der angibt, ob ein Batch verarbeitet wurde. Eingabeparameter:
NameJava-TypBeschreibung
batchIdintBatch-Bezeichner
Typ des Ausgabeparameters: boolean (true, wenn sich das Dokument im Status Processed befindet, andernfalls false). Ausgelöste Ausnahmen: Exception. Java-Quellcode:
// FlexiCapture Web Services API-Client erstellen. 
// Bitte FlexiCapture Application Server-Adresse, Mandantennamen, Benutzernamen und Kennwort angeben. 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // FlexiCapture-Projekt-API abrufen. Bitte einen Projektnamen angeben.
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(singleFileProjectName)) {
    // FlexiCapture-Batch-API abrufen. Bitte einen Batch-Bezeichner angeben.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Warten, bis der Batch in der Verifizierungs- oder Verarbeitungsstufe angehalten wird, und das FlexiCapture-Dokument abrufen.
    Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
    // Prüfen, ob die Batch-Stufe Processed ist.
    return doc.getStageType() == ProcessingStageType.Processed;    
  }
}catch(Exception ex){
  // Fehlermeldungen verketten. 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// Verkettete Meldung auslösen.
throw new Exception(message);
}