解決方案概念
解決方案是在和中 Power Apps 實施應用程式生命週期管理 (ALM) 的機制 Power Automate。 本文說明下列主要解決方案概念:
- 兩種類型的解決方案
- 解決方案元件
- 解決方案週期
- 解決方案發行者
- 解決方案與解決方案元件相依性
受管理和未受管理的解決方案
一個解決方案一定是受管理的或未受管理的,二擇一。
開發了非託管解決方案 。 當您變更應用程式時,會在開發環境中使用未受管理解決方案。 未受管理的解決方案可以匯出為未受管理的或受管理的。 匯出的未受管理版本解決方案應登記至您的來源控制系統中。 未受管理的解決方案應視為您的 Microsoft Power Platform 資產來源。 刪除非託管解決方案時,只會刪除其中包含的任何自定義項的解決方案容器。 所有未受管理的自訂仍然有效,且屬於預設解決方案。
部署託管解決方案 。 受管理的解決方案可部署到任何不是該解決方案開發環境的環境。 這包括測試、UAT、SIT 和生產環境。 受管理的解決方案可以獨立於環境中的其他受管理解決方案而提供服務。 作為 ALM 的最佳作法,受管理解決方案的生成方式應透過把未受管理的解決方案匯出為受管理的,並將其視為組建成品。 此外:
- 您無法在受管理的解決方案中直接編輯元件。 若要編輯受管理的元件,請先將它們新增至未受管理的解決方案。
- 這樣做時,您會在未受管理的自訂與受管理的解決方案之間建立相依性。 如果存在相依性,則在您移除相依性之前,無法解除安裝受管理的解決方案。
- 有些受管理的元件無法編輯。 若要確認元件是否可以編輯,請查看受管理的屬性。
- 您無法匯出受管理的解決方案。
- 刪除 (解除安裝) 受管理的解決方案時,其中隨附的所有自訂和擴充功能都會遭移除。
重要
- 您無法將受管理的解決方案匯入至包含初始未受管理之解決方案的相同環境。 若要測試受管理的解決方案,您需要不同的環境,以便將其匯入至其中。
- 當您刪除受管理的解決方案時,下列資料會遺失:儲存在屬於受管理的解決方案之自訂實體中的資料,以及在其他不屬於受管理的解決方案的實體上儲存在屬於受管理的解決方案之自訂屬性中的資料。
- 您無法在受管理的解決方案中直接編輯元件。 若要編輯受管理的元件,請先將它們新增至未受管理的解決方案。
製作者與開發人員使用非受管理解決方案在開發環境中工作,然後將它們當成受管理解決方案,匯入其他下游環境 (例如測試)。
注意
當您在開發環境中自訂時,就是在未管理層中工作。 因此,當您將未受管理解決方案匯出,當成受管理解決方案分發至另一個環境時,受管理的解決方案將會匯入至受管理層的環境中。 更多資訊:解決方案分層
解決方案元件
元件表示您可能可以自訂的項目。 可以包含在解決方案中的任何項目即是元件。 若要檢視解決方案中所包含的元件,請開啟您想要的解決方案。 元件列在元件清單中。
注意
- 解決方案的大小最大為 95 MB。
- 您無法在受管理的解決方案中直接編輯元件。
若要查看可新增到任何解決方案的元件類型清單,請參閱 ComponentType 選項。
有些元件會在其他元件中形成巢狀結構。 例如,實體包含表單、檢視表、圖表、欄位、實體關聯、訊息和商務規則。 每個這些元件都必須有實體存在。 欄位不可以出現在實體外面。 也就是,欄位依存於實體。 元件類型的數量是前面清單中顯示的兩倍,但大多數元件都嵌套在其他元件中,在應用程式中不可見。
使用元件的目的是追蹤使用受管理的屬性和所有相依性所能進行之自訂的限制,以便匯出、匯入和 (在受管理的解決方案中) 刪除,而不留下任何項目。
解決方案週期
解決方案支援下列可協助支援應用程式週期處理的動作:
創建 作者和匯出非託管解決方案。
Update Create 更新部署到父系受管理的解決方案的受管理的解決方案。 您無法使用更新來刪除元件。
升級 將解決方案作為對現有受管理的解決方案的升級導入,這將刪除未使用的元件並實施升級邏輯。 升級包含彙總 (合併) 該解決方案的所有修補程式到新版的解決方案中。 解決方案升級會刪除已存在但不再包含在升級版本中的元件。 您可以選擇立即升級或分段升級,這樣就可以在完成升級之前執行一些額外的動作。
補丁 補丁僅包含父系受管理的解決方案的更改,例如添加或編輯元件和資產。 進行小型更新(類似 hotfix)時,請使用修補程式。 匯入修補程式時,這些修補程式會層疊在上層解決方案的最頂端。 您無法使用修補程式來刪除元件。
解決方案發行者
每個應用程式及其他解決方案元件 (例如您建立的實體,或任何您所進行的自訂) 都是解決方案的一部分。 由於每個解決方案都有發行者,因此您應該建立自己的發行者,而不是使用預設值。 當您建立解決方案時,您可以指定發行者。
Note
即使不使用自訂解決方案,您也是在稱為 Common Data Service 預設解決方案和預設解決方案的解決方案中工作。 其他資訊:預設解決方案和 Common Data Service 預設解決方案
建立元件的解決方案發行者會視為該元件的擁有者。 元件擁有者會控制允許或限制解決方案 (包括該元件) 的其他發行者進行哪些變更。 您可以將元件的擁有權從一個解決方案移動到同一發行者的另一個解決方案中,但不能跨發行者。 在受管理的解決方案中引入元件發行者後,即無法變更元件的發行者。 由於此限制,最好定義單個發行者,以便以後可以跨解決方案更改分層模型。
解決方案發行者指定開發應用程式的人員。 因此,您應該建立有意義的解決方案發行者名稱。
解決方案發行者首碼
解決方案發行者會包含首碼。 發行者程式首碼是協助避免命名衝突的機制。 這樣可將不同發行者的解決方案安裝在有較少衝突的環境中。 例如,此處顯示的 Contoso 解決方案包括解決方案發行者首碼 contoso。
注意
變更解決方案發行者首碼時,您必須在建立任何新的應用程式或中繼資料項目之前先這樣做,因為您無法在建立中繼資料項目之後變更其名稱。
其他資訊:
解決方案相依性
由於受管理的解決方案層疊方式各有不同,某些受管理的解決方案可能依賴於其他受管理的解決方案中的解決方案元件。 一些解決方案發行者利用這一點來構建模組化解決方案。 您可能需要先安裝一個「base」受管理的解決方案,然後可以安裝第二個受管理的解決方案,以進一步自定義 base 受管理的解決方案中的元件。 第二個受管理的解決方案依存於屬於第一個解決方案之一部分的解決方案元件。
系統會追蹤解決方案之間的這些相依性。 如果您嘗試安裝需要基底解決方案的解決方案,但是該基底解決方案未安裝,則無法安裝解決方案。 您將收到一條消息,指出該解決方案需要先安裝另一個解決方案。 同樣,由於依賴關係,當依賴於基本解決方案的解決方案仍處於安裝狀態時,您無法卸載基本解決方案。 您必須先解除安裝相依的解決方案,才能解除安裝基底解決方案。 其他詳細資訊:移除相依性
解決方案元件相依性
解決方案元件表示您可能可以自訂的項目。 任何可包含在解決方案中的項目都是解決方案元件,但有些元件會相依於其他元件。 例如,網站欄位和客戶摘要報表都相依於客戶實體。 其他詳細資訊,請參閱解決方案元件相依性追蹤