アドホック・プロセス

システム内のレコードを取得して処理するプロセスでは、処理するレコードを選択するアルゴリズムと、レコードを処理する別のアルゴリズムが必要です。このようなタイプのプロセスをアドホック・プロセスと呼びます。基本バッチ管理プラグイン・ドリブンの汎用テンプレート(F1-PDBG)をテンプレートとして使用できます。

基本プロセスでは、パラレルのバックグラウンド・プロセスを含む標準的なバックグラウンド・プロセス機能、およびエラーに対して作業予定登録を作成する機能を実装します。これにより実装では、事前に作成されたサポートを利用して、特定のユース・ケースに固有のロジックを含めたプラグインを提供できます。

次の各項では、アドホック・プロセスの機能に関する詳細情報を示します。抽出プロセス間で、同じ機能の一部が共有されます。抽出プロセスに固有の追加情報は、「抽出レコード処理」を参照してください。

レコードの選択アルゴリズム

プラグイン・ドリブン・バッチ・プロセスを実装する場合に設計する最初の重要なアルゴリズムは、「バッチ管理」ページにプラグインされる、レコードの選択アルゴリズムです。このアルゴリズム・タイプでは、最初のパラメータをSQLとして定義する必要があります。バッチ・ジョブは、(アルゴリズムを起動するのではなく)メタデータのSQLパラメータ値に直接アクセスします。その他すべてのパラメータは、独自のロジックに使用するためにアルゴリズムで使用できます。

また、アルゴリズムを起動する場合は、使用する戦略(スレッド・レベルのSQL Selectまたはジョブ・レベルのSQL Select)を返す必要があります。2つの戦略および各戦略を使用する状況に関する詳細は、「パラレルのバックグラウンド・プロセス」を参照してください。スレッド・レベルのSQL Select戦略を選択した場合は、アルゴリズムがキー・フィールド・パラメータで主キーの名前を返します。さらに、SQLには、範囲の下限IDおよび上限IDのバインド変数を含めたBETWEEN句を指定します。後述されているバインド変数の構文を参照してください。

実行時に決定される変数がSQL文に含まれている場合は、バインド・パラメータを使用する必要があります。バインド・パラメータは、コロンとパラメータ名(たとえば、:parameter)を使用してSQL文で参照されます。システムには、実行時にバッチ・ジョブによって移入される複数の変数があります。これらの変数にはf1_​というプリフィクスが付きます。

システムでは、事前定義された次のバインド・パラメータがサポートされています。

  • :f1_​lowIDおよび:f1_​highID - これらは、スレッド・レベルのSQL Select戦略のBETWEEN句で使用します。バッチ・ジョブで、必要に応じて適切なID範囲に置換されます。

  • :f1_​batchCodeおよび:f1_​batchNumber - これらは、選択のためにレコードで参照されるバッチ管理の一般的な属性です。バッチ実行番号は、バッチ・ジョブが以前の実行の再実行かどうかに従って設定されます。

  • :f1_​businessDate - バッチ・ジョブにより、入力バッチ営業日がある場合はその営業日、ない場合は現在の日付が移入されます。

注意: システムでは、f1.とf1_​の両方がバインド変数のプリフィクスとしてサポートされます。ただし、SQLセキュリティのプロパティ設定がオンになっている場合はf1.プリフィクスでエラーが発生します。したがって、アンダースコアの構文をお薦めします。ピリオドの構文は、後方互換性のために維持されます。

その他のカスタム・パラメータについては、レコード選択アルゴリズムにより、変数名がSQLのバインド変数と一致するフィールド名/変数名/値の1つ以上のセットが返される可能性があります。フィールド名は、SQLバインド・ロジックによる値の適切な置換を支援する、長さに関する情報を提供します。変数名はf1.というプリフィクスで開始できないことに注意してください。バッチ・ジョブは、アルゴリズムが返した値を使用して、SQL文にバインド・パラメータを設定します。また、ロジックによってすべての変数が文字列としてバインドされるため、日付変数についてはSQLに"TO_​DATE"関数が含まれている必要があります。

プラグイン・スポットは、バッチ・ジョブのアドホック・パラメータのリストを名前と値のペアで受け取ります。レコードの選択で値を使用するパラメータがリストに含まれている場合は、アルゴリズムを使用して、入力として渡された関連するバッチ・パラメータを識別し、フィールド名および出力バインド変数を適切に移入できます。

