5.2. 従業員の勤務表サンプルプロジェクトの再作成
従業員の勤務表サンプルプロジェクトは、Business Central で使用できる事前設定のプロジェクトです。このプロジェクトをデプロイする方法は、「Business Central への従業員勤務表サンプルプロジェクトのデプロイメント」 を参照してください。
ゼロから従業員勤務表を作成できます。この例では、ワークフローを使用して、Business Central で独自の類似プロジェクトを作成します。
5.2.1. 従業員の勤務表プロジェクトの設定
Business Central で Solver の開発を始めるには、プロジェクトを設定する必要があります。
前提条件
- Red Hat Process Automation Manager をダウンロードして、インストールしている。
-
Business Central をデプロイし、
admin
ロールを持つユーザーでログインしている。
手順
-
Menu
Design Projects Add Project をクリックして、Business Central に新しいプロジェクトを作成します。 Add Project ウィンドウで、以下のフィールドに入力します。
-
Name:
employee-rostering
- Description (任意): OptaPlanner を使用した従業員の勤務表問題の最適化。スキルに基づいて、従業員をシフトに割り当てます。
任意で、Configure Advanced Options をクリックして、
Group ID
、Artifact ID
、およびVersion
に情報を追加します。-
Group ID:
employeerostering
-
Artifact ID:
employeerostering
-
Version:
1.0.0-SNAPSHOT
-
Name:
- Add をクリックして、Business Central プロジェクトリポジトリーにプロジェクトを追加します。
5.2.2. プロジェクトファクトおよびプランニングエンティティー
従業員勤務表の計画問題の各ドメインクラスは、以下のいずれかに分類されます。
- 関連性のないクラス: どのスコア制約にも使用されません。計画に関して言えば、このデータは使用されません。
-
問題ファクト クラス: スコア制約に使用されますが、 (問題が変わらない限り) 計画時には変化しません (例:
Shift
、Employee
)。問題ファクトクラスのプロパティーはすべて問題のプロパティーです。 プランニングエンティティークラス クラス: スコア制約に使用され、計画時に変化します (例:
ShiftAssignment
)。計画時に変更するプロパティーは プランニング変数 です。その他のプロパティーは問題プロパティーです。以下の点についてお考え下さい。
- 計画時にどのクラスを変更しますか ?
Solver
で変更する変数はどのクラスにありますか ?そのクラスが、プランニングエンティティーです。
プランニングエンティティークラスは、
@PlanningEntity
アノテーションでアノテートする必要があります。または、ドメインデザイナーで Red Hat ビルドの OptaPlanner ドックを使用して Business Central に定義する必要があります。各プランニングエンティティークラスには、1 つ以上の プランニング変数 があり、1 つ以上の定義プロパティーが必要です。
多くのユースケースには、プランニングエンティティークラスが 1 つだけあり、1 つのプランニングエンティティークラスに対してプランニング変数が 1 つだけ含まれます。
5.2.3. 従業員の勤務表プロジェクトへのデータモデルの作成
このセクションでは、Business Central で従業員の勤務表サンプルプロジェクトを実行するのに必要なデータオブジェクトを作成します。
前提条件
- 「従業員の勤務表プロジェクトの設定」 に従ってプロジェクト設定が完了している。
手順
-
新規プロジェクトで、プロジェクトパースペクティブの Data Object をクリックするか、Add Asset
Data Object をクリックして、新しいデータオブジェクトを作成します。 最初のデータオブジェクトの名前を
Timeslot
とし、パッケージ でemployeerostering.employeerostering
を選択します。OK をクリックします。
-
Data Objects パースペクティブで +add field をクリックして、
Timeslot
データオブジェクトにフィールドを追加します。 -
id フィールドで
endTime
と入力します。 -
Type の横にあるドロップダウンメニューをクリックし、
LocalDateTime
を選択します。 - Create and continue を別のフィールドに追加します。
-
id
startTime
および TypeLocalDateTime
を使用して、フィールドを追加します。 - Create をクリックします。
-
右上の Save をクリックして、
Timeslot
データオブジェクトを保存します。 - 右上の x をクリックして、Data Objects パースペクティブを閉じ、Assets メニューに戻ります。
前述の手順で、以下のデータオブジェクトとその属性を作成します。
表5.1 Skill id タイプ name
String
表5.2 Employee id タイプ name
String
skills
employeerostering.employeerostering.Skill[List]
表5.3 Shift id タイプ requiredSkill
employeerostering.employeerostering.Skill
timeslot
employeerostering.employeerostering.Timeslot
表5.4 DayOffRequest id タイプ date
LocalDate
employee
employeerostering.employeerostering.Employee
表5.5 ShiftAssignment id タイプ employee
employeerostering.employeerostering.Employee
shift
employeerostering.employeerostering.Shift
データオブジェクトの作成例は デシジョンサービスの使用ガイド を参照してください。
5.2.3.1. 従業員の勤務表プランニングエンティティーの作成
従業員勤務表の計画問題を解決するには、プランニングエンティティーと Solver を作成する必要があります。プランニングエンティティーは、Red Hat ビルドの OptaPlanner ドックで利用可能な属性を使用して、ドメインデザイナーに定義します。
以下の手順に従って、従業員の勤務表サンプルに、ShiftAssignment
データオブジェクトをプランニングエンティティーとして定義します。
前提条件
- 従業員の勤務表サンプルを実行するには、「従業員の勤務表プロジェクトへのデータモデルの作成」 の手順に従って、関連するデータオブジェクトとプランニングエンティティーを作成する必要があります。
手順
-
プロジェクトの Assets メニューから、
ShiftAssignment
データオブジェクトを開きます。 -
Data Objects パースペクティブで、右側の
をクリックして、OptaPlanner のドックを開きます。
- Planning Entity を選択します。
-
ShiftAssignment
データオブジェクトのフィールドリストでemployee
を選択します。 OptaPlanner ドックで Planning Variable を選択します。
Value Range Id 入力フィールドに
employeeRange
を入力します。これにより、@ValueRangeProvider
アノテーションがプランニングエンティティーに追加され、デザイナーのSource
タブをクリックすると表示されます。プランニング変数の値の範囲は
@ValueRangeProvider
アノテーションで定義されます。@ValueRangeProvider
アノテーションにはid
プロパティーが常にあり、@PlanningVariable
のvalueRangeProviderRefs
プロパティーから参照されます。- ドックを閉じ、Save をクリックして、データオブジェクトを保存します。
5.2.3.2. 従業員の勤務表プランニングソリューションの作成
従業員勤務表の問題は、定義したプランニングソリューションに依存します。プランニングソリューションは、Red Hat ビルドの OptaPlanner ドックで利用可能な属性を使用して、ドメインデザイナーに定義します。
前提条件
- 「従業員の勤務表プロジェクトへのデータモデルの作成」 および 「従業員の勤務表プランニングエンティティーの作成」 の手順に従って、従業員の勤務表サンプルを実行するのに必要なデータオブジェクトおよびプランニングエンティティーを作成している。
手順
-
識別子
EmployeeRoster
でデータオブジェクトを新規作成します。 以下のフィールドを作成します。
表5.6 EmployeeRoster id タイプ dayOffRequestList
employeerostering.employeerostering.DayOffRequest[List]
shiftAssignmentList
employeerostering.employeerostering.ShiftAssignment[List]
shiftList
employeerostering.employeerostering.Shift[List]
skillList
employeerostering.employeerostering.Skill[List]
timeslotList
employeerostering.employeerostering.Timeslot[List]
-
Data Objects パースペクティブで、右側の
をクリックして、OptaPlanner のドックを開きます。
- Planning Solution を選択します。
-
Solution Score Type は、デフォルトの
Hard soft score
のままにします。これにより、タイプがソリューションスコアとなるEmployeeRoster
データオブジェクトに、score
フィールドが自動的に生成されます。 次の属性で新しいフィールドを追加します。
id タイプ employeeList
employeerostering.employeerostering.Employee[List]
employeeList
フィールドを選択した状態で、Red Hat ビルドの OptaPlanner ドックを開いて、Planning Value Range Provider ボックスを選択します。id フィールドに
employeeRange
を入力します。ドックを閉じます。- 右上で Save をクリックし、アセットを保存します。
5.2.4. 従業員勤務表の制約
従業員の勤務表はプランニングソリューションです。すべての計画問題には、最適解を得るのに満たさなければならない制約が含まれます。
Business Central の従業員の勤務表サンプルプロジェクトには、以下のハード制約およびソフト制約が含まれます。
- ハード制約
- 従業員に割り当てられるシフトの数は、1 日 1 つまで。
- 特別な従業員スキルが必要なすべてのシフトは、そのスキルを持つ従業員に割り当てられる。
- ソフト制約
- すべての従業員がシフトに割り当てられている。
- 従業員が休暇を取った場合は、シフトが別の従業員に再割り当てされる。
ハード制約およびソフト制約は、Free form DRL デザイナー、またはガイド付きルールを使用して Business Central で定義します。
5.2.4.1. DRL (Drools Rule Language) ルール
DRL (Drools Rule Language) ルールは、.drl
テキストファイルに直接定義するビジネスルールです。このような DRL ファイルは、Business Central の他のすべてのルールアセットが最終的にレンダリングされるソースとなります。Business Central インターフェイスで DRL ファイルを作成して管理するか、Red Hat CodeReady Studio や別の統合開発環境 (IDE) を使用して Maven または Java プロジェクトの一部として外部で作成することができます。DRL ファイルには、最低でもルールの条件 (when
) およびアクション (then
) を定義するルールを 1 つ以上追加できます。Business Central の DRL デザイナーでは、Java、DRL、および XML の構文が強調表示されます。
DRL ファイルは、以下のコンポーネントで設定されます。
DRL ファイル内のコンポーネント
package import function // Optional query // Optional declare // Optional global // Optional rule "rule name" // Attributes when // Conditions then // Actions end rule "rule2 name" ...
以下の DRL ルールの例では、ローン申し込みのデシジョンサービスで年齢制限を指定します。
申込者の年齢制限に関するルールの例
rule "Underage" salience 15 agenda-group "applicationGroup" when $application : LoanApplication() Applicant( age < 21 ) then $application.setApproved( false ); $application.setExplanation( "Underage" ); end
DRL ファイルには、ルール、クエリー、関数が 1 つまたは複数含まれており、このファイルで、ルールやクエリーで割り当て、使用するインポート、グローバル、属性などのリソース宣言を定義できます。DRL パッケージは、DRL ファイルの一番上に表示され、ルールは通常最後に表示されます。他の DRL コンポーネントはどのような順番でも構いません。
ルールごとに、ルールパッケージ内で一意の名前を指定する必要があります。パッケージ内の DRL ファイルで、同じルール名を複数回使用すると、ルールのコンパイルに失敗します。特にルール名にスペースを使用する場合など、ルール名には必ず二重引用符 (rule "rule name"
) を使用して、コンパイルエラーが発生しないようにしてください。
DRL ルールに関連するデータオブジェクトはすべて、DRL ファイルと同じ Business Central プロジェクトパッケージに置く必要があります。同じパッケージに含まれるアセットはデフォルトでインポートされます。その他のパッケージの既存アセットは、DRL ルールを使用してインポートできます。
5.2.4.2. DRL デザイナーを使用した従業員の勤務表の制約定義
Business Central で Free form DRL デザイナーを使用して、従業員の勤務表サンプルに制約の定義を作成できます。
この手順を使用して、シフトが終わってから 10 時間以上経たないと従業員をシフトに割り当てられない ハード制約 を作成します。
手順
-
Business Central で、Menu
Design Projects に移動して、プロジェクト名をクリックします。 -
Add Asset
DRL ファイル の順にクリックします。 -
DRL file 名前フィールドに、
ComplexScoreRules
と入力します。 -
employeerostering.employeerostering
パッケージを選択します。 - +OK をクリックして DRL ファイルを作成します。
DRL デザイナーの Model タブで、
Employee10HourShiftSpace
ルールを DRL ファイルとして定義します。package employeerostering.employeerostering; rule "Employee10HourShiftSpace" when $shiftAssignment : ShiftAssignment( $employee : employee != null, $shiftEndDateTime : shift.timeslot.endTime) ShiftAssignment( this != $shiftAssignment, $employee == employee, $shiftEndDateTime <= shift.timeslot.endTime, $shiftEndDateTime.until(shift.timeslot.startTime, java.time.temporal.ChronoUnit.HOURS) <10) then scoreHolder.addHardConstraintMatch(kcontext, -1); end
- Save をクリックして、DRL ファイルを保存します。
DRL ファイルの作成方法は DRL ルールを使用したデシジョンサービスの作成 を参照してください。
5.2.5. ガイド付きルールを使用して従業員の勤務表にルールの作成
Business Central でガイド付きルールデザイナーを使用して、従業員の勤務表にハード制約およびソフト制約を定義するルールを作成できます。
5.2.5.1. ガイド付きルール
ガイド付きルールは、ルール作成のプロセスを提供する、Business Central の UI ベースのガイド付きルールデザイナーで作成するビジネスルールです。ガイド付きルールデザイナーを使用すると、ルールを定義するデータオブジェクトに基づいて、可能なインプットにフィールドおよびオプションを提供します。定義したガイド付きルールは、その他のすべてのルールアセットとともに Drools Rule Language (DRL) ルールにコンパイルされます。
ガイド付きルールに関連するすべてのデータオブジェクトは、ガイド付きルールと同じプロジェクトパッケージに置く必要があります。同じパッケージに含まれるアセットはデフォルトでインポートされます。必要なデータオブジェクトとガイド付きルールを作成したら、ガイド付きルールデザイナーの Data Objects タブから、必要なデータオブジェクトがすべてリストされていることを検証したり、新規アイテム を追加してその他の既存データオブジェクトをインポートしたりできます。
5.2.5.2. 従業員のシフト数のバランスを取るガイド付きルールの作成
ガイド付きルール BalanceEmployeesShiftNumber
は、可能な限りバランスを取るように従業員にシフトを割り当てるソフト制約を作成します。これは、シフトの分配が平等でなくなると増えるスコアペナルティーを作成することで行います。ルールによって実装されたスコア式により、Solver がよりバランスの取れるようにシフトを分散させます。

