Passer au contenu principal
Pour mettre en œuvre un scénario de traitement de plusieurs documents, créez les fonctions suivantes : CreateNewBatch AddDocumentToBatch RunBatchProcessing WaitFirstVerificationOrProcessedForMultiFileInvoice FetchingCapturedData MultiDocumentBatchIsProcessed

CreateNewBatch

La fonction CreateNewBatch crée un nouveau lot et renvoie son identifiant. Cette fonction n’a pas de paramètre d’entrée. Type du paramètre de sortie : int (identifiant du lot). Exceptions levées : Exception. 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(multiFileProjectName)) {
    // Création du lot et du document FlexiCapture.
    Batch batch = new Batch();
    Document doc = new Document();
    // Ajout du lot dans le projet FlexiCapture.
    return projApi.getBatches().add(batch);
  }
} 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);
}

AddDocumentToBatch

La fonction AddDocumentToBatch ajoute un document à un lot. Paramètres d’entrée :
NameType JavaDescription
batchIdintIdentifiant du lot
fileNameStringNom du fichier
base64ContentStringContenu du fichier au format Base64
Cette fonction n’a pas de paramètres de sortie. 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(multiFileProjectName)) {
    // Création du document FlexiCapture.
    Document doc = new Document();
    // Récupération de l'API de lot FlexiCapture. Veuillez indiquer un identifiant de lot 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 lot FlexiCapture.
    // Le fichier représente le contenu du document.
    batchApi.getDocuments().add(doc, file);
  }
} 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();
}
// Lever le message concaténé.
throw new Exception(message);
}

RunBatchProcessing

La fonction RunBatchProcessing lance le traitement du lot. Paramètres d’entrée :
NameType JavaDescription
batchIdintIdentifiant du lot
Cette fonction n’a pas de paramètres de sortie. 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(multiFileProjectName)) {
    // Récupération de l'API de lot FlexiCapture. Veuillez indiquer un identifiant de lot ici.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Lancement du traitement du lot FlexiCapture.
    batchApi.start();
  }
} 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();
}
// Lever le message concaténé.
throw new Exception(message);
}

WaitFirstVerificationOrProcessedForMultiFileInvoice

La fonction WaitFirstVerificationOrProcessedForMultiFileInvoice renvoie une URL de vérification. Si le document n’a pas 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(multiFileProjectName)) {
    // Récupération de l'API de lot FlexiCapture. Veuillez indiquer un identifiant de lot ici.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Attente de l'arrêt du lot à l'étape de vérification et récupération du document FlexiCapture.
    Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
    // Vérification que l'étape du lot est Verification.
    if (doc.getStageType() == ProcessingStageType.Verification) {
      // Retour de la première URL de vérification pour le lot 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
templateNameStringNom de la définition de document
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(multiFileProjectName)) {
    // Récupération de l'API de lot FlexiCapture. Veuillez indiquer un identifiant de lot ici.
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // Récupération de tous les documents du lot FlexiCapture.
    List<Document> documents = batchApi.getDocuments().getAll();
    for(Document document:
       documents){
      // Vérification du nom du modèle de document.
      if(document.getTemplateName().equals(templateName)){
        // Récupération de l'API de document FlexiCapture. Veuillez indiquer un identifiant de document ici.
        DocumentApi docApi = batchApi.getDocuments().getDocumentApi(document.getId());
        // Renvoi des champs capturés sous forme de chaîne JSON.
        return docApi.getExportedFields();
      }
    }
    //Renvoi d'une chaîne JSON vide si le nom du modèle de document est introuvable.
    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 de l'exception avec le message concaténé.
throw new Exception(message);
}

MultiDocumentBatchIsProcessed

La fonction MultiDocumentBatchIsProcessed renvoie une valeur indiquant si le lot a été traité ou non. Paramètres d’entrée :
NomType 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 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(multiFileProjectName)) {
    // 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 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 du message concaténé.
throw new Exception(message);
}