Passer au contenu principal
Pour implémenter un scénario de traitement d’un document unique, créez les fonctions suivantes : SendForProcessing WaitFirstVerificationOrProcessed FetchingCapturedData SingleDocumentBatchIsProcessed

SendForProcessing

La fonction SendForProcessing envoie un fichier à FC pour la reconnaissance et renvoie un identifiant de lot. Paramètres d’entrée :
NomType JavaDescription
fileNameStringNom du fichier
base64ContentStringContenu du fichier au format Base64
Type du paramètre de sortie : int (identifiant de lot). Exceptions levées : Exception. Code source Java :
// Création du client API FlexiCapture Web Services. 
// Veuillez indiquer l'adresse du serveur d'applications FlexiCapture, le nom du tenant, le nom d'utilisateur et le mot de passe ici. 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // Récupération de l'API de projet FlexiCapture. Veuillez indiquer un nom de projet ici.
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(singleFileProjectName)) {
    // Création du batch et du document FlexiCapture.
    Batch batch = new Batch();
    Document doc = new Document();
    // Ajout du batch dans le projet FlexiCapture.
    int batchId = projApi.getBatches().add(batch);
    // Récupération de l'API de batch FlexiCapture. Veuillez indiquer un identifiant de batch ici.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Création d'une instance de fichier. 
    File file = new File(fileName, Base64.getDecoder().decode(base64Content.replace("\n", "").replace("\r", "")));
    // Ajout du document dans le batch FlexiCapture.
    // Le fichier constitue le contenu du document.
    int docId = batchApi.getDocuments().add(doc, file);
    // Lancement du batch FlexiCapture pour traitement.
    batchApi.start();
    //Renvoi de l'identifiant du batch.
    return batchId;
  }
} catch(Exception ex){
  // Concaténation des messages d'erreur. 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// Levée du message concaténé.
throw new Exception(message);
}

WaitFirstVerificationOrProcessed

La fonction WaitFirstVerificationOrProcessed renvoie une URL de vérification. Si le document n’a pas encore atteint l’étape de vérification, une chaîne vide est renvoyée. Paramètres d’entrée :
NomType JavaDescription
batchIdintIdentifiant du lot
Type du paramètre de sortie : String (URL de vérification). Exceptions levées : Exception. Code source Java :
// Création du client API FlexiCapture Web Services. 
// Veuillez indiquer l'adresse du serveur d'applications FlexiCapture, le nom du tenant, le nom d'utilisateur et le mot de passe ici. 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // Récupération de l'API de projet FlexiCapture. Veuillez indiquer un nom de projet ici.
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(singleFileProjectName)) {
    // Récupération de l'API de batch FlexiCapture. Veuillez indiquer un identifiant de batch ici.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Attente de l'arrêt du batch à l'étape de vérification et récupération du document FlexiCapture.
    Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
    // Vérification que l'étape du batch est Verification.
    if (doc.getStageType() == ProcessingStageType.Verification) {
      // Retour de la première URL de vérification pour le batch FlexiCapture.
      return batchApi.getVerificationUrls(WebPageMode.Mini).get(0).toString();
    } 
    //Retour d'une chaîne vide si le lot a été traité sans étape de vérification.
    return "";
  }
}catch(Exception ex){
  // Concaténation des messages d'erreur. 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// Levée du message concaténé.
throw new Exception(message);
}

FetchingCapturedData

La fonction FetchingCapturedData renvoie une liste de champs de sortie au format JSON. Paramètres d’entrée :
NomType JavaDescription
batchIdintIdentifiant du lot
Type du paramètre de sortie : String (champs du document au format JSON). Exceptions levées : Exception. Code source Java :
// Création du client API FlexiCapture Web Services. 
// Veuillez indiquer l'adresse du serveur d'applications FlexiCapture, le nom du tenant, le nom d'utilisateur et le mot de passe ici. 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // Récupération de l'API de projet FlexiCapture. Veuillez indiquer un nom de projet ici.
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(singleFileProjectName)) {
    // Récupération de l'API de batch FlexiCapture. Veuillez indiquer un identifiant de batch ici.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Attente du traitement du batch et récupération du document FlexiCapture.
    Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
    // Récupération de l'API de document FlexiCapture. Veuillez indiquer un identifiant de document ici.
    DocumentApi docApi = batchApi.getDocuments().getDocumentApi(doc.getId());
    // Retour des champs capturés sous forme de chaîne JSON.
    return docApi.getExportedFields();
  }
}catch(Exception ex){
  // Concaténation des messages d'erreur. 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// Levée du message concaténé.
throw new Exception(message);
}

SingleDocumentBatchIsProcessed

La fonction SingleDocumentBatchIsProcessed renvoie une valeur indiquant si un lot a été traité ou non. Paramètres d’entrée :
NameType JavaDescription
batchIdintIdentifiant du lot
Type du paramètre de sortie : boolean (true si le document est à l’étape Processed et false sinon). Exceptions levées : Exception. Code source Java :
// Création du client API FlexiCapture Web Services. 
// Veuillez fournir l'adresse du serveur d'applications FlexiCapture, le nom du tenant, le nom d'utilisateur et le mot de passe ici. 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // Récupération de l'API de projet FlexiCapture. Veuillez fournir un nom de projet ici.
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(singleFileProjectName)) {
    // Récupération de l'API de batch FlexiCapture. Veuillez fournir un identifiant de batch ici.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Attente de l'arrêt du batch à l'étape de vérification ou de traitement, et récupération du document FlexiCapture.
    Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
    // Vérification que l'étape du batch est Traité.
    return doc.getStageType() == ProcessingStageType.Processed;    
  }
}catch(Exception ex){
  // Concaténation des messages d'erreur. 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// Levée de l'exception avec le message concaténé.
throw new Exception(message);
}