手順
-
Business Central で、Menu
Design Projects に移動して、プロジェクト名をクリックします。 -
Add Asset
Guided Rule の順にクリックします。 -
Guided Rule 名 に
BalanceEmployeesShiftNumber
と入力し、Package でemployeerostering.employeerostering
を選択します。 - OK をクリックして、ルールアセットを作成します。
-
WHEN フィールドで
をクリックして、WHEN 条件を追加します。
-
Add a condition to the rule ウィンドウで
Employee
を選択します。+OK をクリックします。 -
Employee
条件でクリックして制約を修正し、変数名$employee
を追加します。 WHEN 条件
From Accumulate
を追加します。-
From Accumulate
条件の上で click to add pattern をクリックし、ドロップダウンリストでファクトタイプNumber
を選択します。 -
変数名
$shiftCount
をNumber
条件に追加します。 -
From Accumulate
条件の下で click to add pattern をクリックして、ドロップダウンリストでShiftAssignment
ファクトタイプを選択します。 -
変数名
$shiftAssignment
をShiftAssignment
ファクトタイプに追加します。 -
ShiftAssignment
条件を再度クリックし、Add a restriction on a field ドロップダウンリストでemployee
を選択します。 -
employee
制約の横にあるドロップダウンリストでequal to
を選択します。 -
ドロップダウンボタンの横の
アイコンをクリックして変数を追加し、Field value ウィンドウで Bound variable をクリックします。
-
ドロップダウンリストで
$employee
を選択します。 -
Function ボックスに
count ($shiftAssignment)
と入力します。
-
-
THEN フィールドで
をクリックして、THEN 条件を追加します。
Add a new action
ウィンドウで Modify Soft Score を選択します。+OK をクリックします。-
ボックスに
- ($shiftCount.intValue()*$shiftCount.intValue())
と入力します。
-
ボックスに
- 右上隅の Validate をクリックし、ルール条件がすべて有効であることを確認しますルールの妥当性確認に失敗したら、エラーメッセージに記載された問題に対応し、ルールの全コンポーネントを見直し、エラーが表示されなくなるまでルールの妥当性確認を行います。
- Save をクリックして、ルールを保存します。
ガイド付きルールの作成方法は ガイド付きルールを使用したデシジョンサービスの作成 を参照してください。
5.2.5.3. 同じ日に複数のシフトを割り当てないようにするガイド付きルールの作成
ガイド付きルール OneEmployeeShiftPerDay
は、同じ日の複数のシフトに従業員を割り当てないようにするハード制約を作成します。従業員の勤務表サンプルでは、この制約はガイド付きルールデザイナーを使用して作成されます。

