Connected Field Service プロセスの構築と自動化

完了

Dynamics 365 の Connected Field Service ソリューションでは、IoT 対応デバイスをリモートで監視し、稼動時間、デバイス統計情報、異常などを追跡できます。 IoT デバイスによって異常または例外が通知されると、その情報は、通知として Connected Field Service に送信されます。 通知がキャプチャされたら、Dynamics 365 の自動化と業務プロセスを作成する機能を使用して、問題の対処、ルーティング、修正を行うための自動プロセスを作成することができます。

このハンズオン ラボの目的は、Connected Field Service プロセスの構築と自動化について説明し、これらの項目を全体的な IoT ソリューションの一部として使用する方法を示すことです。

シナリオ

あなたは、スマート ホーム デバイスの販売とサービスを行っている配管と暖房関連の会社に勤務しているものとします。 サービス対象のデバイスの多くはスマート デバイスであるため、これらのデバイスからの情報をリモートでキャプチャして、その設備のサービスに役立てることができます。 組織では、設備のサービスのときに使用する複数のシナリオとプロセスが定義されています。 これらのプロセスは、次のような複数の要因によって変わる可能性があります。

  • サービスを必要とするデバイスの種類

  • 検出された問題の重要度

  • デバイスの経過期間

  • デバイスの場所

  • 特定のデバイスで動作するリソースの利用可能性

上記の項目は、組織が設備の保守プロセスを決定するために使用する要因のほんの一部のみを表します。

最近、多数のスマート サーモスタット デバイスがインストールされました。 これらのデバイスは、一貫した温度と湿度を維持することが重要な場合に、領域内の温度と湿度の読み取り値を追跡するのに便利です。 ここで、使用可能な追加の情報があるため、これらのデバイスによって報告された問題を処理および解決するための新しいプロセスを作成する必要があります。 自動化で最初に注目する部分は、温度関連の問題に使用されるプロセスです。

組織では、次のプロセスを実装することを予定しています。

  • デバイスで 70 度を上回る温度が検出された場合、Connected Field Service 環境内でアラートが通知されます。

  • 温度が 70 度から 85 度の範囲である場合、デバイスをリモート リセットして問題が解決したかどうかを確認する、コマンドが送信されます。

  • 温度が 86 度から 100 度の範囲である場合、サービス エージェントがサポート案件を作成し、問題の解決を試みることができます。

    • サービス エージェントが問題を解決できない場合、作業指示書が作成され、オンサイト技術者がこの問題に対してスケジューリングされます。
  • 温度の読み取り値が 100 度を上回っている場合、重大イベントが発生しているおそれがあります。 作業指示書を作成し、オンサイト技術者をその項目にスケジューリングする必要があります。

演習 - 自動化とカスタマイズ

始める前に: この演習では、Connected Field Service の展開が既に稼働していて、Azure IoT Hub または IoT Central インスタンスに接続されていることを前提としています。 使用可能な Connected Field Service 環境がない場合は、Connected Field Service の導入についてのモジュールを学習することをお勧めします。 このモジュールは、Connected Field Service 環境を設定および構成するのに役立ちます。

タスク - 新しい IoT 通知プロセス ソリューションを作成する

この最初のタスクでは、このモジュールで作成するすべてのカスタマイズとプロセスを格納するために使用できる Dynamics 365 ソリューションを作成します。 これにより、後でこれらのカスタマイズを転送しやすくなるだけではなく、コース完了後の環境のクリーンアップにも役立ちます。

  1. Power Apps に移動し、正しい環境にいることを確認します。

  2. ソリューション新しいソリューションの順に選択します。

  3. ソリューションに IoT 通知プロセスという名前を付けます。

  4. 発行元ドロップダウンを選択し、+ 発行元を選択します。

  5. 発行元を次のように構成します。

    • 表示名: Connected Field Service コース

    • 名前: Connected Field Service コース

    • 接頭辞: cfs

  6. 保存を選択します。

  7. 発行元ドロップダウンを選択し、作成した発行元を選択します。

  8. バージョン フィールドに、1.0.0.0 と入力します。 次に、作成を選択します。

  9. 作成した IoT 通知プロセス ソリューションを選択して開きます。

  10. 既存の追加テーブルの順に選択します。

  11. サポート案件IoT 通知作業指示書を選択し、次へを選択します。

  12. 3 つのテーブルすべてについてすべてのオブジェクトを含めるを選択し、追加を選択します。

