次の方法で共有


Store Operations の機能拡張

Store Operations ソリューションは Microsoft Power Platform 上に構築されており、UI やビジネス フロー、マイクロソフトやパートナー エコシステムとの統合など、豊富なカスタマイズや拡張機能を提供しています。 Store Operations は、ソリューション階層化メカニズムにより、MDA Power Appsでサポートされるすべての拡張機能やカスタマイズをサポートします。

システム管理者の資格情報を使用して Store Operations 管理にサインインし、次のカスタマイズを実行します:

注意

Store Operations の新しいバージョンをインストールしても、UI (ユーザー インターフェース) アーキテクチャによってカスタマイズや拡張機能が壊れることはありません。

タスク フォームをカスタマイズ

Store Operations を設定する際、バックオフィス マネージャーが業務を実行するために使用するフォームをカスタマイズする必要があります。 このカスタマイズは、ビジネスまたは業界に固有の情報を取得し、フォームのレイアウトがビジネス プロセスと一致することを確認するために使用されます。

フォームを適切にカスタマイズすると、ユーザビリティが向上し、バックオフィス マネージャーが関連情報を簡単に表示および更新できるようになります。 フォームのカスタマイズは、フォームが変更をロードして保存するのにかかる時間に影響します。 そのため、フォームを適切にカスタマイズすることは、パフォーマンスを最大化するために非常に重要です。

このセクションでは、フォームのカスタマイズ、フォームのカスタマイズの制限、アウトレット フォームのカスタマイズ方法について説明しますが、手順を使用して他のフォームをカスタマイズすることもできます。

Store Operations では、特定の業界のニーズに基づいてフォームをカスタマイズできます。 ソリューションの一部として Store Operations 管理者が提供するフォームをカスタマイズしたり、組織のニーズに基づいて新しいフォームをコピーして作成したりできます。 このセクションでは、これらのアプローチの長所と短所について詳しく説明します。

既存のフォームをカスタマイズする

レイアウトやフィールドに多くの変更を加える必要がないシナリオでは、既存のフォームのカスタマイズをお勧めします。 このアプローチの利点は、Store Operations 管理者からの更新が組織固有のカスタマイズと統合されることです。 ただし、更新後にフォームの内容を検証することをお勧めします。

新しいフォームを作成する

フォームをコピーし、Store Operations 管理者で新しい顧客専用フォームとして保存できます。MDA ページ、カスタムページ、キャンバスページなど、どのようなページタイプでも Power Platform アプリで追加できます。 新しいフォームを作成する主な理由は次のとおりです:

  • 独自の業務プロセスがあり、ソリューションに含まれる標準プロセスを使用できない場合、
  • 多くのカスタム フィールドを追加する必要がある場合 (100 を超える)
  • すべてのユーザーロール (セキュリティロールおよびフィールドセキュリティプロファイル) が同じフォームを使用できず、情報を制限できない場合、ユーザーペルソナごとに異なるフォームを作成する必要があります。

重要

この方法では、既存のフォームをカスタマイズするときに表示される Store Operations 管理者からの更新が新しいフォームに反映されません。 リリースされた新しいコンポーネントを採用する場合は、独自のフォームに手動で追加する必要があります。

指定された手順に従って、小売活動フォームをカスタマイズできます。  

  1. Power Apps に移動してサインインします。 

  2. 適切な環境を選択します。

  3. Dataverse> テーブルに移動します。 すべてを選択します。

    [すべて] タブを選択して、新しいカスタマイズされたフォームを作成します。

  4. 下にスクロールして、テーブルのリストから小売活動を選択します。

    [小売活動] を選択して、新しいカスタマイズされたフォームを作成します。

  5. フォーム を選択っして、小売活動に関連するフォームのリストを開きます。

  6. バックオフィス メイン フォーム を選択して、デザイナー ページを開きます。

    新しいカスタマイズされたフォームを作成するには、バック オフィスのメイン フォームを選択します。

  7. デザイナー内のフォーム フィールドは、編集または変更できます。 必要に応じて、フィールドを並べ替えたり、特定のフィールドを非表示にしたりできます。  たとえば、サブグリッド ビューをフォームに追加して、小売活動のオープン フォローアップを表示できます。 左側のナビゲーション ウィンドウで、コンポーネント> グリッド > サブグリッドを選択します。 テーブル を選択して、サブグリッドと既定ビューに表示します。 データを入力したら、完了を選択します。 

    サブグリッドを編集して、カスタマイズされた新しいフォームを作成します。

  8. 保存 を選択し、発行 を選択して変更を発行します。

    [保存して発行] を選択して、カスタマイズされた新しいフォームを作成します。

Store Operations のテーマをカスタマイズする

既定のテーマで提供される既定の色と視覚要素を変更して、自分のアプリに合わせて、カスタムのルックアンドフィール (カスタム ロゴ付きテーマ) を作成することができます。 たとえば、会社のロゴを追加し、テーブル固有の色を指定することで、個人用の製品ブランドを作成できます。 テーマ色はアプリケーション全体にグローバルに適用されます。

