作業指示書フォームのカスタマイズに関する考慮事項

この記事では、Dynamics 365 Field Service で作業指示書フォームをカスタマイズする際の一般的な考慮事項を示します。 さらに、本記事では、作業指示書のフォームを編集する際にフォームデザイナーで利用可能なコードコンポーネントやPCFコントロールも一覧化しています。 メイカーはこれらのコンポーネントをフォームやビューで使い、ユーザー向けに体験をカスタマイズできます。 Power Apps開発者ドキュメントでコードコントロールについて詳しく学びましょう。

ヒント

ユーザーが目的のフィールドのみを更新するように、フィールド レベルのセキュリティを構成します。 たとえば、フォーム内のフィールドが読み取り専用に設定されている場合、ユーザーは引き続き一部のフィールドを更新できます。 ユーザーが正しいフィールド レベルのセキュリティを持っていない場合、システムは更新されたフォームを保存しません。

作業指示書のヘッダーとコマンドバー

  • ヘッダー: 完全にカスタマイズ可能です。 作成者は Maker Portal に表示される情報を変更することができます。 セクションやタブを非表示にしたり、独自のカスタム タブを作成したりすることもできます。
  • フォーム スイッチャー: 作成者は、セキュリティ ロールに基づいて、ユーザーが表示できるフォーム を制御できます。
  • コマンド バー: 既定で簡略化されたコマンド バーを使用します。 管理者は、 簡素化された作業指示コマンドを表示する 設定をオフにできます。 カスタム追加コマンドが消えている場合は、メイカーポータルにアクセスして再び表示できます。

作業指示のサブグリッドをポップアップ形式で

作業指示のサブエンティティをダイアログボックスとして表示させ、作業指示フォームを離れずに編集します。 この構成は、ディスパッチャーが作業指示書のコンテキストを維持するのに役立ちます。 管理者はフィールドサービス設定>その他で「作業指示のサブグリッド記録をポップアップとして開く」設定を有効にすることができます。

簡易作業指示コマンド

作業指示書は既定で簡易表示となり、関連性の高いコマンドのみが表示されます。 すべてのコマンドを表示するには、管理者はフィールドサービス設定>作業指示書/予約の「簡易作業指示コマンド表示」設定を無効にできます。

コンテキストに関連するコマンドを表示するように コマンド バーをカスタマイズ することができます。

カスタム作業オーダーのステータス

作業指示のシステムステータスを編集しないでください。システムジョブやプラグインはこれらのステータスに依存しています。 代わりに、管理者は作業指示書のシステムのステータスに対応するカスタム作業指示サブステータスを作成できます。 詳細については、オプション セット (選択) 値は編集しないでください を参照してください。

作業指示書フォームに地図を追加してください

デフォルトの作業指示フォームから手動でマップコントロールを削除すると、戻すことはできません。

フォームデザイナーでマップボタンを有効にするには、フォーム内のアドレスタイプ属性のいずれかに ValidForMap マスクを追加します。