手順
-
Business Central で、Menu
Design Projects に移動して、プロジェクト名をクリックします。 -
Add Asset
Guided Rule の順にクリックします。 -
Guided Rule 名に
OneEmployeeShiftPerDay
と入力し、Package でemployeerostering.employeerostering
を選択します。 - OK をクリックして、ルールアセットを作成します。
-
WHEN フィールドで
をクリックして、WHEN 条件を追加します。
- Add a condition to the rule ウィンドウから Free form DRL を選択します。
Free form の DRL ボックスに、以下の条件を入力します。
$shiftAssignment : ShiftAssignment( employee != null ) ShiftAssignment( this != $shiftAssignment , employee == $shiftAssignment.employee , shift.timeslot.startTime.toLocalDate() == $shiftAssignment.shift.timeslot.startTime.toLocalDate() )
この条件は、同じ日に別のシフトがすでに割り当てられている従業員にはシフトを割り当てることができないことを示しています。
-
THEN フィールドで
をクリックして、THEN 条件を追加します。
- Add a new action ウィンドウから Add Free form DRL を選択します。
Free form の DRL ボックスに、以下の条件を入力します。
scoreHolder.addHardConstraintMatch(kcontext, -1);
- 右上隅の Validate をクリックし、ルール条件がすべて有効であることを確認しますルールの妥当性確認に失敗したら、エラーメッセージに記載された問題に対応し、ルールの全コンポーネントを見直し、エラーが表示されなくなるまでルールの妥当性確認を行います。
- Save をクリックして、ルールを保存します。
ガイド付きルールの作成方法は ガイド付きルールを使用したデシジョンサービスの作成 を参照してください。
5.2.5.4. シフト要件にスキルを一致させるガイド付きルールの作成
ガイド付きルール ShiftReqiredSkillsAreMet
は、すべてのシフトが、適切なスキルセットを持つ従業員に割り当てられるのを確認するハード制約を作成します。従業員の勤務表サンプルでは、この制約はガイド付きルールデザイナーを使用して作成されます。

