共用方式為


擴充商店營運

商店營運解決方案以 Microsoft Power Platform 為基礎建置,在 UI、業務流程以及與 Microsoft 和合作夥伴生態系統整合方面提供豐富的一組自訂和擴充功能。 商店營運透過解決方案分層機制支援 MDA Power Apps 支援的所有擴充和自訂。

使用系統管理員認證登入商店營運管理員以執行下列自訂:

注意

安裝新版本的商店營運時,UI (使用者介面) 結構不會中斷自訂和擴充。

自訂工作表單

設定商店營運時,您必須自訂後台系統管理員用於執行其工作的表單。 此自訂用於擷取業務或行業特有的資訊,並確保表單版面配置符合您的商務程序。

適當的表單自訂可以改善可用性,讓後台系統管理員更輕鬆地檢視和更新相關資訊。 表單自訂會影響表單載入和儲存變更所花費的時間。 因此正確自訂表單對充分發揮效能很重要。

本節內容涵蓋表單自訂、表單自訂中的限制,以及自訂門市店表單的方式,但是您可以使用這些步驟來自訂任何其他表單。

商店營運允許您根據特定產業需求來自訂表單。 您可以自訂商店營運管理員提供的表單做為解決方案的一部分,也可以根據組織的需求複製並建立新表單。 本節會詳述這些方法的優缺點。

自訂現有表單

對於無需對版面配置或欄位進行大量變更的案例,建議您自訂現有的表單。 此方法的優點是,商店營運管理員的更新會與組織特定自訂項目合併。 不過,還是建議您在更新後驗證表單的內容。

建立新表單

您可以在商店營運管理員中複製表單並將其另存為新的客戶特定表單。任何頁面類型、MDA、自訂或畫布頁面都可以使用 Power Platform 應用程式來新增。 建立新表單的主要原因包括:

  • 當您有獨特的商務流程,且無法使用解決方案中包含的標準流程時;
  • 當您需要新增許多自訂欄位 (數目大於 100) 時
  • 當所有使用者角色 (資訊安全角色和欄位安全性設定檔) 都無法使用相同的表單,並且限制資訊時,您必須為不同的使用者人物設定建立不同的表單。

重要

在此方法中,新表單不會反映自訂現有表單時所見商店營運管理員的更新。 如果修改想要採用已發行的新元件,就必須手動將其新增至您自己的表單。

您可以依照指定的步驟自訂 [零售活動] 表單。  

  1. 瀏覽至 Power Apps,並登入。 

  2. 選擇正確的環境。

  3. 瀏覽至 Dataverse> 資料表。 全選

    選取 [全部] 索引標籤以建立新的自訂表單。

  4. 向下捲動,並資料表清單選取零售活動

    選取 [零售活動] 以建立新的自訂表單。

  5. 選取表單以開啟與零售活動相關的表單清單。

  6. 選取後台系統主要表單以開啟設計師頁面。

    選取後台系統主要表單以建立新的自訂表單。

  7. 您可以在設計師中編輯或變更表單欄位。 您可以根據需要重新排列欄位或隱藏特定欄位。  例如,您可以將子格檢視表新增至表單,以顯示零售活動的公開跟進。 在左導覽窗格中選取元件 > 網格 > 子格。 選取資料表以顯示子格和預設檢視表。 輸入資料後,選取完成。 

    編輯子格以建立新的自訂表單。

  8. 選取儲存,然後選取發佈以發佈變更。

    選取 [儲存] 或 [發佈] 以建立新的自訂表單。

自訂商店營運的主題

您可以對預設主題中提供的預設色彩和視覺效果元素進行變更,為應用程式建立自訂外觀與風格 (含自訂標誌的主題)。 例如,您可以新增公司標誌並提供資料表特定著色來建立個人產品商標。 佈景主題色彩全域套用在應用程式中。

商店營運支援 Dynamics 平台提供的主題。 您可以在 Dynamics 的進階設定中設定佈景主題。 預設佈景主題如下所示:

圖中顯示商店營運的預設主題。

所有針對商店營運管理員建置的 Power Apps Component Framework (PCF) 控制項都使用主題設定中的主題,以所設定的色彩來顯示 UI 元素。 例如,可以在不變更任何程式碼的情況下,將預設的藍色色調變更為紅色或綠色。 主題會自動套用至所有 PCF 控制項。

如需有關如何套用和建立新佈景主題的詳細資訊,請移至使用佈景主題建立應用程式的自訂外觀

變更商店營運行動版的預設背景色彩