タスク - IoT 通知テーブルをカスタマイズする

IoT 通知に基づく項目およびアクションを自動化できるように、生成された IoT 通知に関する特定の情報を抽出できる必要があります。 それに対してクエリを実行し、そのデータに基づいて項目をトリガーできます。 通知データに含まれているのは、すべてのデータを含む JSON 文字列のみであるため、IoT 通知テーブルにいくつか追加のフィールドを作成する必要があります。 特定のデータをそれらのフィールドに送信したり、それらのフィールドからクエリを作成したりできます。

  1. まだ IoT 通知プロセス ソリューションにいることを確認します。

  2. IoT 通知テーブルを選択して開きます。

  3. タブを選択し、新しい列を選択します。

  4. 表示名読み取りと入力し、データ型で整数を選択して、詳細オプションを選択します。

  5. 最小値0 と入力し、最大値250 と入力して、保存を選択します。

  6. プロセスを繰り返して次の列を追加します。

    • しきい値

      • 表示名: しきい値

      • データ型: 整数

      • 最小値: 0

      • 最大値: 250

    • 読み取りの種類

      • 表示名: 読み取りの種類

      • データ型: はい/いいえ

      • いいえ値を温度に変更する

      • はい値を湿度に変更する

      • 既定の選択: 温度

    • ルールの出力

      • 表示名: ルールの出力

      • データ型: 1 行テキスト

    • 顧客

      • 表示名: 顧客

      • データ型: ルックアップ

      • ターゲット レコードの種類: 取引先企業

  7. 階層リンクを使用して、IoT 通知を選択します。

  8. スキーマで、リレーションシップを選択します。

  9. 新しいリレーションシップを選択し、一対多を選択します。

  10. 関連エンティティサポート案件を選択し、ルックアップ列の表示名IoT 通知と入力して、完了を選択します。

  11. ソリューション名を選択します。

  12. すべてのカスタマイズの公開を選択し、公開が完了するまで待ちます。

  13. ... ボタンをクリックし、クラシックに切り替えるを選択します。

  14. エンティティを展開し、IoT 通知エンティティを展開して、1:N のリレーションシップを選択します。

  15. マッピングを選択し、新規を選択します。

  16. 一覧のマッピングを次のように構成して、OK を選択します。

    • ソース エンティティ フィールド: cfs_customer

    • ターゲット エンティティ フィールド: customerid

  17. 保存して閉じるを選択します。

  18. すべてのカスタマイズの公開を選択し、公開が完了するまで待ちます。

  19. ソリューション エクスプローラーを閉じます。

タスク - 値を設定するフローを作成する