手順
-
Business Central で、Menu
Design Projects に移動して、プロジェクト名をクリックします。 -
Add Asset
Guided Rule の順にクリックします。 -
Guided Rule 名に
ShiftReqiredSkillsAreMet
と入力し、Package でemployeerostering.employeerostering
を選択します。 - OK をクリックして、ルールアセットを作成します。
-
WHEN フィールドで
をクリックして、WHEN 条件を追加します。
-
Add a condition to the rule ウィンドウで
ShiftAssignment
を選択します。+OK をクリックします。 -
ShiftAssignment
条件をクリックし、Add a restriction on a field ドロップダウンリストでemployee
を選択します。 -
デザイナーで、
employee
の横のドロップダウンリストをクリックし、is not null
を選択します。 ShiftAssignment
条件をクリックし、Expression editor をクリックします。-
デザイナーで、
[not bound]
をクリックし、Expression editor を開き、式と変数$requiredSkill
をバインドします。Set をクリックします。 -
デザイナーの
$requiredSkill
の横にあるドロップダウンリストでshift
を選択し、その隣のドロップダウンリストでrequiredSkill
を選択します。
-
デザイナーで、
ShiftAssignment
条件をクリックし、Expression editor をクリックします。-
デザイナーで、
[not bound]
の横にあるドロップダウンリストでemployee
を選択し、その隣のドロップダウンリストでskills
を選択します。 -
その隣のドロップダウンリストでは
Choose
を選択したままにします。 -
その隣のドロップダウンボックスで、
please choose
をexcludes
に変更します。 -
excludes
の横にあるアイコンをクリックし、Field value ウィンドウで New formula ボタンをクリックします。
-
式ボックスに
$requiredSkill
を追加します。
-
デザイナーで、
-
THEN フィールドで
をクリックして、THEN 条件を追加します。
-
Add a new action ウィンドウで
Modify Hard Score
を選択します。+OK をクリックします。 -
スコアアクションボックスに
-1
を入力します。 - 右上隅の Validate をクリックし、ルール条件がすべて有効であることを確認しますルールの妥当性確認に失敗したら、エラーメッセージに記載された問題に対応し、ルールの全コンポーネントを見直し、エラーが表示されなくなるまでルールの妥当性確認を行います。
- Save をクリックして、ルールを保存します。
ガイド付きルールの作成方法は ガイド付きルールを使用したデシジョンサービスの作成 を参照してください。
5.2.5.5. 休暇申請を管理するガイド付きルールの作成
ガイド付きルール DayOffRequest
は、ソフト制約を作成します。この制約では、そのシフトに元々割り当てられていた従業員がその日に就業できなくなった場合に、別の従業員にシフトを再割り当てできるようにできます。従業員の勤務表サンプルでは、この制約はガイド付きルールデザイナーを使用して作成されます。