<DisplayMask>ValidForAdvancedFind\|ValidForForm\|ValidForGrid\|ValidForMap</DisplayMask>
  1. マップコントロールを追加したいフォームを含むサンドボックス環境でソリューションを作成します。 管理ソリューションとしてエクスポートします。

  2. 解の customizations.xml ファイルで formxml セクションに移動します。

  3. 次のマップ コントロールを <controlDescriptions> に追加します。

        <controlDescription forControl="{8b67ae03-1701-54d2-09be-35295876ca8a}">

        <customControl id="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}">

        <parameters>

        <datafieldname>msdyn\_mapcontrol</datafieldname>

        </parameters>

        </customControl>

        <customControl formFactor="0" name="MscrmControls.Map.MapControl">

        <parameters>

        <value>msdyn\_mapcontrol</value>

        <mapSourceSwitch isGroup="true" static="true">CoordinatesGroup</mapSourceSwitch>

        <latitude>msdyn\_latitude</latitude>

        <longitude>msdyn\_longitude</longitude>

        <addressEditableSwitch isGroup="true" static="true">isAddressEditableYesGroup</addressEditableSwitch>

        <outputLatitude>msdyn\_latitude</outputLatitude>

        <outputLongitude>msdyn\_longitude</outputLongitude>

        </parameters>

        </customControl>

        <customControl formFactor="1" name="MscrmControls.Map.MapControl">

        <parameters>

        <value>msdyn\_mapcontrol</value>

        <mapSourceSwitch isGroup="true" static="true">CoordinatesGroup</mapSourceSwitch>

        <latitude>msdyn\_latitude</latitude>

        <longitude>msdyn\_longitude</longitude>

        <addressEditableSwitch isGroup="true" static="true">isAddressEditableYesGroup</addressEditableSwitch>

        <outputLatitude>msdyn\_latitude</outputLatitude>

        <outputLongitude>msdyn\_longitude</outputLongitude>

        </parameters>

        </customControl>

        <customControl formFactor="2" name="MscrmControls.Map.MapControl">

        <parameters>

        <value>msdyn\_mapcontrol</value>

        <mapSourceSwitch isGroup="true" static="true">CoordinatesGroup</mapSourceSwitch>

        <latitude>msdyn\_latitude</latitude>

        <longitude>msdyn\_longitude</longitude>

        <addressEditableSwitch isGroup="true" static="true">isAddressEditableYesGroup</addressEditableSwitch>

        <outputLatitude>msdyn\_latitude</outputLatitude>

        <outputLongitude>msdyn\_longitude</outputLongitude>

        </parameters>

        </customControl>

        </controlDescription>

  1. 同じファイルで "Maps" を検索します。

  2. 以下のコードでコントロールを追加したい行とセルに追加します。

    <control disabled="false" id="msdyn\_mapcontrol" classid="{F9A8A302-114E-466A-B582-6771B2AE0D92}" uniqueid="{8b67ae03-1701-54d2-09be-35295876ca8a}" datafieldname="msdyn\_mapcontrol"/>
  1. ファイルを保存し、新しい管理型ソリューションのzipファイルを作成します。

  2. 対象の環境にソリューションをインポートします。

ヒント

これらの手順を踏んでもマップコントロールが表示されない場合は、アクティブなフォームカスタマイズを解除してみてください。

作業指示書の管理

カスタム作業指示書フォームで使用できる以下のコントロールが利用可能です。 各コントロールを選択肢や制限について確認してください。 フォームにコントロールを追加するには、コントロールの説明で特に指示がない限り、以下の手順に従ってください。

  1. Power Appsにサインインし、作業指示フォームをカスタマイズしたい環境を選択します。

  2. ソリューションを開き、「 Tables>Work Order>Forms」を選択してください。

  3. カスタマイズしたいフォームを選択して 「編集」を選択してください。

  4. コンポーネント を選択し、 追加したいコンポーネントを検索してください。 コンポーネントをフォームにドラッグ&ドロップします。

  5. フォームを保存して公開します。

Copilot による作業指示書の要約

Copilot in Field Serviceの助けを借りて、作業指示書や関連予約、タイムラインノートを要約するコントロールです。 現在、Copilot はカスタム フィールドを集計できません。 既定のフィールドを要約するだけです。

このコントロールはデフォルトおよびカスタム作業指示書フォームでは機能しますが、非作業指示書のエンティティには適用されません。

作業指示書の状態

作業指示のステータスとサブステータスを選択するコントロール。 カスタム システム サブステータスを追加 できます。 Field Service はカスタム システム ステータスをサポートしていません。 追加した場合、ステータス アイコンは表示されません。 システム ステータスの色は変更できません。

この制御は他の組織にも有効ですが、以下のように機能します:

  • アイコンには対応していません。
  • すべてのステータスカラーは紫色です。

作業指示書の重要度

作業指示の優先順位を設定するコントロールです。 カスタムの優先順位と色を追加できます。

この制御は作業指示書フォームおよび作業指示グリッドには適用されますが、非作業指示書エンティティには適用されません。

タイムラインカウント

