Saltar al contenido principal
Para implementar un escenario de procesamiento de un solo documento, cree las siguientes funciones: SendForProcessing WaitFirstVerificationOrProcessed FetchingCapturedData SingleDocumentBatchIsProcessed

SendForProcessing

La función SendForProcessing envía un archivo a FC para su reconocimiento y devuelve un identificador de lote. Parámetros de entrada:
NameTipo de JavaDescripción
fileNameStringNombre del archivo
base64ContentStringContenido del archivo en formato Base64
Tipo del parámetro de salida: int (identificador de lote). Excepciones lanzadas: Exception. Código fuente de Java:
// Creación del cliente de API de FlexiCapture Web Services. 
// Proporcione aquí la dirección del Servidor de aplicaciones de FlexiCapture, el nombre del tenant, el nombre de usuario y la contraseña. 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // Obtención de la API del proyecto de FlexiCapture. Proporcione aquí el nombre del proyecto.
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(singleFileProjectName)) {
    // Creación del lote y el documento de FlexiCapture.
    Batch batch = new Batch();
    Document doc = new Document();
    // Incorporación del lote al proyecto de FlexiCapture.
    int batchId = projApi.getBatches().add(batch);
    // Obtención de la API del lote de FlexiCapture. Proporcione aquí el identificador del lote.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Creación de la instancia del archivo. 
    File file = new File(fileName, Base64.getDecoder().decode(base64Content.replace("\n", "").replace("\r", "")));
    // Incorporación del documento al lote de FlexiCapture.
    // El archivo es el contenido del documento.
    int docId = batchApi.getDocuments().add(doc, file);
    // Ejecución del lote de FlexiCapture para su procesamiento.
    batchApi.start();
    //Devolución del identificador del lote.
    return batchId;
  }
} catch(Exception ex){
  // Encadenamiento de mensajes de error. 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// Lanzamiento del mensaje encadenado.
throw new Exception(message);
}

WaitFirstVerificationOrProcessed

La función WaitFirstVerificationOrProcessed devuelve una URL de verificación. Si el documento no ha alcanzado la etapa de verificación, se devuelve una cadena vacía. Parámetros de entrada:
NombreTipo de JavaDescripción
batchIdintIdentificador del lote
Tipo del parámetro de salida: String (URL de verificación). Excepciones lanzadas: Exception. Código fuente de Java:
// Creación del cliente de API de FlexiCapture Web Services. 
// Proporcione aquí la dirección del Servidor de aplicaciones de FlexiCapture, el nombre del tenant, el nombre de usuario y la contraseña. 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // Obtención de la API del proyecto de FlexiCapture. Proporcione aquí el nombre del proyecto.
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(singleFileProjectName)) {
    // Obtención de la API del lote de FlexiCapture. Proporcione aquí el identificador del lote.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Espera a que el lote se detenga en la etapa de verificación y obtiene el documento de FlexiCapture.
    Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
    // Comprueba si la etapa del lote es Verificación.
    if (doc.getStageType() == ProcessingStageType.Verification) {
      // Devuelve la primera cadena de url de verificación para el lote de FlexiCapture.
      return batchApi.getVerificationUrls(WebPageMode.Mini).get(0).toString();
    } 
    //Devuelve una cadena vacía si el lote se procesó sin etapa de verificación.
    return "";
  }
}catch(Exception ex){
  // Encadenamiento de mensajes de error. 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// Lanza el mensaje encadenado.
throw new Exception(message);
}

FetchingCapturedData

La función FetchingCapturedData devuelve una lista de campos de salida en formato JSON. Parámetros de entrada:
NameTipo de JavaDescription
batchIdintIdentificador del lote
Tipo del parámetro de salida: String (campos del documento en formato JSON). Excepciones lanzadas: Exception. Código fuente Java:
// Creación del cliente de API de FlexiCapture Web Services. 
// Proporcione aquí la dirección del Servidor de aplicaciones de FlexiCapture, el nombre del tenant, el nombre de usuario y la contraseña. 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // Obtención de la API del proyecto de FlexiCapture. Proporcione aquí el nombre del proyecto.
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(singleFileProjectName)) {
    // Obtención de la API del lote de FlexiCapture. Proporcione aquí el identificador del lote.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Espera a que el lote se procese y obtención del documento de FlexiCapture.
    Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
    // Obtención de la API del documento de FlexiCapture. Proporcione aquí el identificador del documento.
    DocumentApi docApi = batchApi.getDocuments().getDocumentApi(doc.getId());
    // Devolución de los campos capturados como una cadena JSON.
    return docApi.getExportedFields();
  }
}catch(Exception ex){
  // Encadenamiento de mensajes de error. 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// Lanzamiento del mensaje encadenado.
throw new Exception(message);
}

SingleDocumentBatchIsProcessed

La función SingleDocumentBatchIsProcessed devuelve un valor que indica si un lote se ha procesado o no. Parámetros de entrada:
NameTipo de JavaDescription
batchIdintIdentificador del lote
Tipo del parámetro de salida: boolean (true si el documento está en la etapa Processed y false en caso contrario). Excepciones generadas: Exception. Código fuente de Java:
// Creación del cliente de API de FlexiCapture Web Services. 
// Proporcione aquí la dirección del Servidor de aplicaciones de FlexiCapture, el nombre del tenant, el nombre de usuario y la contraseña. 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // Obtención de la API del proyecto de FlexiCapture. Proporcione aquí el nombre del proyecto.
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(singleFileProjectName)) {
    // Obtención de la API del lote de FlexiCapture. Proporcione aquí el identificador del lote.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Espera a que el lote se detenga en la etapa de verificación o procesamiento y obtiene el documento de FlexiCapture.
    Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
    // Comprueba si la etapa del lote es Procesado.
    return doc.getStageType() == ProcessingStageType.Processed;    
  }
}catch(Exception ex){
  // Encadenamiento de mensajes de error. 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// Lanza el mensaje encadenado.
throw new Exception(message);
}