必要なデータを格納するフィールドが使用できるようになったので、次に、これらのフィールドに正しいデータを設定する必要があります。 これを行うには、Connected Field Service ソリューションに含まれる JSON ベースのフィールド値アクションをいくつか使用します。 通知データ フィールドから特定のデータを抽出するため、JSON ベースのフィールド値アクションを実行するフローを作成します。 その後、そのデータを、前のタスクで作成したフィールドのいずれかに入力します。

  1. Power Apps に移動し、正しい環境にいることを確認します。

  2. ソリューションを選択し、IoT 通知プロセス ソリューションを選択して開きます。

  3. 新規を選択し、自動化>クラウド フロー>自動化を選択します。

  4. フロー名を通知フィールドの事前設定に設定します。

  5. Microsoft Dataverse を検索して Dataverse を選択します。 緑色の Dataverse コネクタを選択していることを確認します。

  6. レコードが作成、更新、または削除されたときを選択し、作成ボタンを選択します。

  7. トリガーの条件追加テーブル名で [IoT 通知]、スコープ組織を選択して、新しいステップを選択します。

  8. 解析を探し、JSON の解析を選択します。

  9. コンテンツ フィールドを選択し、動的なコンテンツ ペインで Alert Data を選択します。

  10. この JSON スキーマをスキーマ フィールドに貼り付けて、+ 新しいステップを選択します。

    {
        "type": "object",
        "properties": {
            "deviceid": {
                "type": "string"
            },
            "readingtype": {
                "type": "string"
            },
            "reading": {
                "type": "integer"
            },
            "eventtoken": {
                "type": "string"
            },
            "threshold": {
                "type": "integer"
            },
            "ruleoutput": {
                "type": "string"
            },
            "time": {
                "type": "string"
            }
        }
    }
    
  11. 行を更新するを検索し、行を更新するを選択します。 緑色の Dataverse コネクタを選択していることを確認します。

  12. ステップの名前を通知を更新するに変更します。

  13. エンティティ名IoT 通知を選択し、行 ID フィールドを選択して、動的なコンテンツ ウィンドウから IoT Alert を選択します。

  14. 詳細オプションを表示するを選択します。

  15. 読み取りフィールドを選択し、動的なコンテンツで JSON の解析ステップの reading を選択します。

  16. 読み取りの種類フィールドを選択して、カスタム値の入力を選択します。

  17. タブを選択し、この式を貼り付けて、OK を選択します。 Parse_JSON が JSON の解析ステップの名前と一致していることを確認します。

    if(equals(body('Parse_JSON')?['readingtype'], 'Temperature'), false, true)
    
  18. ルールの出力フィールドを選択し、[動的なコンテンツ] ウィンドウの JSON の解析アクションから ruleoutput を選択します。

  19. しきい値フィールドを選択し、[動的なコンテンツ] ウィンドウの JSON の解析アクションから threshold を選択します。

  20. 完成したフローは次の図のようになります。

  21. 保存を選択します。

  22. このページを閉じないでください。

タスク - リモート リセット フローのステップを追加する

正しいデータを抽出して正しいフィールドに格納したので、新しい手順をフローに追加する必要があります。 これらの手順では、読み取りフィールドの温度の値を調べます。 71 度から 85 度の間の場合、デバイスのリセットを実行する IoT デバイス コマンドを自動的に作成して、デバイスに送信します。

  1. フローに戻り、新しいステップを選択します。

  2. 条件を選択します。

  3. 値の選択フィールドを選択し、動的なコンテンツの通知を更新するステップから Reading を選択します。

  4. 次の値以上を選択します。

  5. 71 と入力し、追加を選択して、行の追加を選択します。

  6. 値の選択フィールドを選択し、動的なコンテンツの通知を更新するステップから Reading を選択します。

  7. 次の値以下を選択します。

  8. 85 と入力します。

  9. 条件は次の図のようになります。

  10. はい分岐に移動し、アクションの追加を選択します。

  11. 新しい行を追加を検索してから、新しい行を追加を選択します。

  12. ステップの名前をリセット コマンドを作成するに変更します。

  13. テーブル名IoT デバイス コマンドを選択し、名前フィールドを選択して、動的なコンテンツのレコードが作成、更新、または削除されたときアクションから Description を選択します。

  14. 名前デバイスのリセットを追加し、詳細オプションの表示を選択します。

  15. 顧客資産フィールドを選択し、msdyn_customerassets() と入力します。

  16. () の間にカーソルを置き、動的なコンテンツのレコードが作成、更新、または削除されたときアクションから Customer Assets (Value) を選択します。

  17. デバイス フィールドを選択し、msdyn_iotdevices() と入力します。

  18. () の間にカーソルを置き、動的なコンテンツのレコードが作成、更新、または削除されたときアクションから IoT Device (Value) を選択します。

  19. プライマリ通知フィールドを選択し、msdyn_iotalerts() と入力します。

  20. () の間にカーソルを置き、動的なコンテンツの通知を更新するアクションから IoT Alert を選択します。

  21. 以下の JSON をメッセージ フィールドに貼り付けます。

    {"CommandName":"Reset Thermostat","Parameters":{}}
    
  22. 詳細オプションの非表示を選択します。

  23. アクションの追加を選択します。

  24. 行を更新するを検索し、行を更新するを選択します。

  25. ステップの名前を通知を非アクティブ化するに変更します。

  26. テーブル名IoT 通知を選択し、レコード ID フィールドを選択して、動的なコンテンツの通知を更新するから IoT Alert を選択します。

  27. 詳細オプションを表示するを選択します。

  28. 状態フィールドを探し、非アクティブに設定します。

  29. 詳細オプションの非表示を選択します。

  30. フローの新しい部分は、次の図のようになります。

  31. 保存を選択します。