タイムライン内のノートの数を表示するコントロールです。 番号を選択すると、フォームのタイムライン タブに移動します。

  • このコントロールは、カスタム エンティティにタイムライン コントロールが含まれている場合でも、カスタム エンティティでは機能しません。
  • このコントロールは、カスタムの作業指示書フォームをサポートします。

このコントロールをタイムライン コントロールと同じタブに配置すると、新しいノートを追加してもカウントは自動的に増加しません。 ページを更新して、更新された番号を確認してください。 作業指示エンティティのアクティビティとメモが無効になっている場合、カウントは常にゼロ (正確です) を示します。

場所カード

作業を完了する場所の場所と、利用可能な場合は機能する場所に関する情報を示すコントロールです。

  • このコントロールは、カスタム作業指示書フォームでは機能しますが、作業指示書以外のエンティティでは機能しません。

既定のズーム レベルは現在固定されており、変更することはできません。 機能の場所ピッカーは、最も子階層にあるエンティティのみを表示し、ビル > 階 > 部屋といった上位階層の階層リンクを表示しません。

取引先担当者カード

サービスまたは請求先取引先企業の取引先担当者、および取引先担当者ごとに報告されたもの (使用可能な場合) を表示するコントロール。

  • このコントロールは、カスタムの作業指示書フォームで機能します。 作業指示書以外のフォームに置くと、コントロールは編集モードに入りません。

連絡先は、請求先アカウントの連絡先、サービスアカウントの連絡先、または報告者の連絡先に対応付けることができます。 他の種類のコンタクトでは機能しません。 非接触フィールドを指している場合、検索は機能しません。

資産カード

主資産の資産と、作業指示書内の製品、サービス、タスクを通じて設定された二次資産を表示するコントロール。 コントロールは資産の子ノードをレンダリングします。

このコントロールはカスタム作業指示書フォームに設定できますが、作業指示書以外の組織には適用されません。

コントロールを3列のフォームレイアウトに配置すると、全画面のアセットビューを開くアイコンが読み込まれません。なぜならコントロールが狭いフォームファクターに適応するためです。

予約カード

次のアクションに関する推奨事項を提供することで、サービス マネージャーが作業指示を確実に進める際に活用できるコントロールです。 スケジュールされていない作業指示書の場合は、予約が提案されます。 スケジュールされた作業指示書の場合は、予約の詳細が表示されます。 作業指示書を完了すると、概要が表示されます。

  • このコントロールは、作業指示書以外のエンティティでは機能しません。
  • この制御では、システム ステータス、サブステータス、およびプライマリ解像度のマッピングが正しく構成されている必要があります。 そうしないと、コントロールの読み込みに失敗します。 具体的には、システムステータスが正しい作業指示書のシステムステータスフィールドにマッピングされていない場合です。

財務概要カード

作業指示書に関連する製品とサービスに基づいて、作業指示書のコストと価格を要約するコントロールです。

  • このコントロールは、カスタムの作業指示書フォームで機能します。

このコントロール内でコスト および価格設定機能を有効にし てデータを表示できるようにしてください。 このコントロールには、作業指示書に設定された値とは異なる超えない (NTE) 近接値を設定できます。

製品とサービスのサブグリッド

作業指示書内の製品やサービスを編集するためのコントロールです。 推定および実際の期間と数量をインラインで更新し、ステータスを変更します。 サイドペインのフィールドに詳細の変更を加えることができます。

  • このコントロールは、カスタムの作業指示書フォームで機能します。
  • 制御は作業指示製品にバインドされています。 2 番目のエンティティをマップすることを選択できます:
    • 作業指示書製品: サービス タブは空白です
    • 作業指示サービス: 「製品」 タブは作業指示サービスにバインドされますが、タブは引き続きインターフェイス内の製品を参照します。
  • このコントロールは、作業指示製品および作業指示サービスに依存しているため、作業指示エンティティでは機能しません。

製品やサービスのステータスのカスタム値はサポートされていません。 製品またはサービスのタブを非表示にすることはできません。両方のタブにエンティティをマッピングする必要があります。

タスク サマリー カード

