作業指示書が正常に保存または作成されない

まとめ

この記事は、Microsoft Dynamics 365 Field Service で 作業指示書 を保存または作成しようとしたときに発生する一般的なエラーのトラブルシューティングに役立ちます。 プラグインとビジネス ルールのエラー、カスタム スクリプトによって発生する必須フィールド エラー、価格表や作業指示書の種類などの条件付き必須フィールド、自動作成の遅延、重複する作業指示インシデント、プライマリ インシデントの選択などのインシデントの種類の動作について説明します。

Symptoms

作業指示書を保存または作成しようとすると、次のいずれかの問題が発生します。

  • 作業指示書のフィールドに入力し、[ 保存] を選択すると、次のエラー メッセージが表示されます。

    ビジネス プロセス エラー: エラーが発生しました。 システム管理者にお問い合わせください。

    このような場合は、2 回目の試行で正常に保存できます。

  • フィールドが入力されているにもかかわらず、次の "必須フィールド" エラー メッセージが表示されます。

    <FieldName> の値を指定する必要があります。

  • 作業指示書で インシデントの種類 を選択すると、予想される作業指示書製品、サービス、およびサービス タスクは自動的に設定されません。

  • 同じインシデントの種類を複数回追加すると、作業指示書に重複する子レコードが含まれます。

  • Field Service は、作業指示書インシデントを予期せずプライマリとしてマークします。

  • 作業指示インシデントを完了または非アクティブ化した後、作業指示書システムの状態は変更されません。

失敗したプラグインまたはビジネス ルールを確認する

作業指示書テーブルの同期プラグインまたはビジネス ルールで、保存操作中にエラーが発生する可能性があります。 最初の試行でのみエラーが発生した場合、この条件は通常、プラグインがまだ存在しない関連レコードに依存するタイミングの問題を示します。

失敗したプラグインまたはビジネス ルールの問題を特定して修正するには、次の手順に従います。

  1. 失敗したジョブを特定します。
    1. Dynamics 365 Field Service アプリで、設定 (歯車記号) >高度な設定 を選択します。
    2. 詳細設定領域で、 System>System ジョブに移動します。
    3. 失敗ジョブを見つけるには、作業指示エンティティのエラーでフィルター処理します。
  2. プラグインの登録を検査する:
    1. Power Apps に移動し、環境を選択します。
    2. テーブル>工順>プラグインステップに進みます
    3. 作業指示書作成メッセージの事前操作ステップまたは操作ステップに登録されているカスタム プラグインを探します。
    4. プラグインが関連レコード (サービス タスクや製品など) を参照している場合、それらのレコードが存在する前に実行される可能性があります。 プラグインを非同期ステップに移動するか、null チェックを追加します。
  3. ビジネス ルールでエラーが発生した場合:
    1. Power Apps に移動し、環境を選択します。
    2. テーブル>作業順序>ビジネス ルールに移動します。
    3. カスタム ルールを一時的に無効にして問題を特定します。

カスタム スクリプトが必須フィールドをオーバーライドするかどうかを確認する

ユーザー設定フォーム スクリプトまたはビジネス ルールは、フォームがフィールド値を設定した後でフィールド値をクリアまたはオーバーライドする場合があります。 または、 インシデントの種類 のマップされたフィールドが値を正しく転送しない可能性があります。

フォーム スクリプトとフィールド マッピングを確認するには:

  1. ブラウザー開発者ツール (F12) を開き、[ コンソール ] タブで、保存操作中に発生した JavaScript エラーを確認します。
  2. Power Apps に移動し、環境を選択します。
  3. テーブル>Work Order>Forms に移動します。
  4. 関連するフォームを開き、On Save イベント スクリプトがフィールドをクリアまたはオーバーライドするかどうかを確認します。
  5. 必須フィールドがルックアップの場合は、Dynamics 365 Field Service アプリで参照先レコードを開き、まだ存在し、 アクティブ な状態であることを確認します。
  6. カスタマイズなしでクリーンな環境でテストし、問題がカスタム ロジックによって発生しているかどうかを確認します。

条件付き必須フィールドを確認する

一部の作業指示書フィールドは、特定の条件下でのみ必要です。 選択した作業指示書の種類によって、サービス アカウントとプライマリ インシデントの種類が必要かどうか、および作業指示書の種類自体が必要かどうかが決まります。 [価格の計算] が有効になっている場合、Field Service プラグインの検証には価格表が必要であり、価格表の通貨は作業指示書の通貨と一致する必要があります。

