バッチ処理のコンフィギュレーション

Cloud API は、バッチ処理を開始する機能をサポートしています。/systemtools/v1/batch-processes/{batchProcessType}/start エンドポイントの使用方法に関する情報は、バッチ処理を参照してください。

一部のバッチ処理では、バッチ処理を実行するときに引数を指定できます。これらの引数によって入力パラメータの関数を実行するほか、バッチ処理の実行方法を変更できます。

引数を取るカスタムバッチ処理を作成できます。引数を /start エンドポイントに送信できるようにしたい場合は、Cloud API のコンフィギュレーションが必要です。このトピックでは、このコンフィギュレーションについて説明します。

Cloud API のコンフィギュレーションによるカスタムバッチ処理の引数のサポート

InsuranceSuite アプリケーションでは、バッチ処理に使用する引数の形式が統一されていません。バッチ処理の中には、文字列を想定しているものもあれば、カスタム POJO(Plain Old Java Objects)を想定しているものもあります。Cloud API では、あらゆる種類のバッチ処理に対してバッチ処理の引数をサポートする一般的な方法がありません。そのため、引数を使用するカスタムバッチ処理を実装していて、そのバッチ処理を Cloud API 経由で引数を使用して開始したい場合は、引数を処理できるよう Cloud API をコンフィギュレーションする必要があります。

このコンフィギュレーションでは、2 つの手順が必要です。

  • BatchProcessArguments スキーマにスキーマプロパティを追加します。
  • BatchProcessExtResource クラスに処理コードを追加して、ペイロードを引数に変換します。

BatchProcessArguments スキーマのコンフィギュレーション

BatchProcessArguments スキーマは、/systemtools/v1/batch-processes/{batchProcessType}/start エンドポイントへの呼び出しで引数として含めることができる情報を定義します。一般的なスキーマコンフィギュレーションに関する詳細については、スキーマコンフィギュレーションの概要を参照してください。

引数のカスタムバッチ処理をコンフィギュレーションするには、このスキーマにプロパティを追加する必要があります。

  • プロパティの名前は、BatchProcessType タイプコードのコードと同じにして、大文字と小文字の区別は無視してください。すべて小文字にすることをお勧めします。
  • このプロパティの型は、バッチ処理が想定する基本の引数の型によって異なります。プロパティは、適切に定義され、引数が概念として何を表しているかを説明しているプロパティ名のオブジェクトにすることをお勧めします。

systemtools_ext-1.0.schema.json スキーマファイルでは、スキーマ拡張を宣言する必要があります。

例えば、グループ内のユーザーにアサインされた作業に基づいて、すべてのグループのパフォーマンスメトリックを計算する GroupMetrics_Ext という名前のカスタムバッチ処理を作成したとします。オプションの引数として、文字列で指定された単一のグループ名を取ります。この引数を実装するため、systemtools_ext-1.0.schema.json スキーマファイルには以下が含められます。
  "definitions": {
    "BatchProcessArguments": {
      "properties": {
        "groupmetrics_ext": {
          "title": "GroupMetrics_Ext",
          "description": "Arguments for the GroupMetrics_Ext batch process",
          "$ref": "#/definitions/GroupMetrics_ExtArguments"
        }
      }
    },
    "GroupMetrics_ExtArguments": {
      "title": "GroupMetrics_ExtArguments",
      "description": "Arguments for the GroupMetrics_Ext batch process",
      "type": "object",
      "properties": {
        "groupName": {
          "title": "GroupName",
          "description": "The name of the group to process",
          "type": "string"
      }
    }
  }

BatchProcessExtResource クラスのコンフィギュレーション

BatchProcessExtResource リソースクラスは、バッチ処理要素の使用に必要な動作を定義する Gosu ファイルです。

引数のカスタムバッチ処理をコンフィギュレーションするには、BatchProcessExtResource リソースクラスの populateCustomBatchProcessArgumentsArray メソッドに処理コードを追加して、ペイロードを引数に変換する必要があります。メソッドを(まだオーバーライドしていない場合は)オーバーライドして、JSON オブジェクトを調査し、関連データを抽出し、配列に格納するこのバッチ処理の種類に if ステートメントを追加します。

前の例に続き、BatchProcessExtResource リソースクラスをコンフィギュレーションして、GroupMetrics_Ext カスタムバッチ処理の GroupName 引数を実装するとします。populateCustomBatchProcessArgumentsArray メソッドは次のようになります。
protected override function populateCustomBatchProcessArgumentsArray
                                    (json : JsonObject) : Serializable[] {
   var result : Serializable[]
   if (this.Element.getType() == BatchProcessType.TC_GroupMetrics_Ext) {
     result = {json.getString("groupName")}
   } else if ( /* other batch process type handling goes here */ ) {
     ...
   }
   return result
 }