施設と関連リソースのスケジュール
Universal Resource Scheduling (URS) を使用すると、組織は顧客と会社のリソースとの間の対話をスケジュールすることができます。 顧客が会社の所在地に移動することが想定されるシナリオでは、設備のスケジューリング機能で物理的な空間と関連リソースを調整できます。
代表的な例は次のとおりです。
物理的な空間の予約
- イベントまたはパーティ用の部屋の予約
- 演習クラスの部屋の予約
- 修理工場の修理場の予約
- ボートの予約
設備のスタッフとの予定の予約
- マイクロソフト小売店でのラップトップの修理
- 銀行の支店での資産管理相談
- 関連する看護師と医師がいる医院
この記事では、施設のスケジュール設定を使用したいくつかのシナリオ例を紹介します。
前提条件
- Universal Resource Scheduling (URS) v3.0
- Field Service v8.0 (該当する場合の作業指示書用)
通常、施設のスケジュール設定を使用するには、施設リソースを作成し、施設リソースを要求する要件を構成し、要件を予約します。
シナリオ 1: 設備のスケジュール
このシナリオでは、スケジューラで近隣の医院を検索し、医院に到着する患者の予定をスケジュールします。
このシナリオを構成するには、医院を表す施設リソースを作成し、近隣の施設での予約に関する患者の要求を表す要件を作成してから、予約を行い、スケジュール ボードに施設と予約を表示します。
1. 設備リソースを作成する
まず、Universal Resource Scheduling > リソースに移動し、次の属性を持つ設備リソースを作成します。
- リソースの種類: 施設。
- 開始/終了場所: 組織単位の住所。 親組織には、施設の場所を表す緯度と経度の値が必要です。 これにより、スケジュール アシスタントは使用可能な結果を表示する際に施設の場所を考慮できます。
- スケジュール ボードで表示 = はい
- 空き時間の検索の対象にする = はい
- (任意) 作業時間を入力します
- (任意) 関連する特性、担当地域、リソースのロールなどを追加して、設備リソースを他の設備やリソースと区別します。 たとえば、医院に X 線装置がある場合、"X 線" を特性として設備リソースに追加できます。 これは、スケジュール ボードでフィルター処理されて表示される設備リソースや、スケジュール アシスタントの検索時に返される設備リソースに影響することがあります。
2. 設備の要件を作成する
次に、設備リソースを要求する要件を作成します。
Universal Resource Scheduling > 要件グループ > +新規に移動します。 次のフィールドを構成します。
- 名前を入力します
- 開始と終了の日付を入力します
- 期間を設定します
- 要件を強調表示し、フォームを開くを選択して、リソースの種類フィールドを設備に設定します。これにより、以下が実現されます。
- 選択された種類 (ユーザー、取引先企業、取引先担当者、設備、プール、スタッフ、またはこのケースでは設備) のリソースだけを表示することでスケジュール アシスタントの結果をフィルター処理します。
- これは、要件が設備リソースの充足を必要とし、スケジュール アシスタントの検索結果で種類が (担当者や備品ではなく) 設備であるリソースが返されることを意味します。
- これはリソース エンティティ上のリソースの種類フィールドにマッピングされます。
- このフィールドを空のままにすると、すべてのリソースが検索されます。
- 作業場所を設備に設定します。これは次のことを意味します。
- やり取りはスケジュールされた施設で行われ、移動時間や距離の計算で考慮されます。 詳しくは、この記事の「構成の考慮事項」のセクションをご覧ください。
- 緯度と経度を入力します。
- 通常、これらの値は手動で入力するか、ワークフロー経由で入力されます。
- これらの値は、顧客の場所を表し、スケジュール アシスタントの結果で設備を顧客の場所との相対で表示するために使用されます。 これは、施設の種類のリソースの組織単位から取得されるので、施設の場所ではありません。
3. 要件を予約する
設備リソースと、設備を要求する要件を作成した後で、設備をスケジュールできます。 グループに属する要件は、ドラッグ アンド ドロップではなく、スケジュール アシスタントをトリガーする予約ボタンを使用してスケジュールできます。 グループに属さない設備要件 (単一要件) は、スケジュール ボード上で、またはスケジュール アシスタントを使用して、設備に手動でドラッグ アンド ドロップできます。
スケジュール アシスタントでは、リソースの空き時間と、特性、組織単位、カテゴリなどのその他の設定された要件制約を考慮します。
次のスクリーンショットに示すように、要件または要件グループ フォームから予約を選択します。
前のスケジュール アシスタント例の設備の移動時間と距離の計算は、設備リソース (関連する組織単位の場所によって定義) と顧客の場所 (要件の緯度と経度の値で定義) の間の時間と距離を表します。 スケジュール アシスタントの半径フィルターは、この移動計算に基づいてフィルター処理します。
作業場所を指定場所なしにフィルター処理 すると、移動時間と距離の計算がスケジュール アシスタントの結果から削除されます。
4. スケジュール ボードに設備リソースを追加する
設備のスケジューリングは、他のリソースのスケジューリングと同様です。 要件をドラッグ アンド ドロップして予約を作成できます。既存の予約をドラッグして時間やリソースを変更できます。または、スケジュール アシスタントを使用して、空き時間やその他の制約に基づいて設備の一覧をふるい分けることができます。
スケジュール ボードに設備リソースを表示するには、リソースの種類または組織単位、あるいはその両方でフィルター処理します。
設備リソースは、関連組織単位の場所に基づいてスケジュール ボード マップにも表示されます。
シナリオ 2: 5 つの汎用的な部屋がある設備のスケジュール
このシナリオでは、医院に 5 つの同一の部屋があり、スケジューラは各部屋を明示的に予約する必要はありません。 ただし、1 つの時間帯にすべての部屋に対して予約される患者が 5 人以下となるようにします。
施設リソースに キャパシティ を追加することで、このシナリオを構成します。
1. 設備リソースを作成する
この記事のシナリオ 1 を参照して設備リソースを作成するか、既存の設備リソース レコードを選択します。
設備リソース レコードから、上部リボンの作業時間の表示を選択します。
2. 設備リソースのキャパシティを設定する
時間を選択するときに、空きを表示するを選択し、5 と入力します。 既定では、キャパシティは 1 に設定されています。
キャパシティを 5 に設定することは、スケジュール アシスタントで施設を予約するときに、キャパシティ制限 (この場合は、5 回) に達するまで施設リソースが空きありとして表示され、重複予約できることを意味します。
前のスクリーンショットで、設備に対する 2 つの異なる要件は、どちらも同じ時間帯に同じ設備にスケジュールされました。 キャパシティを増やさない場合、1 つの設備で 1 つの時間帯が予約されると、その設備のその時間帯はスケジュール アシスタントの結果に表示されなくなります。
Note
キャパシティ スケジューリングは、同じ要件を複数回予約することが目的ではなく、複数の要件を予約することが目的です。 前に予約された要件を再予約すると、既存の予約が取り消され、新しい予約が作成されます。
3. 設備の要件を作成する
次に、設備リソースを要求する要件を作成します。
Universal Resource Scheduling > 要件グループ > +新規に移動します。 次のフィールドを構成します。
- 名前を入力します
- 開始と終了の日付を入力します
- 期間を設定します
- 要件を強調表示し、フォームを開くを選択して、リソースの種類フィールドを設備に設定します。これにより、以下が実現されます。
- 選択された種類 (ユーザー、取引先企業、取引先担当者、設備、プール、スタッフ、またはこのケースでは設備) のリソースだけを表示することでスケジュール アシスタントの結果をフィルター処理します。
- これは、要件が設備リソースの充足を必要とし、スケジュール アシスタントの検索結果で種類が (担当者や備品ではなく) 設備であるリソースが返されることを意味します。
- これはリソース エンティティ上のリソースの種類フィールドにマッピングされます。
- このフィールドを空のままにすると、すべてのリソースが検索されます。
- 作業場所を設備に設定します。これは次のことを意味します。
- やり取りはスケジュールされた施設で行われ、移動時間や距離の計算で考慮されます。 詳しくは、この記事の「構成の考慮事項」のセクションをご覧ください。
- 緯度と経度を入力します。
- 通常、これらの値は手動で入力するか、ワークフロー経由で入力されます。
- これらの値は、顧客の場所を表し、スケジュール アシスタントの結果で設備を顧客の場所との相対で表示するために使用されます。 これは、施設の種類のリソースの組織単位から取得されるので、施設の場所ではありません。
シナリオ 3: 設備と関連リソースのスケジュール
このシナリオでは、スケジューラは同じ時間帯に同じ設備で医院と関連する医師をスケジュールします。
このシナリオを構成するには、設備リソースを作成し、医師リソース (リソースの種類 = ユーザー/取引先担当者/取引先企業のリソース) を作成し、医師リソースを設備リソースに関連付けてから、設備と医師の両方を要求する要件グループを作成します。
設備でタスクを同時に実行するようにリソースのグループをスケジュールするために、リソースの関連エンティティ (msdyn_bookableresourceassociations) を通じて設備以外のリソースを設備/設備プール リソースに関連付けることができます。
人、備品、プール リソースなどのリソースは、日付の有効性がある設備や設備プールに関連付けることができます。 これは、明示された日付範囲内にリソースが施設の場所で作業を実行し、施設を離れて顧客の場所に移動する必要のある "オンサイト" 作業の対象にはならないことを意味します。 これは、同じリソース ツリー オプションの使用に関連するため重要です。
1. 設備リソースを作成する
まず、医院を表すリソースを作成します。 リソースの種類は設備に設定する必要があります。 次のスクリーンショットは、設備リソースの例を示しています。
2. 医師リソースを作成する
医師を表すリソースを作成します。 ビジネス ニーズに基づいて、リソースの種類をユーザー、取引先企業、または取引先担当者に設定します。
Note
種類がユーザーのリソースは、通常は Dynamics 365 データにアクセスする従業員に対して指定されます。取引先担当者と取引先企業の種類のリソースは、通常は、スケジュールする必要があるものの、データにはアクセスしない契約業者に対して指定されます。
開始/終了場所は組織単位の住所に設定する必要があり、組織単位は設備リソースの同じ組織単位 (この場合は医院) に設定する必要があります。 これは推奨されますが、必須ではありません。
3. 設備リソースに医師リソースを関連付ける
設備リソースから、関連 > 予約可能リソースの関連 (リソース 2) に移動します。 この関連エンティティはリソースの関連 (msdyn_bookableresourceassociations) と呼ばれます。
ここから、医師を表すリソースを関連付けます。
次のスクリーンショットで、Abraham McCormick は医師を表し、医院を表す "Doctors Office North Seattle" (シアトル北医院) に関連付けられています。
4. 要件グループを作成する
次に、医院 (リソースの種類 = 設備) を要求する 1 つの要件を含む要件グループと、医師 (リソースの種類 = ユーザー/取引先担当者ま/取引先企業) を要求する別の要件を作成します。
各要件で 作業場所 を施設 に設定し、作業が医院で行われることを示します。
注意Note
要件グループでの選択 > すべてオプションの使用は、両方の要件を満たす必要があることを意味します。
同じものの一部をリソース ツリーに設定します。 これにより、異なる場所からのリソースが施設で行われる作業に推奨されなくなります。 たとえば、施設 B に関連付けられている医師は、施設 A とペアすることはできません。この設定について詳しくは、この記事の構成の考慮事項セクションをご覧ください。
要件グループをスケジュールすると、設備リソースと医師リソースの予約が作成されます。
Note
シナリオ 1 と同様に、移動時間と距離は顧客が設備に移動するための時間および距離として計算されます。 医師リソースに対して移動計算は考慮されません。医師は必要なときに設備にいることが想定されるからです。
シナリオ 4: 5 つの特定の部屋がある設備のスケジュール
このシナリオでは、スケジューラは医院内のすべての部屋を追跡し、個々の部屋を患者に対してスケジュールします。
このシナリオを構成するには、医院と個々の部屋を表す設備のプールを作成します。
1. 設備プールのリソースを作成する
まず、リソースの種類 = プールかつプールの種類 = 設備である医院全体を表すリソースを作成します。
この例では、次のスクリーンショットに示すように、これを "Health Clinic" (診療所) と呼びます。
2. 各部屋を表す設備リソースを作成する
次に、各部屋を表す複数の設備リソースを作成します。
各リソースのリソースの種類を設備に設定します。
開始/終了場所を組織単位の住所に設定し、部屋の場所を表す組織単位を選択します。
3. 各部屋のリソースを子リソースとして医院リソース プールに追加する
医院設備プール リソースに移動し、関連 > リソースの子に移動します。
次のスクリーンショットに示すように、各部屋リソースを子レコードとして親設備プール (診療所) に追加します。
4. 要件グループを作成する
1 つ以上の設備を要求する要件を作成します。 この例では、同じ医院 (診療所) 内の 2 つの特定の部屋を探しています。
同じものの一部を同じ場所に設定して、各部屋が必ず同じ住所にあるようにします。
次のスクリーンショットに示すように、各要件はリソースの種類として設備を要求する必要があります。
この場合も、各要件の作業場所は設備に設定される必要があり、要件の [緯度] フィールドと [経度] フィールドは顧客 (または患者) の場所に対応している必要があります。
Note
グループ内のすべての要件の [緯度] フィールドと [経度] フィールドは同じである必要があります。1 つの要件の値を更新すると、他の値も更新されます。
5. 要件グループを予約する
要件グループから予約を選択して、スケジュール アシスタントをトリガーします。
前のスクリーンショットの結果では、2 つの特定の部屋が同じ場所で推奨されます。 移動時間と距離は顧客の場所 (要件レコードの緯度と経度の値) と設備リソースの場所 (リソースの子組織単位) から計算されます。
シナリオ 5: 5 つの特定の部屋と 5 つの関連リソースがある設備のスケジュール
このシナリオでは、スケジューラは、診療所に勤務する手が空いている小児科医のプールに対して医院内の特定の部屋をスケジュールします。
このシナリオを構成するには、設備のプールと医師のプールを作成し、それらをまとめてリソースの関連 (msdyn_bookableresourceassociations) に関連付けます。
1. 設備プールを作成する
シナリオ 4 で使用したのと同じプロセスを使用して、医院を表す設備プール リソースを作成します。
2. 各部屋の設備リソースを作成する
次に、医院の設備プールに各部屋を表す設備リソースを作成します。
その後、各部屋をリソースの子として医院 (診療所) 設備プール リソースに追加します。 医院設備プールと部屋設備の組織単位は同じである必要があります。
3. 小児科医のプールを作成する
小児科医を表す新しいリソース プールを作成します。
医師は人員であるため、リソースの種類をプールに設定し、プールの種類を取引先担当者、ユーザー、取引先企業に設定します。
すべてのリソース レコードに当てはまることですが、リソース間の相違点を定義して区別する特性を追加できます。 この例では、"小児科" を医師リソースに追加するスキルにすることができます。
グループ メンバーからキャパシティを派生をはいに設定します。 これは、プールのキャパシティが、それに関連付けられている医師の数に基づくことを意味します。
医師を表すリソースを作成し、それらを小児科医プールにリソースの子として追加します。
5. 医師プールを設備プールに関連付ける
次に、元の設備プール (診療所) に移動し、関連 > 予約可能リソースの関連に移動します。
次のスクリーンショットに示すように、リソース 2 フィールドを小児科医プール リソースに設定します。
6. 部屋と医師の要件グループを作成する
Universal Resource Scheduling > 要件グループ > +新規に移動します。
この例では、2 つの部屋 (設備) と小児科医を要求する要件グループを作成しました。
同じものの一部をリソース ツリーに設定すると、リソースの子またはリソースの関連を通じて部屋と小児科医が同じ設備リソースに関連付けられます。
各部屋要件について、リソースの種類を設備に設定します。
小児科医の要件に対して選択したリソースの種類は、スケジュール アシスタントの結果に影響します。
要件で、[リソースの種類] = [プール] かつ [プールの種類] = [ユーザー、アカウント、連絡先] の場合、小児科医プール リソースが結果に表示されます。
これにより、小児科医プールを予約し、後で特定の小児科医を割り当てることができます。 小児科医が結果として表示されるかどうかは、キャパシティに依存します (プールの医師の数から算出されるため)。 プールを使用すると、スケジューラはスケジューリングの時点で特定の医師を割り当てる必要なしに、キャパシティに基づいて予定を予約できます。
要件で、[リソースの種類] = [ユーザー、アカウント、連絡先 (プールではない)] の場合、次のスクリーンショットに示すように、特定の医師リソースが結果に表示されます。
Note
スケジュール アシスタントの結果を 1 時間単位の時間帯で表示するにはフルフィルメントの基本設定を使用します。
構成の考慮事項
要件に対して適切な作業場所の選択
次の作業場所の種類を見てみましょう。
- 施設
- オンサイト
- 場所指定なし
設備作業場所は、対話が設備で行われ、移動時間が顧客の場所と設備の場所間の距離として計算されることを意味します。 要件の [緯度] フィールドと [経度] フィールドは顧客の場所として使用されます。 また、リソースが返されるためには、少なくとも 1 つの施設または施設プールがスケジュール アシスタントの検索結果で返される必要があることも意味します。
オンサイト作業場所は、対話が顧客の場所で行われ、移動時間が顧客の場所とリソース (通常はフィールド技術者) の場所の間の距離として計算されることを意味します。これは、その日のリソースのスケジュールに基づいて変化します。 要件の [緯度] フィールドと [経度] フィールドは顧客の場所として使用されます。 その結果、施設リソースと施設プールは結果から除外されます。
場所指定なしの作業場所は、対話がリモートで行われ、顧客の場所もリソースの場所もスケジューリングで考慮されないことを意味します。 移動時間は適用されず、計算されません。 施設リソースはスケジュール アシスタント検索の一部として引き続き返されますが、移動時間は表示されず、ランキングで考慮されません。
要件グループの [同じものの一部] オプション
同じ場所: 同じ場所とは、同じ場所で働くリソースの チームだけが返されることを意味します。 このドキュメントで説明しているロジックを使用し、リソースの関連 (msdyn_bookableresourceassociations) および予約可能リソース グループ (bookableresourcegroup) エンティティを使用して場所を決定します。 このオプションを使用する場合、他の設備以外のリソースをどの特定の設備または設備プールに関連付けることができるかにかかわらず、重要なのはリソースが物理的に同じ場所 (組織単位) にあることです。
同じリソース ツリー: このオプションは、検索の厳密度にレイヤーを追加します。 つまり、編成されたチームがチームとして返されるためには、実際に同じ設備または設備プールに関連付けられている必要があります。 たとえば、1 つの物理的な場所である場所 A があるとします。
場所 A には、設備 1 と設備 2 の 2 つの設備があります。 リソース 1 が設備 1 に関連付けられ、"同じリソース ツリー" が選択されている場合、編成できる 1 つのチームは設備 1 + リソース 1 です。 施設 2 とリソース 1 を返すことはできません。 ただし、この組み合わせは、選択されている唯一のオプションが "同じ場所" である場合に返されることがあります。
これは設備プールと同じように動作します。 1 つの物理的な場所、場所 A があると仮定します。場所 A には、施設 1 と施設 2 の 2 つの施設と、施設プール (施設プール 1) があります。 リソース 1 が設備プール 1 に関連付けられ、"同じリソース ツリー" が選択されている場合、編成できる 1 つのチームは設備プール 1 (または、その子設備の 1 つ) + リソース 1 です。
Note
要件関係 (msdyn_requirementrelationship) でこの 2 つのオプションのどちらも選択されておらず、作業場所が設備に設定されている場合、スケジュール アシスタントの検索は、"同じリソース ツリー" が選択されているかのように実行されます。
同じ組織単位: より厳格なオプションは、同じ組織単位です。 このオプションでは、リソースの親組織単位が必ず同じになります。 予約可能リソース グループまたは予約可能リソースの関連エンティティはチェックされません。 親組織単位のみがチェックされます。
実装で、指定場所なしの要件を使用する場合、このオプションは、他の 2 つのオプションのいずれもなしで使用できます。ただし、前述の 2 つのエンティティ (関連とグループ) は完全に無視されます。 これは、リソースが常に同じ場所に配置され、作業場所 "施設" の詳細な場所検索機能が不要な単純な実装で機能します。
Note
同じものの一部フィールドのスキーマ名は msdyn_requirementrelationship です
"キャパシティのある設備"、"複数設備"、"設備プール" を使用する場合
キャパシティのある設備: このオプションは、単一の設備にキャパシティを追加することで構成されます。 これは、スケジューラの最大の関心事が重複予約の回避であり、特定の設備をスケジュールする必要がないか、顧客が設備に到着したときに直接対応できる場合に最も有用です。
複数設備: このオプションは、複数の設備リソースを作成し、組織単位を通じてそれらを相互に関連付けることによって構成されます。 このオプションは、各設備を個別にスケジュールする必要がある場合に最も有意義です。
設備プール: このオプションは、設備プールを作成し、設備をプールのメンバーとして追加することによって構成されます。 このオプションは、スケジューラが、(1) 設備が追加または削除されたときに設備プールのキャパシティを増減することでキャパシティ スケジューリングを利用し、(2) 予約が最初に設備プールに割り当てられてからプール メンバーに割り当てられるローカル スケジューリングを使用する場合に最も有意義です。 例: ある週末に対して最初にホテル (設備プール) がスケジュールされ、後日旅行者が到着したときにその旅行者に特定の部屋 (設備プールのメンバー) が割り当てられます。
Field Service v7.x から v8.x にアップグレードすると、種類が設備のリソースは、既定のフィルター設定によるスケジュール アシスタントの結果に表示されないことがあります。 これを修正するには、Field Service>スケジュール ボード に移動します。 スケジュール ボード タブをダブルクリックし、次に右上にある 既定の設定を開く をダブルクリックします。 その他の設定 まで下方向にスクロールします。 次のスクリーンショットに示されるように、リソース取得クエリ を 3.0.0.0 に設定します。 フィルター レイアウト と リソース セル テンプレート も、3.0.0.0 に設定します。
追加メモ
- 要件グループの一部ではない要件では、作業場所 が 施設 に設定されている場合、施設または施設プール リソースだけがスケジュール アシスタントに返されます。
- リソースは、同時に 2 つの設備 (子または関連) に関連付けることはできません。
- 現在、スケジュール ボード上の施設に関連するすべてのリソースを視覚化する特定の方法はありません。 この実現に最も近い方法は、組織単位でフィルター処理することです。
- 単一の要件を施設に手動でスケジュールしても、施設に関連するすべてのリソースのレコードは作成されません。
設備プールの場所
設備プールの場所は、親組織単位から取得されます。 設備リソースが設備プールのメンバーになっている場合、設備の場所はプール リソースから取得されます。 たとえば、場所 A の場所/組織単位がある施設を作成し、この施設を 場所 B にあるプールに追加する場合、この施設は、プールに残っている限り 場所 B にあるものと見なされます。
場所の予約
チームが選択され、予約されると、予約された設備/設備プールの緯度と経度が予約レコードに格納されます。 作業場所も、スケジュール アシスタントでの予約時に使用された作業場所に基づいて設定されます。 次の条件では、作業場所、緯度、軽度が依然として予約で設定されます。
- 予約がスケジュール アシスタントを使用しないで作成された場合
- 要件の作業場所が設備に設定されている場合
- 要件に緯度と経度の値がある場合