条件付き必須フィールドを確認するには:

  1. Dynamics 365 Field Service アプリで、[設定>Work Orders>Work Order Types に移動し、選択した作業指示の種類を開き、そのサービス アカウントとインシデントの要件を確認します。
  2. Dynamics 365 Field Service アプリで作業指示書を開き、選択した作業指示書の種類に必要なフィールドを設定します。
  3. Dynamics 365 Field Service アプリで、[価格の計算] が有効になっているときに作業指示書に価格表があることを確認します。
  4. Dynamics 365 Field Service アプリで、価格表の通貨が作業指示書の通貨と一致することを確認します。

インシデントの種類の構成とユーザー特権を確認する

インシデントの種類が正しく構成されていないか、非アクティブである可能性があります。 ユーザーには、子エンティティに対する 作成 特権がない場合もあります。 インシデントの種類の詳細については、「 作業指示書インシデントの種類の概要」を参照してください。

インシデントの種類の構成とユーザー権限を確認するには:

  1. Dynamics 365 Field Service アプリで 、[設定] に移動します。
  2. 作業指示>インシデントの種類を選択します。
  3. インシデントの種類のレコードを開き、関連するタブの下に 製品サービスおよびサービス タスク が表示されることを確認します。
  4. インシデントの種類で参照されている各製品またはサービスが製品カタログで アクティブ であることを確認します。 設定>General>Products に移動して、製品の状態を確認します。
  5. 作業指示書フォームで、製品を含む有効な価格表を使用して [ 価格表 ] フィールドが設定されていることを確認します。 設定>一般>価格表に移動して価格表を確認します。
  6. ユーザーに必要な セキュリティ ロールと特権があることを確認します
    1. Power Platform 管理センターにサインインします。
    2. [ 管理] を選択し、環境を選択します。
    3. [設定] (歯車記号) >ユーザー + アクセス許可>セキュリティ ロールに移動します。
    4. ユーザーのロールに Create 権限があることを確認します。
      • 作業注文製品 (msdyn_workorderproduct)
      • 作業指示サービス (msdyn_workorderservice)
      • 作業指示書サービス タスク (msdyn_workorderservicetask)
  7. [インシデントの種類] フィールドを非表示またはロックするカスタム ビジネス ルールを使用する場合は、システムが自動作成ロジックをトリガーすることを許可していることを確認します。

遅延または予期しないインシデントの種類の動作を確認する

契約から生成されない作業指示の場合、非同期バックグラウンド ジョブはインシデントの種類のアイテムを作業指示書にコピーします。 ジョブでは、サービス タスクが最初に作成され、製品が 2 番目、サービスが 3 番目に作成されるため、レコードが表示されるまでに少し時間がかかる場合があります。 契約によって生成された作業指示書では、このバックグラウンド ジョブは使用されません。 Field Service は、作業指示インシデントを作成するときに、インシデントタイプとは別に要件特性を作成します。 インシデントの種類を追加するたびに、Field Service によって作業指示インシデントとそれに関連付けられている子レコードが作成され、同じインシデントの種類を複数回追加できなくなります。 アクティブなインシデントが存在しない場合、Field Service は、新しく作成された作業指示書インシデントをプライマリとしてマークします。 主要設定は、インシデントの種類ではなく、作業指示のインシデントに属するものです。 作業指示書インシデントを非アクティブ化または再アクティブ化すると、その状態は関連するサービス タスク、製品、サービス、特性に連鎖しますが、作業指示書システムの状態は変更されません。

遅延した、または予期しないインシデント タイプの挙動を確認するには:

  1. Dynamics 365 Field Service アプリで作業指示書を開き、非同期ジョブが完了するまで少し待ってから、フォームを更新します。
  2. Dynamics 365 Field Service アプリで、インシデントの種類をもう一度追加する前に、作業指示インシデントを確認します。 組織のプロセスに従って、不要な作業指示インシデントとその関連レコードを削除します。
  3. Dynamics 365 Field Service アプリで、アクティブな作業指示インシデントを確認して、プライマリになったインシデントを特定します。
  4. Dynamics 365 Field Service アプリで、インシデントを非アクティブ化または再アクティブ化するときに、作業指示書システムの状態を個別に更新します。
  5. Dynamics 365 Field Service アプリでは、非同期コピー ジョブを使用しないため、契約によって生成された作業指示書の契約予約インシデント構成を確認します。