手順
-
Business Central で、Menu
Design Projects に移動して、プロジェクト名をクリックします。 -
Add Asset
Guided Rule の順にクリックします。 -
Guided Rule 名に
DayOffRequest
と入力し、Package でemployeerostering.employeerostering
を選択します。 - OK をクリックして、ルールアセットを作成します。
-
WHEN フィールドで
をクリックして、WHEN 条件を追加します。
- Add a condition to the rule ウィンドウから Free form DRL を選択します。
Free form の DRL ボックスに、以下の条件を入力します。
$dayOffRequest : DayOffRequest( ) ShiftAssignment( employee == $dayOffRequest.employee , shift.timeslot.startTime.toLocalDate() == $dayOffRequest.date )
この条件は、休暇申請を行った従業員にシフトを割り当てている場合に、その従業員をその日のシフト割り当てから削除できることを示しています。
-
THEN フィールドで
をクリックして、THEN 条件を追加します。
- Add a new action ウィンドウから Add Free form DRL を選択します。
Free form の DRL ボックスに、以下の条件を入力します。
scoreHolder.addSoftConstraintMatch(kcontext, -100);
- 右上隅の Validate をクリックし、ルール条件がすべて有効であることを確認しますルールの妥当性確認に失敗したら、エラーメッセージに記載された問題に対応し、ルールの全コンポーネントを見直し、エラーが表示されなくなるまでルールの妥当性確認を行います。
- Save をクリックして、ルールを保存します。
ガイド付きルールの作成方法は ガイド付きルールを使用したデシジョンサービスの作成 を参照してください。
5.2.6. 従業員の勤務表の Solver 設定の作成
Business Central に Solver 設定を作成して編集できます。Solver 設定デザイナーは、プロジェクトがデプロイされた後に実行できる Solver 設定を作成します。
前提条件
- Red Hat Process Automation Manager をダウンロードして、インストールしている。
- 従業員の勤務表サンプルに関連するアセットをすべて作成して設定している。
手順
-
Business Central で Menu
Projects をクリックし、使用するプロジェクトをクリックして開きます。 -
Assets パースペクティブで、Add Asset
Solver configuration をクリックします。 Create new Solver configuration ウィンドウで、Solver の名前
EmployeeRosteringSolverConfig
と入力し、Ok をクリックします。これにより、Solver configuration デザイナーが開きます。
Score Director Factory 設定セクションで、スコアリングルール定義を含む KIE ベースを定義します。従業員の勤務表サンプルプロジェクトは
defaultKieBase
を使用します。-
KIE ベースに定義した KIE セッションの中から 1 つ選択します。従業員の勤務表サンプルプロジェクトは
defaultKieSession
を使用します。
-
KIE ベースに定義した KIE セッションの中から 1 つ選択します。従業員の勤務表サンプルプロジェクトは
- 右上の Validate をクリックし、Score Director Factory 設定が正しいことを確認します。妥当性確認に失敗したら、エラーメッセージに記載された問題に対応し、エラーが表示されなくなるまで妥当性確認を行います。
- Save をクリックして、Solver 設定を保存します。
5.2.7. 従業員の勤務表プロジェクトに対する Solver の終了設定
一定期間が過ぎたら Solver が終了できるように設定できます。デフォルトでは、プランニングエンジンには、時間制限なく問題を解決できるように指定されています。
従業員の勤務表サンプルプロジェクトは、30 秒間実行するように設定されています。
前提条件
-
従業員の勤務表プロジェクトに、関連するすべてのアセットを作成し、「従業員の勤務表の Solver 設定の作成」 の手順に従って、Business Central に Solver 設定
EmployeeRosteringSolverConfig
を作成している。
手順
-
Assets パースペクティブで
EmployeeRosteringSolverConfig
を開きます。これにより、Solver 設定 デザイナーが開きます。 - Termination セクションで Add をクリックして、選択した論理グループに新しい終了要素を作成します。
-
ドロップダウンリストから、終了タイプ
Time spent
を選択します。これは、終了条件の入力フィールドとして追加されます。 - 時間要素の横の矢印を使用して、経過時間を 30 秒に設定します。
- 右上の Validate をクリックし、Score Director Factory 設定が正しいことを確認します。妥当性確認に失敗したら、エラーメッセージに記載された問題に対応し、エラーが表示されなくなるまで妥当性確認を行います。
- Save をクリックして、Solver 設定を保存します。