作成する関数
| 関数 | 説明 |
|---|---|
| SendForProcessing | ファイルを認識のために送信し、バッチ識別子を返します。 |
| WaitFirstVerificationOrProcessed | 検証 URL、または検証が不要な場合は空の文字列を返します。 |
| FetchingCapturedData | 出力フィールド を JSON 形式で返します。 |
| SingleDocumentBatchIsProcessed | バッチが処理済みかどうかを返します。 |
SendForProcessing
SendForProcessing function は、認識のためにファイルを ABBYY FlexiCapture に送信し、バッチ識別子を返します。
パラメーター
| Name | Java 型 | 説明 |
|---|---|---|
fileName | String | ファイル名 |
base64Content | String | Base64 形式のファイル内容 |
戻り値
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(singleFileProjectName)) {
// FlexiCaptureのバッチとドキュメントを作成します。
Batch batch = new Batch();
Document doc = new Document();
// FlexiCaptureプロジェクトにバッチを追加します。
int batchId = projApi.getBatches().add(batch);
// FlexiCapture Batch APIを取得します。バッチ識別子を指定してください。
BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
// ファイルのインスタンスを作成します。
File file = new File(fileName, Base64.getDecoder().decode(base64Content.replace("\n", "").replace("\r", "")));
// FlexiCaptureバッチにドキュメントを追加します。
// ファイルはドキュメントの内容です。
int docId = batchApi.getDocuments().add(doc, file);
// FlexiCaptureバッチを実行して処理を開始します。
batchApi.start();
//バッチ識別子を返します。
return batchId;
}
} catch(Exception ex){
// エラーメッセージを連結します。
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// 連結したメッセージをスローします。
throw new Exception(message);
}
WaitFirstVerificationOrProcessed
WaitFirstVerificationOrProcessed 関数は、検証 URL を返します。ドキュメントが検証ステージに達していない場合は、空の文字列を返します。
パラメーター
| Name | Java 型 | 説明 |
|---|---|---|
batchId | int | バッチ識別子 |
戻り値
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(singleFileProjectName)) {
// FlexiCapture Batch APIを取得します。バッチ識別子を指定してください。
BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
// バッチが検証ステージで停止するまで待機し、FlexiCaptureドキュメントを取得します。
Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
// バッチのステージがVerificationかどうかを確認します。
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 形式の出力フィールドのリストを返します。
パラメーター
| 名前 | Java 型 | 説明 |
|---|---|---|
batchId | int | バッチ識別子 |
戻り値
String、JSON 形式の文書のfield。
例外
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(singleFileProjectName)) {
// FlexiCapture Batch APIを取得します。バッチ識別子を指定してください。
BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
// バッチの処理完了を待機し、FlexiCaptureドキュメントを取得します。
Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
// FlexiCapture Document APIを取得します。ドキュメント識別子を指定してください。
DocumentApi docApi = batchApi.getDocuments().getDocumentApi(doc.getId());
// 抽出されたfieldsをJSON文字列として返します。
return docApi.getExportedFields();
}
}catch(Exception ex){
// エラーメッセージを連結します。
Throwable cause = ex.getCause();
String message = ex.getMessage();
while (cause != null) {
message += " " + cause.getMessage();
cause = cause.getCause();
}
// 連結したメッセージをスローします。
throw new Exception(message);
}
SingleDocumentBatchIsProcessed
SingleDocumentBatchIsProcessed 関数は、バッチが処理されたかどうかを報告します。
パラメーター
| Name | Java 型 | 説明 |
|---|---|---|
batchId | int | バッチ識別子 |
戻り値
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(singleFileProjectName)) {
// FlexiCapture Batch APIを取得します。バッチ識別子を指定してください。
BatchApi batchApi = projApi.getBatches().getBatchApi(batchId);
// バッチが検証ステージまたは処理完了ステージで停止するまで待機し、FlexiCaptureドキュメントを取得します。
Document doc = batchApi.getDocuments().waitFirstVerificationOrProcessed();
// バッチのステージがProcessedかどうかを確認します。
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);
}
