メインコンテンツへスキップ
複数文書の処理シナリオを実装するには、次の関数を作成します。 CreateNewBatch AddDocumentToBatch RunBatchProcessing WaitFirstVerificationOrProcessedForMultiFileInvoice FetchingCapturedData MultiDocumentBatchIsProcessed

CreateNewBatch

CreateNewBatch 関数は新しいバッチを作成し、その識別子を返します。 この関数には入力パラメーターはありません。 出力パラメーターの型: int (バッチ識別子) 。 スローされる例外: Exception。 Java ソース:
// FlexiCapture Web Services APIクライアントを作成します。 
// FlexiCapture Application Serverのアドレス、テナント名、ユーザー名、パスワードを指定してください。 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // FlexiCaptureプロジェクトAPIを取得します。プロジェクト名を指定してください。
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(multiFileProjectName)) {
    // FlexiCaptureのバッチとドキュメントを作成します。
    Batch batch = new Batch();
    Document doc = new Document();
    // FlexiCaptureプロジェクトにバッチを追加します。
    return projApi.getBatches().add(batch);
  }
} catch(Exception ex){
  // エラーメッセージを連結します。 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// 連結したメッセージをスローします。
throw new Exception(message);
}

AddDocumentToBatch

AddDocumentToBatch 関数は、ドキュメントをバッチに追加します。 入力パラメーター:
名前Java 型説明
batchIdintバッチ識別子
fileNameStringファイル名
base64ContentStringBase64形式のファイル内容
この関数に出力パラメーターはありません。 スローされる例外: Exception. Java ソース:
// FlexiCapture Web Services APIクライアントを作成します。 
// FlexiCapture Application Serverのアドレス、テナント名、ユーザー名、パスワードを指定してください。 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // FlexiCaptureプロジェクトAPIを取得します。プロジェクト名を指定してください。
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(multiFileProjectName)) {
    // FlexiCaptureドキュメントを作成します。
    Document doc = new Document();
    // FlexiCapture Batch APIを取得します。バッチ識別子を指定してください。
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // ファイルのインスタンスを作成します。 
    File file = new File(fileName, Base64.getDecoder().decode(base64Content.replace("\n", "").replace("\r", "")));
    // FlexiCapture BatchにDocumentを追加します。
    // ファイルはDocumentのコンテンツです。
    batchApi.getDocuments().add(doc, file);
  }
} catch(Exception ex){
  // エラーメッセージを連結します。 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// 連結したメッセージをスローします。
throw new Exception(message);
}

RunBatchProcessing

RunBatchProcessing 関数は、バッチ処理を開始します。 入力パラメーター:
NameJava 型説明
batchIdintバッチ識別子
この function に出力パラメーターはありません。 スローされる例外: Exception. Java ソース:
// FlexiCapture Web Services APIクライアントを作成します。 
// FlexiCapture Application Serverのアドレス、テナント名、ユーザー名、パスワードを指定してください。 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // FlexiCaptureプロジェクトAPIを取得します。プロジェクト名を指定してください。
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(multiFileProjectName)) {
    // FlexiCapture Batch APIを取得します。バッチ識別子を指定してください。
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // FlexiCapture Batchを実行して処理を開始します。
    batchApi.start();
  }
} catch(Exception ex){
  // エラーメッセージを連結します。 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// 連結したメッセージをスローします。
throw new Exception(message);
}

WaitFirstVerificationOrProcessedForMultiFileInvoice

WaitFirstVerificationOrProcessedForMultiFileInvoice 関数は、検証 URL を返します。ドキュメントが検証段階に達していない場合は、空の文字列が返されます。 入力パラメーター:
NameJava 型説明
batchIdintバッチ識別子
出力パラメーターの型: String (検証 URL) 。 スローされる例外: Exception。 Java ソース:
// FlexiCapture Web Services APIクライアントを作成します。 
// FlexiCapture Application Serverのアドレスとテナント名、ユーザー名、パスワードを指定してください。 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // FlexiCaptureプロジェクトAPIを取得します。プロジェクト名を指定してください。
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(multiFileProjectName)) {
    // FlexiCapture Batch APIを取得します。バッチ識別子を指定してください。
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // バッチが検証ステージで停止するまで待機し、FlexiCaptureドキュメントを取得します。
    Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
    // バッチのステージが検証かどうかを確認します。
    if (doc.getStageType() == ProcessingStageType.Verification) {
      // FlexiCaptureバッチの最初の検証URL文字列を返します。
      return batchApi.getVerificationUrls(WebPageMode.Mini).get(0).toString();
    } 
    //検証ステージなしでバッチが処理された場合は空の文字列を返します。
    return "";
  }
}catch(Exception ex){
  // エラーメッセージを連結します。 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// 連結したメッセージをスローします。
throw new Exception(message);
}

FetchingCapturedData

FetchingCapturedData 関数は、JSON 形式の出力フィールドのリストを返します。 入力パラメーター:
NameJava typeDescription
batchIdintバッチ識別子
templateNameStringDocument Definition 名
出力パラメーターの型: String (JSON 形式のドキュメントフィールド) 。 スローされる例外: Exception。 Java ソース:
// FlexiCapture Web Services APIクライアントを作成します。 
// FlexiCapture Application Serverのアドレスとテナント名、ユーザー名、パスワードを指定してください。 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // FlexiCapture プロジェクトAPIを取得します。プロジェクト名を指定してください。
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(multiFileProjectName)) {
    // FlexiCapture Batch APIを取得します。バッチ識別子を指定してください。
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // FlexiCapture Batchからすべてのドキュメントを取得します。
    List<Document> documents = batchApi.getDocuments().getAll();
    for(Document document:
       documents){
      // ドキュメントのテンプレート名を確認します。
      if(document.getTemplateName().equals(templateName)){
        // FlexiCapture Document APIを取得します。ドキュメント識別子を指定してください。
        DocumentApi docApi = batchApi.getDocuments().getDocumentApi(document.getId());
        // 抽出されたfieldsをJSON文字列として返します。
        return docApi.getExportedFields();
      }
    }
    //ドキュメントのテンプレート名が見つからない場合、空のJSON文字列を返します。
    return "{}";
  }
}catch(Exception ex){
  // エラーメッセージを連結します。 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// 連結したメッセージをスローします。
throw new Exception(message);
}

MultiDocumentBatchIsProcessed

MultiDocumentBatchIsProcessed 関数は、バッチが処理済みかどうかを示す値を返します。 入力パラメーター:
NameJava typeDescription
batchIdintバッチ識別子
出力パラメーターの型: boolean (ドキュメントが Processed ステージにある場合は true、それ以外の場合は false) 。 スローされる例外: Exception。 Java ソース:
// FlexiCapture Web Services APIクライアントを作成します。 
// FlexiCapture Application Serverのアドレスとテナント名、ユーザー名、パスワードを指定してください。 
try (TenantClient tenantClient = new TenantClient(new URI(baseUri), tenantName, userName, password)) {
  // FlexiCaptureプロジェクトAPIを取得します。プロジェクト名を指定してください。
  try(ProjectApi projApi = tenantClient.getProjects().getProjectApi(multiFileProjectName)) {
    // FlexiCapture Batch APIを取得します。バッチの識別子を指定してください。
    BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
    // バッチが検証ステージまたは処理完了ステージで停止するまで待機し、FlexiCaptureドキュメントを取得します。
    Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
    // バッチのステージが処理完了かどうかを確認します。
    return doc.getStageType() == ProcessingStageType.Processed;    
  }
}catch(Exception ex){
  // エラーメッセージを連結します。 
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// 連結したメッセージをスローします。
throw new Exception(message);
}