レコードのアップロード

基本製品には、ファイルからデータをアップロードするバックグラウンド・プロセスが用意されています。バッチ管理プラグイン・ドリブンのファイル・アップロード・テンプレート(F1-PDUPL)をテンプレートとして使用できます。プロセスには、アップロードされたファイルのファイル・パスおよびファイル名を構成するパラメータと、欠落したファイルの処理方法および過去に処理されたファイルの名前の変更方法を制御するその他のパラメータが含まれています。詳細は、バッチ管理およびそのパラメータの説明を参照してください。

このバックグラウンド・プロセスには、プラグイン・スポット「ファイル・アップロード」にプラグインされたアルゴリズムが必要です。このプラグインは指定のファイルに対して1回コールされます。バッチ・プロセスがファイルを開き、ファイル・リーダー要素をアルゴリズムに渡します。バッチ管理に関連付けられているアルゴリズムは、提供されたAPIを使用してファイルの内容を読み取り、適切な表(たとえば、適切なステージング表)にデータを格納します。提供されている基本プロセスが、複数のファイルのアップロードをサポートし、複数のファイルを処理するためにマルチスレッドで実行されます。各ファイルは、ファイル・アップロード・アルゴリズムを1回コールすることで処理され、指定のファイルにアップロードされたレコードに対して単一のコミットをサポートします。

注意: このタイプのアルゴリズムを実装するために記述されたプラグイン・スクリプトは、XPathスクリプト言語を使用してAPIにアクセスできないため、Groovyスクリプト・エンジン・バージョンを使用する必要があります。詳細は、「サーバー・スクリプトの追加コーディング・オプション」を参照してください。

データのアップロードにおけるこのステップは、一般的なアップロード・エンドツーエンド・プロセスの単なる一部であることに注意してください。このステップは、製品では「プロセスX」と呼ばれることがあります。このステップの目標は、ファイルからデータベース・レコードに、最小限の検証および処理でレコードを取得することです。データはレコードに保存され、第2ステップ(製品では、支払アップロードなど、アップロード・ステップと呼ばれる場合が多い)で処理されます。第2のステップは、ここで説明されているプラグイン・ドリブン・バッチ・プロセスとは関係なく、データを検証し、個々のレコードによってスレッド化し、個々のレコードに適切なエラー処理を適用できます。アップロードするデータのタイプによっては、製品にはプラグイン・ドリブン・アップロード・プロセスで作成する適切な表がすでに提供されている場合があることに注意してください。これらは、支払アップロード・ステージングなどのステージング表です。あるいは、ビジネス・フラグなどのアップロードされたデータを処理するために設計されたライフサイクルを保持するビジネス・オブジェクトが指定されているレコードの場合もあります。このような場合、通常は製品にデフォルトのまま使用可能なバックグラウンド・プロセスが用意されており、データを検証し、さらに処理を実行してアップロードを完了します。アップロードするデータに基本ステージング表が提供されていない場合は、実装チームと協力してプラグイン・ドリブン・バッチ・アップロードに使用する適切な表を識別します。さらに、データの詳細な検証および最終処理を実行する第2ステップの設計を確認します。

製品では、カンマ区切り、固定位置、XMLなど、様々なタイプのソース・データを処理するために用意されているAPIのコールについて示したサンプル・アルゴリズムを提供しています。いずれの場合も、アップロードでサポートされているサンプル・データは、プロセスを示すためにディグリー・デー情報を使用します。システムでは、入力データに基づいてレコードを格納するステップを示すために、サンプル・ターゲット・レコード(ファクト・メンテナンス・オブジェクトに基づく)を提供しています。サンプル・プラグイン・スクリプトのみが提供されていることに注意してください。サンプル・プラグイン・スクリプトを使用するアルゴリズム、アルゴリズム・タイプまたはバッチ管理は構成されていません。スクリプトを表示するには、「スクリプト」ページにナビゲートし、「プラグイン・スクリプト」のスクリプト・タイプおよび「バッチ管理 - ファイル・アップロード」のアルゴリズム・エンティティを検索してサンプル・スクリプトを探します。

製品に用意されているサンプル・プラグイン・スクリプトは、提供されているAPIの使用方法を示すために提供されています。実際のユース・ケースのプラグイン・スクリプトを実装する方法のテンプレートとして考えないでください。ファイル・アップロード・アルゴリズムを設計する際の考慮事項を次に説明します。
  • エラー処理/解決。サンプル・プラグイン・スクリプトでは、エラー処理を示すためにデータに関連する基本的なエラー処理を実行します。ただし、このステップで検出されるエラーは、ファイル全体の処理を停止する必要があります。そのため、このプラグインでは、修正不可能でファイル全体を拒否する必要のあるエラーのみをレポートします。データで調整可能なエラーがある場合は、このステップでエラーをチェックしないことをお薦めします。かわりに、このプラグインでは適切なステージング表に値を単純に移入し、次のステップで妥当性チェックを実行します。前述のように、次のステップには、個々のレコードをエラーにマークし、ユーザーがデータを修正して再試行できるようにする機能が含まれています。

  • ターゲット表。サンプル・プラグイン・スクリプトは、結果のinsert文のターゲットとしてファクトを使用します。前述のように、アップロードされたデータを保存する場所の決定は、慎重に検討する必要があります。指定のユース・ケースに固有の表がすでに存在している場合があります。アップロードするデータに使用する既存の表がない場合は、どのような表が有用であるかを検証するために、インバウンド同期要求やサービス・タスクなど、製品を確認します。デフォルトのままで、あるいはエラー・ステータスおよびエラーを解決する機能をサポートするライフサイクルを備えた適切なビジネス・オブジェクトの設計によって、選択された表がエラー処理をサポートしていることを確認します。また、フラット・ファイル・アップロードのサンプル・プラグインでは、ヘッダー・レコード/詳細レコードのシナリオを示しています。ここでは、ヘッダー・レコードがCLOB要素を介して子レコードにリンクされています。この技法はお薦めしません。実際のユース・ケースの場合、ヘッダー・レコードは、検索を可能にするために別のデータベース列を介して子レコードにリンクする必要があります。

新規プロセスの構成

次に、ファイルをアップロードする新しいバックグラウンド・プロセスを実装する際に必要なステップについて要約を示します。

  • アップロード・ファイルのデータの詳細を検証し、システムの1つ以上の適切な表のフィールドにデータをマッピングします。

  • レコードの詳細を読み取るために必要なロジックを設計し、各レコードを識別してデータを格納するためのinsert文を適切に作成します。製品に用意されているサンプル・プラグイン・スクリプトでは、使用可能な様々なAPIの使用例が示されています。アルゴリズム・エンティティが「バッチ管理 - ファイル・アップロード」プラグイン・スクリプトを作成します。このプラグイン・スクリプトに適切なアルゴリズム・タイプおよびアルゴリズムを作成します。

  • 基本テンプレートを複製してバッチ管理を作成します。前述の説明で作成したアルゴリズムをプラグインし、パラメータを相応に構成します。必要に応じてバッチ管理にカスタム・アドホック・パラメータを構成できます。ファイル・アップロード・アルゴリズムには、基本バッチ・パラメータ値とカスタム・バッチ・パラメータ値の両方を使用できます。