製品には、SQLのパラメータを単に定義する、このプラグイン・スポットの基本アルゴリズム・タイプが用意されています。また、戦略およびキー・フィールド名のパラメータも含まれています。このアルゴリズム・タイプは、判別する必要のある特別なバインド変数にSQLが依存していないカスタム・バッチ・プロセスによって使用されます。単にアルゴリズム・タイプのアルゴリズムを作成し、適切なSQLを提供します。詳細は、アルゴリズム・タイプ「事前定義済の問合せによるレコードの選択」(F1-PDB-SR)を参照してください。

レコードの処理アルゴリズム

プラグイン・ドリブン・バッチ・プロセスを実装する場合に設計する重要なその他のアルゴリズムは、「バッチ管理」ページにプラグインされる、レコードの処理アルゴリズムです。このアルゴリズムは、プロセスに選択した各レコードごとにコールされます。レコードの選択プラグインで選択されたすべての情報を受け取ります。

アドホック処理バッチ・プロセスでは、このスポットにプラグインされたアルゴリズムが、必要なロジックに基づいて各レコードに対する処理を実行します。

抽出バッチ・プロセスの場合、このスポットにプラグインされたアルゴリズムが、ファイルに書き込む必要のあるデータを返します。このプラグイン・スポットのパラメータの多くは、抽出プロセスにのみ適用されます。抽出プロセスに固有の機能の詳細は、「抽出レコード処理」を参照してください。

また、このプラグイン・スポットのアルゴリズムには、現在の作業単位がそのスレッドの最初または最後かどうかを示すisFirstおよびisLastの2つのブールが渡されます。これにより、プラグインが必要に応じて追加の作業を実行できます。isFirstの指定は、アドホックと抽出の両方のタイプのバッチ・プロセスに使用できることに注意してください。一方、isLastの指定はファイル抽出バッチにのみ使用できます。アドホック・バッチ・プロセスの場合は、この値が常にfalseに設定されます。抽出は常に単一のデータベース・トランザクションで実行されます。単一のトランザクション実行では、エラーが発生すると実行が中断され、再発行時に最初から再開されます。これは、isLast要素の設定が正しくなくなるとともに不完全なファイルが書き込まれるのを防止するためです。

新規プロセスの構成

次に、特定の機能のプラグインを使用して、システム内のレコードに作用する新しいバックグラウンド・プロセスを実装する際に必要なステップについて要約を示します。

  • バックグラウンド・プロセスで実行するSQLを検証します。SQLで選択されたすべてのデータは、レコードを処理するプラグインに渡すことができることに注意してください。バックグラウンド・プロセスのパフォーマンスが重要な場合は、SQLを設計する際にデータベース管理者に相談してください。

    • SQLで実行時に置換するカスタム変数が必要ない場合は、基本アルゴリズム・タイプ「F1-PDB-SR」のアルゴリズムを作成し、SQLを構成します。さらに、戦略および主キー名を構成します(スレッド・レベルのSQL Select戦略の場合)。

    • SQLにカスタム変数が必要な場合は、アルゴリズム・エンティティ「バッチ管理 - レコードの選択」を使用して変数名および値を移入するように、新しいプラグイン・スクリプトを設計してコーディングする必要があります。変数の定義に加えて、アルゴリズムで戦略および主キー名を指定する必要があります(スレッド・レベルのSQL Select戦略の場合)。新しく作成されたスクリプトのアルゴリズム・タイプを定義します。アルゴリズム・タイプの第1のパラメータは、基本アルゴリズム・タイプで説明されているようにSQLにする必要があります。必要に応じてその他のパラメータをこのアルゴリズム・タイプで使用できることに注意してください。アルゴリズムを定義し、(カスタム変数を使用して)適切なSQLを移入します。

  • 各レコードの処理に必要なロジックを設計します。エッジ製品で適切なプラグインが提供されていない場合は、アルゴリズム・エンティティが「バッチ管理 - レコードの処理」であるプラグイン・スクリプトを作成します。プラグインは、レコードの選択プラグインに定義されているSQLで選択されたすべての情報を受け取りますアドホック・プロセスでは、ビジネス・ユース・ケースに基づいてアルゴリズムが必要なプロセスを実行します。バックグラウンド・プロセスがレコードをコミットすることに注意してください。

    いずれの場合も、新しい処理スクリプトが必要であれば、新しく作成したスクリプトにアルゴリズム・タイプとアルゴリズムを定義します。

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