Red Hat Training
A Red Hat training course is available for Red Hat Decision Manager
第4章 従業員勤務表スターターアプリケーションの変更
従業員勤務表スターターアプリケーションをニーズに合わせて変更するには、最適化プロセスを統括するルールを変更する必要があります。また、データ構造に必要なデータを含み、ルールに必要な計算が提供されるようにする必要があります。必要なデータがユーザーインターフェースに存在しない場合には、ユーザーインターフェースも変更する必要があります。
以下の手順では、従業員勤務表スターターアプリケーションの変更に関する一般的なアプローチを説明しています。
前提条件
- アプリケーションを正常に構築するビルド環境が必要です。
- Java コードの読み取りと変更ができなければなりません。
手順
必要な変更をプランニングします。以下の質問に答えてください。
- 回避する 必要のある 追加のシナリオにはどのようなものがありますか?このようなシナリオは ハード制約 になります。
- できるだけオプティマイザーが 回避を試す 必要のある 追加のシナリオにはどのようなものがありますか?このようなシナリオは ソフト制約 になります。
- それぞれのシナリオがソリューションで実行されるかどうかを計算するのに必要なデータは何ですか?
- 既存のバージョンで入力した情報から取得可能なデータはどれですか?
- ハードコードが可能なデータはどれですか?
- ユーザー入力が必要なデータと、現在のバージョンで入力されていないデータはどれですか?
- 必須データを現在のデータから計算するか、ハードコード化できる場合には、計算か、ハードコードを既存のビューまたはユーティリティークラスに追加します。データをサーバー側で計算する必要がある場合には、REST API エンドポイントを追加して読み込みます。
-
ユーザーが必須データを入力する必要がある場合には、データのエントリーを表現するクラスにそのデータを追加 (例:
Employee
クラス) し、データの読み取り、書き込み用に REST API エンドポイントを追加して、データ入力用にユーザーインターフェースを変更してください。 全データが利用できる場合には、ルールを変更します。変更の大半は、新規ルールを追加する必要があります。これらのルールは、
employee-rostering-server
モジュールのsrc/main/resources/org/optaweb/employeerostering/server/solver/employeeRosteringScoreRules.drl
ファイルに配置されます。ルールには、Drools 言語を使用します。Drools ルール言語に関する参考情報は、「Rule Language Reference」を参照してください。
optashift-employee-rostering-shared
とoptashift-employee-rostering-server
モジュールで定義されるクラスは、デシジョンエンジンで利用できます。- アプリケーションの変更後に、ビルドして実行します。