Power Apps / Dataverse 初學整理:Canvas App、Solution、Publisher 與 Dataverse Table 基礎理解

| PowerPlatform | 3 Reads

最近在建立新的 Power Apps 環境時,對於:

  • Canvas App

  • Solution

  • Publisher

  • Dataverse Table

  • 系統表 / Custom 表

之間的關係產生了不少疑惑。
本文整理成一篇「初學者向」的 STEP 操作筆記。


一、Power Apps 的 App 是否應該放進 Solution?

答案:

正式開發時,建議一定要放進 Solution。


基本概念

項目 用途
Canvas App 真正運行的 UI App
Solution 管理 App、Table、Flow 的容器
Publisher Solution 的命名空間
Dataverse Power Platform 的資料平台

Solution 的作用

Solution 用來:

  • 管理 App

  • 管理 Dataverse Table

  • 管理 Flow

  • 做版本控制

  • Export / Import

  • Git 管理

  • ALM(Application Lifecycle Management)


正式結構通常會長這樣

Solution
 ├── Canvas App
 ├── Dataverse Tables
 ├── Flows
 └── Components

二、為什麼新環境裡已經有兩個 Solution?

新建立 Dataverse 環境後,通常會看到:

Common Data Services Default Solution
既定のソリューション

這是 Microsoft 自動建立的系統 Solution。


它們不是你的業務 Solution

一般不要拿來正式開發。


正確做法

自己建立新的 Solution。

例如:

審査請求事件 処理状況等管理システム

三、Dataverse 裡為什麼有那麼多 Table?

Dataverse 與傳統 SQL Server 不同。


傳統 DB

Database
 └── Tables

Dataverse

Environment
 └── Dataverse
      └── Tables

Dataverse 的特點

Dataverse:

  • 沒有給你直接管理 SQL DB

  • 所有資料都以 Table 形式存在

  • 系統表與自訂表混在一起

因此:

一個空環境就可能有幾百張表。

這是正常的。


四、如何區分系統表與自己的表?

在「テーブル」頁面中:


1. 看「タグ」

Tag 意義
標準 Microsoft 系統表
カスタム 自訂表

2. 看 logical name

系統表

通常:

task
team
systemuser

自訂表

通常:

crb63_xxx
new_xxx
ssj_xxx

會帶 prefix。


五、標準表可以刪除嗎?

一般:

不建議刪除。

因為很多是 Dataverse 核心系統表。

例如:

  • task

  • team

  • systemuser

都可能與:

  • Security

  • Flow

  • Metadata

  • Activity System

有關。


六、建立正式 Solution


STEP 1:進入「ソリューション」

左側:

ソリューション

STEP 2:點「新しいソリューション」


STEP 3:填寫 Solution


表示名

審査請求事件 処理状況等管理システム

名前(Internal Name)

建議:

ShinsaSeikyuJikenShoriJokyoTouKanriSystem

說明:

日文 羅馬字
審査請求 ShinsaSeikyu
事件 Jiken
処理状況 ShoriJokyo
Tou
管理システム KanriSystem

為什麼是 Tou 而不是 Nado?

正式日文系統名中:

通常使用音讀:

とう(Tou)

例如:

書類等
設定等

都偏正式用法。


七、建立 Publisher


STEP 1:點「新しい公開元」


STEP 2:填寫 Publisher

欄位
表示名 SSJ Publisher
名前 SSJPublisher
接頭辞 ssj

接頭辞(Prefix)非常重要

之後:

  • Table

  • Column

  • Component

都會使用這個 Prefix。


例如

好的情況

ssj_errorreason
ssj_salaryreduce

不好的情況

crb63_xxx
new_table1

八、「選択する値の接頭辞」是什麼?

當 Prefix 設成:

ssj

後,

下面可能自動變成:

92410

這是正常的。


它不是文字 Prefix

而是:

Choice / OptionSet 的數值範圍。

例如:

924100000
924100001

之類的值。

通常:

不需要修改。


九、Version 應該填多少?

建議:

1.0.0.0

即使目前只有測試 Canvas App 也沒問題

因為:

Solution Version 不代表完成度。

而代表:

Solution 生命周期起點。


十、「優先するソリューションとして設定」要勾嗎?

一般:

不要勾。


原因

這涉及:

  • Solution Layering

  • Customization Precedence

  • 進階 ALM

初學階段不需要。


十一、最後完成後的結構

Solution
 ├── Canvas App
 ├── Dataverse Tables
 ├── Flows
 └── Components

並使用:

Publisher Prefix = ssj

作為統一命名空間。


十二、最終建議

正式開發時:

  • 不要直接在 Default Solution 開發

  • 不要使用系統亂數 Prefix

  • 盡早建立自己的 Solution 與 Publisher

  • 讓 Table / App / Flow 都放入同一個 Solution 中管理

這樣後續:

  • Git

  • Export

  • Deploy

  • ALM

才不容易混亂。

This article was last edited at