若要變更商店營運行動版的預設背景色彩,您可以使用以下步驟:

  1. 移至 Power Apps儀表板

  2. 在右上方選取您的商店營運環境。

  3. 選取左窗格中的解決方案,然後移至預設解決方案

  4. 搜尋並選取 MobileBackgroundColor 設定。

  5. 在右窗格的 [設定環境值] 底下,選取 + 新增環境值

  6. 輸入您希望背景使用的十六進位色彩 (例如,#CEEAFF),然後選取儲存以覆寫預設值。

    圖中顯示如何在商店營運行動版中變更背景色彩。

    注意

    目前,商店營運行動版中沒有變更字型文字色彩的範圍。

啟用商店營運行動版的行事曆檢視表

若要在商店營運行動版中啟用待辦事項清單的行事曆檢視表,可以使用下列步驟:

  1. 移至 Power Apps儀表板

  2. 在右上方選取您的商店營運環境。

  3. 選取左窗格中的解決方案,然後移至預設解決方案

  4. 搜尋並選取啟用行事曆檢視表設定。

  5. 在右窗格的設定環境值下方,選取以覆寫預設值。

    圖中顯示如何在商店營運行動版中啟用行事曆檢視表。

在商店營運管理員中更新標籤

您可以在商店營運管理員中更新標籤,以符合您公司中使用的特定術語喜好設定。 這種靈活性啟用更加直覺且更能依需調整的使用者體驗,讓店員更方便使用應用程式進行導覽和互動。 此外,重新命名工作、商店或其他元素的功能還可以提高清晰度並簡化組織內的溝通。 總體而言,此功能讓零售企業可以根據其獨特需求調整商店營運管理員,提高其日常營運的可用性和效率。

如需有關如何在商店營運管理員中更新標籤的詳細資訊,請參閱傳統表單設計師中的區段屬性。

自訂中的限制

Power Apps Component Framework 可讓開發人員建置自己的控制項或 UI 類型,而這不是現成可用控制項提供的。 不過,他們也有自身的限制。 商店營運在許多區域中使用自訂 PCF 控制項。 這些控制項並非低程式碼,但卻是使用 HTML (超文字標記語言)、CSS (階層式樣式表) 和 JavaScript 所建置。 因此,您無法變更或自訂任何屬於商店營運一部分的 PCF 控制項。

重要

組織可以自訂現有的表單,或是建立新表單以滿足其業務特定需求。 不過,如果 Microsoft 更新了屬於商店營運一部分的 PCF 控制項,則在這兩個案例中,這些更新又會反映在您的解決方案中。

進行自訂的最佳做法

當您打算根據任何客戶特定需求自訂商店營運管理員時,請務必遵循最佳做法以避免效能、可用性和支援能力問題。 有關擴充解決方案的建議如下:

  • 盡量減少表單上的自訂欄位數目

  • 不要從表單中編輯或移除現成可用的欄位

  • 不要編輯現成可用欄位的選項組 (選擇) 值

  • 在表單載入事件中使用較少的自訂指令碼

有關自訂表單時的設計考量事項,請參閱設計表單以提高效能

使用擷取產品自訂 API

所有產品都會儲存在 Microsoft Dataverse 中。 不過,庫存盤點和價格不在 Dataverse 中,需要在 ERP 中查詢。 Dataverse 中的自訂 API (外掛程式,稱為擷取產品 API) 會從 ERP 查詢此資料。

擷取產品 API 是傳回所有產品預設值的範本,您可以透過自訂實作覆寫此範本。 對於每個商店的每次產品檢查或價格檢查,會呼叫擷取產品外掛程式。 擷取的資料會儲存在包含 .json 檔案的稽核回覆資料表,而該檔案包含所有產品,包括價格和庫存盤點。

以下影像顯示產品檢查功能的邏輯流程:

影像顯示使用擷取產品自訂 API 的程序。

範例:擷取產品 API 實作

您可以查看擷取產品 API 實作的範例,如下所示:

輸入參數

  • 產品查詢:具有兩個參數的 expando 物件

  • storeId:執行外掛程式的目前商店名稱。 這是從業務單位名稱中取得。

  • productIds:逗號分隔的產品編號

輸出參數

  • Products:expando 物件清單 Products 集合中的每個產品都包含如下所示的參數:

    • productNumber:產品編號

    • oldPrice:產品的舊定價

    • newPrice:產品的新定價

    • attributes:其他屬性、索引鍵值集合

    • count:商店的產品計數

範例 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 報表

您可以下載和自訂要在商店營運外部使用的 Power BI 報表。 您可以將下載的 Power BI 報表與您組織中其他未獲授權使用商店營運管理員的使用者分享。

下載 Power BI 報表

  1. 前往 app.powerbi.com

  2. 移至工作區,並選取建立的受控工作區解決方案 RetailSOATest

  3. 開啟報表類型零售摘要商店作業

    圖中顯示如何開啟 Power BI 報表。

  4. 移至檔案 > 下載此檔案

  5. 在標題為您要下載什麼?的對話方塊中,選取報表和資料的複本 (.pbix),然後選取下載

    圖中顯示「要下載的內容」對話方塊。

您現在可以下載匯出的 .pbix 檔案來與無法存取商店營運管理員的使用者分享。

圖中顯示準備就緒可供下載的報表。

自訂 Power BI 報表

您可以在商店營運管理員外部的任何瀏覽器或其他 Power BI Desktop 或服務中,從商店營運開啟 Power BI 報表,並視需要進一步進行自訂。

  1. 下載並開啟 Power BI Desktop 應用程式

  2. 從最近使用的報表清單選取零售摘要商店營運.pbix 報表檔案,或在下載項目中瀏覽。

    圖中顯示如何在桌面開啟 Power BI 報表。

  3. 您可以開啟 Power BI Desktop 應用程式中的報表,並視需要進行變更。

    圖中顯示 Power BI Desktop 中開啟的報表。

另請參閱

使用 Microsoft Dataverse Web AP。
Power Platform 連接器概觀
建立和自訂模型導向應用程式。
使用 Power Apps 進行的自訂
現成可用 (OOB) 主題自訂