作業指示書のタスクを要約するコントロールです。

  • このコントロールは、カスタムの作業指示書フォームで機能します。

  • コントロールが使用するビューに、% 完了済み、推定期間、実際の期間フィールドが含まれていることを確認してください。

タスク サブグリッド

作業指示書内のタスクを管理するためのコントロールで、インラインアクションを使ってタスクを完了とマークし、検査結果を入力できます。 サイドペインのフィールドに詳細の変更を加えることができます。

  • このコントロールは、カスタムの作業指示書フォームで機能します。
  • このコントロールは、作業指示書以外のエンティティでは機能しません。

% completed フィールドがビューに表示されない場合、進行状況は表示されず、完了または未完了としてマークするアクションは機能しません。

参照 > ナレッジ記事カード

ナレッジ記事を作業指示書に表示してリンクするためのコントロールです。 このコントロールを使用すると、作業指示書から直接新しい記事を作成することもできます。

  • このコントロールは、カスタムの作業指示書フォームで機能します。
  • 作業指示書とナレッジ記事に強く依存しているため、作業指示書以外のエンティティでは機能しません。

参考資料 > ガイド カード

作業指示書内のタスクのリンクされた Dynamics 365 ガイドを要約するコントロール。 Web 上のガイドをプレビューすることはできませんが、その名前と関連するフォルダーを確認できます。

  • このコントロールをカスタム作業指示書フォームに使ってください。
  • このコントロールは作業指示書のサービスタスクと作業指示書のエンティティに強く依存するため、非作業指示のエンティティには使えません。

参考資料 > メディアカード

タイムライン ノートに添付されているメディアのサムネイルを表示するコントロール。

  • このコントロールは、カスタムの作業指示書フォームで機能します。
  • このコントロールは、エンティティでアクティビティとメモが有効になっており、タイムライン コントロールが存在する限り、カスタム エンティティに対して機能します。

作業指示グリッド制御

作業指示グリッド上で使用できる制御は以下の通りです。

グリッドとアクション バー

作業指示を表示および選択するためのコントロールです。 このコントロールを使用すると、優先度をインラインで編集し、サイド ペインでさらに編集を行うことができます。 システム ステータスは、システム ステータスとサブステータスを組み合わせたフィールドです。

この管理は作業指示以外の事業体には適用できません。

既知の問題と制限事項:

  • このコントロールをサブグリッドに適用すると、ビュー セレクターは表示されません。 Makerポータルで選択したビューしか見られません。
  • 作業指示グリッドをカスタマイズした場合、ソリューション階層化ルールにより、新しいコントロールは表示されません。 まずこれらのカスタマイズを外してコントロールを確認してください。
  • 新しいグリッド エクスペリエンスは列のフィルター処理をサポートしていません。 読み取り専用グリッド に変更して列をフィルタリングします。
  • 新しいグリッド コントロールを環境から削除すると、再度インストールすることはできません。 ご不明点に付いてはサポートにご連絡ください。
  • [ 予約済みリソース ] 列 (msdyn_bookingsummary) は、新しい作業指示書エクスペリエンスでのみ機能します。 クラシック グリッド ビューではサポートされていません。

コンテキスト メニュー

作業指示を選択して迅速なアクションを実行する場合のインライン メニューです。

  • このコントロールは、作業指示エンティティで使用できます。
  • コンテキスト メニューのオプションは、作業指示書のステータスに応じて変化します。

コンテキスト メニューの項目は変更できません。

サイド ペイン

作業指示書フォームからさらに編集するために、複数のフォームをインラインで読み込むことができます。

  • 作業指示書: Work Order Light フォームを編集して、サイド ペインの情報を変更してください。
  • 資産:サイドペインの情報を編集するには、 顧客資産 – シンプル フォームを修正してください。

次のサイド ペインは、完全なレコードを開いた場合と同じフォームをレンダリングします:

  • 製品: 作業オーダーの製品
  • サービス: 作業指示書のサービス
  • タスク: 作業指示サービス タスク

一度に片方の側面パネルしか開けられません。 ペインの幅を変更することはできません。

次のステップ