タスク - CFS - IoT 通知プロセス フローを変更する

現在は、通知がトリガーされたときに通知を解決するようにユーザーを誘導するための CFS - IoT 通知プロセス フローと呼ばれるビジネス プロセス フローを使用しています。 温度の読み取り値が 86 度から 100 度の間のときは、業務プロセスで、サポート案件レコードを作成する必要があります。 その後、サポート案件を解決できない場合は作業指示書を作成する必要があります。 温度が 100 度を上回っている場合、ビジネス プロセスはこのサポート案件ステージ全体をスキップし、作業指示書に進みます。 このタスクでは、これらの特定のニーズを反映するように、CFS – IoT 通知プロセス フローを修正します。

  1. Power Apps に移動し、正しい環境にいることを確認します。

  2. ソリューションを選択し、IoT 通知プロセス ソリューションを選択して開きます。

  3. 既存の追加を選択し、自動化>プロセスの順に選択します。

  4. CFS を検索し、CFS - IoT 通知プロセス フローを選択して、追加を選択します。

  5. CFS – IoT 通知プロセス フローを開きます。

  6. 非アクティブ化ボタンを選択して、プロセスを非アクティブ化します。

  7. 非アクティブ化を確認します。

  8. 作成された IoT 通知ステージで詳細を展開します。

  9. コンポーネントで、データ ステップ通知日時ステップの下にドラッグします。

  10. データ ステップを次のように構成します。

    • ステップ名: 読み取り

    • データ フィールド: 読み取り

  11. 適用を選択して、変更を保存します。

  12. ステップ 9 - 11 を繰り返して、以下のデータ ステップ作成された IoT 通知ステージに追加します。

    • しきい値

    • 読み取りの種類

    • ルールの出力

  13. コンポーネント タブを選択し、条件コンポーネントを作成された IoT 通知ステージの右にドラッグします。

  14. 条件の表示名温度の条件と入力します。

  15. ルール 1 を次のように構成します。

    • フィールド: 読み取り

    • 演算子: が次の値以上

    • 種類:

    • : 86

  16. 新規を選択して、別のルールを追加します。

  17. ルール 2 を次のように構成します。

    • フィールド: 読み取り

    • 演算子: が次の値以下

    • 種類:

    • : 100

  18. ルール ロジックAnd に設定されていることを確認します。

  19. 適用を選択します。

  20. 温度の条件ステージを選択して、コネクタ アイコンを選択し、表示されるメニューで再接続を選択します。

  21. 2 番目のポイントとして作業指示書の作成ステージを選択します。

  22. ビジネス プロセス フローは次の図のようになります。

  23. 保存を選択して、CFS - IoT 通知プロセス フローアクティブ化します。

  24. プロセス エディターのブラウザー ウィンドウまたはタブを閉じます。

  25. ソリューションの前のウィンドウで完了を選択します。

  26. ソリューションを選択し、すべてのカスタマイズの公開を選択します。

タスク - 新しく作成した自動化をテストする