Store Operations では、Dynamics プラットフォームが提供するテーマがサポートされます。 Dynamics の詳細設定でテーマを構成できます。 既定のテーマは次のとおりです。

画像は Store Operations 用の既定テーマです。

Store Operations 管理者用に構築されたすべての Power Apps Component Framework (PCF) コントロールは、テーマ設定のテーマを使用して、構成された色で UI 要素を表示します。 たとえば、既定の青のアクセントは、コードを変更せずに赤または緑に変更できます。 テーマはすべての PCF コントロールに自動的に適用されます。

新しいテーマを適用して作成する方法の詳細については、テーマを使用して、アプリのカスタムルックを作成するにアクセスします。

Store Operations モバイルの既定背景色の変更

Store Operations モバイルの既定の背景色を変更するには、以下の手順を実行します:

  1. Power Apps ダッシュボード に移動します。

  2. 右上の Store Operations 環境を選択します。

  3. 左側のペインで ソリューション を選択し、既定のソリューション に移動します。

  4. MobileBackgroundColor 設定を見つけて選択します。

  5. 右側ペインの環境値の設定で、+ 新しい環境値 を選択します。

  6. 背景に使用する色を 16 進数 (#CEEAFF など) で入力し、保存 を選択して既定値を上書きします。

    画像は、Store Operations モバイルで背景色を変更する方法を示しています。

    注意

    現在、Store Operations モバイルではフォントのテキスト色を変更する機能はありません。

Store Operations モバイルのカレンダー表示を有効にする

Store Operations モバイルで ToDo リストのカレンダー ビューを有効にするには、次の手順に従います:

  1. Power Apps ダッシュボード に移動します。

  2. 右上の Store Operations 環境を選択します。

  3. 左側のペインで ソリューション を選択し、既定のソリューション に移動します。

  4. カレンダー ビューの有効化 設定を検索して選択します。

  5. 右側のペインの設定の環境の値で はい を選択して、既定値を上書きします。

    この画像は、Store Operations モバイルでカレンダー ビューを有効にする方法を示しています。

Store Operations 管理者のラベルを更新する

Store Operations 管理者では、社内で使用されている基本設定に合わせてラベルを更新することができます。 この柔軟性により、より直感的でカスタマイズされたユーザー エクスペリエンスが可能になり、店員がアプリをナビゲートして操作することが容易になります。 さらに、タスク、ストア、またはその他の要素の名前を変更できる機能により、組織内のコミュニケーションが明確になり、合理化されます。 全体として、この機能により、小売企業は Store Operations 管理者を独自の要件に適合させることができ、日常業務の使いやすさと効率を向上させることができます。

Store Operations 管理者でラベルを更新する方法については、クラシック フォームデザイナーのセクション プロパティを参照してください。

カスタマイズの制限

Power Apps component framework を使用すると、開発者は、すぐに使用できるコントロールでは提供されない独自のタイプのコントロールまたは UI を構築できます。 ただし、制限があります。 Store Operations では、多くの領域でカスタム PCF コントロールを使用します。 これらのコントロールはロー コードではありませんが、HTML (ハイパーテキスト マークアップ言語)、 CSS (カスケーディング スタイル シート)、および JavaScript を使用して構築されています。 したがって、Store Operations の一部である PCF コントロールを変更またはカスタマイズすることはできません。

重要

組織は、既存のフォームをカスタマイズしたり、ビジネス固有のニーズに合わせて新しいフォームを作成したりできます。 ただし、Store Operations の一部である PCF コントロールに対してマイクロソフトから更新があった場合、これらの更新は両方のシナリオでソリューションに反映されます。

カスタマイズのベスト プラクティス

顧客固有の要件に合わせて Store Operations 管理者をカスタマイズする場合は、パフォーマンス、ユーザビリティ、サポート性の問題を回避するために、ベスト プラクティスに従うことが重要です。 ソリューションを拡張するためのレコメンデーションは次のとおりです。

  • フォームで、カスタム フィールドの数を最小限に抑えます

  • 既成のフィールドはフォームから編集、または削除しないでください

  • 既定のフィールドの オプション セット (選択) 値を編集しないでください

  • フォーム読み込みイベントで使用するカスタム スクリプトの数を減らす

フォームをカスタマイズする際の設計上の考慮事項については、パフォーマンスのためのフォームの設計 を参照してください 。

Fetch Products カスタム API を使用する

すべての製品は Microsoft Dataverse に格納されます。 ただし在庫数量と価格は Dataverse ではなく、ERP から照会する必要があります。 Fetch Products API と呼ばれる Dataverse のカスタム API (プラグイン) は、このデータを ERP から照会します。

Fetch Products API は、すべての製品の既定値を返すテンプレートであり、カスタム実装によって上書きできます。 各店舗の製品確認や価格確認ごとに、Fetch Products プラグインを呼び出します。 価格と在庫数量を含む製品がすべて記載された .json ファイルを含む監査応答テーブルに、取得したデータを格納します。

製品確認機能の論理フローを以下の画像に示します:

この画像は Fetch Products カスタム API を使用するプロセスを示します。

例: Fetch Products API の実装

Fetch Products API の実装例を以下のように確認できます。

入力パラメーター

  • 製品クエリ: パラメーターを 2 つ持つ expando オブジェクト

  • storeId: プラグインを実行している現在の店舗名。 これは部署名に由来します。

  • productIds: コンマ区切りの製品番号

出力パラメーター

  • 製品: expando オブジェクトの一覧。 製品コレクション内の各製品には、次のようなパラメーターが含まれています:

    • productNumber: 製品番号

    • oldPrice: その製品の旧価格

    • newPrice: その製品の新価格

    • 属性: 属性とキー値の追加コレクション

    • 数量: 店舗の製品数量

サンプル API コード - FetchProductsPlugin.cs


using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.PluginTelemetry;
using System;
using System.Collections.Generic;

namespace RetailConnectApp.Plugins
{
    public class FetchProductsPlugin  : IPlugin
    {
        public FetchProductsPlugin ()
        {

        }

        public FetchProductsPlugin(string unsecureConfiguration, string secureConfiguration)
        {
                
        }

        public void Execute(IServiceProvider serviceProvider)
        {
            // Obtain the tracing service
            var tracingService =
            (ITracingService)serviceProvider.GetService(typeof(ITracingService));
            var logger = (ILogger)serviceProvider.GetService(typeof(ILogger));

            // Obtain the execution context from the service provider.  
            IPluginExecutionContext context = (IPluginExecutionContext)
                serviceProvider.GetService(typeof(IPluginExecutionContext));

            try
            {
                var storeId = GetInputParameter<String>(context, "storeIds");
                var productIdString = GetInputParameter<String>(context, "productIds");

                //Fetch data from ERP

                var products = new EntityCollection();
                if (!string.IsNullOrEmpty(storeId) && !string.IsNullOrEmpty(productIdString))
                {
                    var productIds = productIdString.Split(',');

                    foreach (var productId in productIds)
                    {


                        var product = new Entity() { Attributes = {
                                    { "productNumber", productId },
                                    { "oldPrice",(decimal)0.0 },
                                    { "newPrice", (decimal)0.0 },
                                    { "count", 0 },
                                    { "attributes",  new Entity() 
                                        {
                                        Attributes =
                                            {
                                                //attributes with key-value pair
                                                /*
                                                { "city","Redmond" },
                                                { "countryOrRegion","United States" },
                                                { "postalCode","98008" },
                                                { "state","Washington" },
                                                { "street","123 Maple St" },*/
                                            }
                                        }
                                    }
                                }
                        };
                        products.Entities.Add(product);
                    }
                }
                context.OutputParameters["products"] = products;
            }
            catch (Exception ex)
            {
                logger.LogError(ex, "msret_FetchProducts: {0}");
                throw new InvalidPluginExecutionException("An error occurred in msret_FetchProducts.", ex);
            }
        }
        
        public static T GetInputParameter<T>(IPluginExecutionContext context, string inputParameterName)
        {
            T parameter = default(T);

            if (context.InputParameters.Contains(inputParameterName))
            {
                parameter = (T)context.InputParameters[inputParameterName];
            }

            return parameter;
        }
    }
    
}


Power BI レポートをダウンロードしてカスタマイズする

Store Operations 以外で使用する Power BI レポートをダウンロードし、カスタマイズすることができます。 ダウンロードした Power BI レポートは、Store Operations 管理者の使用を許可されていない組織内の他のユーザーと共有できます。

Power BI レポートのダウンロード

  1. app.powerbi.com に移動します。

  2. ワークスペースに移動し、作成された管理ワークスペース、ソリューションズ [RetailSOATest] を選択します。

  3. レポート タイプ、小売概要店舗操作を開きます。

    画像は、Power BI レポートを開く方法を示しています。

  4. ファイル> このファイルをダウンロードに移動します。

  5. 何をダウンロードしますか? というタイトルのダイアログ ボックスで、レポートとデータ (.pbix) のコピー を選択し、ダウンロード を選択します。

    画像は、'何をダウンロードするか' のダイアログ ボックスを示しています。

Store Operations 管理者へのアクセス権を持たないユーザーでも、エクスポートされた .pbix ファイルを 共有 にダウンロードできるようになりました。

画像は、レポートをダウンロードする準備ができていることを示しています。

Power BI レポートをカスタマイズする

また、Store Operations の管理者以外でも、ブラウザや他の Power BI デスクトップ、サービスから Power BIレポートを開き、必要に応じてカスタマイズすることができます。

  1. Power BI Desktop アプリをダウンロードして開きます。

  2. 最近のレポート リストから小売サマリー ストア ops.pbix レポートファイルを選択するか、ダウンロードから参照します。

    画像は、Power BI レポートをデスクトップで開く方法を示しています。

  3. Power BI Desktop アプリでレポートを開き、必要に応じて変更を加えることができます。

    画像は、Power BI Desktop で開いたレポートを示しています。

参照

Microsoft Dataverse web API を使用します。
Power Platform コネクタの概要
モデル駆動型アプリの作成とカスタマイズ。
Power Apps を使用したカスタマイズ
アウト オブ ザ ボックス (OOB) テーマのカスタマイズ