必要なカスタマイズ、フロー、ビジネス プロセス フローが作成されたので、シミュレーターを使用してすべてをテストし、目的の機能が実行されることを確認します。

  1. Power Apps に移動し、正しい環境にいることを確認します。

  2. 顧客資産を選択し、新規ボタンを選択します。

  3. 名前スマート サーモスタットと入力し、取引先企業Adventure Works を選択して、保存を選択します。

  4. デバイス ID フィールドに smt-9876 と入力して、保存をクリックします。

  5. デバイスの登録を選択します。

  6. OK を選択します。

  7. Web ブラウザーで新しいタブを選択し、Azure portal に移動します (求められた場合は、Azure にログインします。使用しているアカウントに関連付けられている Azure サブスクリプションが必要です)。

  8. リソース グループを選択して、リソース グループを開きます。

  9. Connected Field Service で使用している IoT Hub を開き、シミュレーターを選択します。

  10. シミュレーターの URL を選択してサーモスタット シミュレーターを開きます (シミュレーターは新しいタブで開く必要があります)。

  11. シミュレーターで、接続を選択します。

  12. Azure サブスクリプションに戻り、シミュレーターの App Service 画面を閉じます。

  13. IoT ハブを開きます。

  14. IoT ハブ名を強調表示にして、それをコピーします。

  15. シミュレーター画面に戻り、IoT ハブ名ホスト フィールドに貼り付けます。

  16. Azure サブスクリプションに戻り、共有アクセス ポリシーを選択します。

  17. iothubowner ポリシーを開き、主キーをコピーします。

  18. シミュレーター画面に戻り、主キーキー フィールドに貼り付けます。

  19. 関連付けボタンを選択します。

  20. 更新ボタンを選択して、すべての登録済みデバイスを使用可能にします。

  21. デバイスの選択ドロップダウンで、smt-9876 デバイスを選択します。 ([最新の情報に更新] ボタンの横に緑色の点が表示され、数秒後、情報の送信が開始されます。)

  22. 温度スライダー75 に設定して、温度ステータスが送信済みメッセージ ウィンドウに登録されるまで待ちます。

    温度が華氏 71 度から 85 度の間であったため、デバイスを再起動するためにコマンドがデバイスに送信されます。 (再起動コマンドがデバイスに送信されるまで、数分かかることがあります。インターネットの速度によっても異なります。)

  23. Connected Field Service が読み込まれているブラウザー タブに切り替えます。

  24. IoT 通知を選択します。

  25. ビューを非アクティブな IoT 通知に切り替えます。

  26. 温度 75 度はしきい値の 70 を上回っていることを示す通知を開きます。

  27. コマンド タブを選択します (デバイスに送信されたコマンドが表示されます)

  28. シミュレーターを含む Web ブラウザー タブに戻ります。

  29. 温度90 度に設定して、送信済みメッセージ ウィンドウに登録されるまで待ちます。

  30. Connected Field Service が読み込まれているブラウザー タブに切り替えます。

  31. IoT 通知を選択します。

  32. 温度読み取り値 90 度はしきい値の 70 を上回っていることを示す通知を開きます。

  33. 作成済みステージを選択します。 (以前に抽出した情報が表示されていることに注意してください。読み取り値が 86 度から 100 度の間にあるので、サポート案件の作成が次のステージです。)

  34. メニューコマンドの送信を選択します。

  35. JSON に切り替えを選択します。

  36. コマンドに下のコードを入力し、送信を選択します。

    {"CommandName":"Reset Thermostat","Parameters":{}}
    
  37. シミュレーターに戻り、デバイスが再起動されるまで待ちます。

  38. 温度スライダー106 に設定して、温度ステータスが送信済みメッセージ ウィンドウに登録されるまで待ちます。

  39. Connected Field Service が読み込まれているブラウザー タブに切り替えます。

  40. IoT 通知を選択します。

  41. 温度読み取り値 106 度はしきい値の 70 を上回っていることを示す通知を開きます。

  42. 通知が 100 度を超えていたため、サポート案件の作成ステージは完全にスキップされたことに注意してください。