解決方案是由解決方案元件所組成。 請使用 Microsoft Dataverse 中的解決方案區來建立或新增解決方案元件。 使用 AddSolutionComponentRequest 訊息或建立或更新包括 SolutionUniqueName 參數的解決方案元件的任何訊息,您可以程式設計方式執行下列動作。
解決方案元件通常取決於其他解決方案元件。 對其他解決方案元件有相依性的任何解決方案元件都無法刪除。 例如,自訂功能區通常需要影像或指令碼 Web 資源,才能顯示圖示和使用指令碼執行動作。 只要自訂功能區在解決方案中,就必須包含其使用的特定 Web 資源。 在刪除 Web 資源之前,您必須先刪除自訂功能區中對它們的參考。 你可以在應用程式中選擇 「顯示相依關係」 來查看這些解決方案元件的相依關係。
本文說明您可在解決方案中包含的解決方案元件類型,以及它們彼此間互相依存的方式。
所有解決方案元件
系統 componenttype 全域選擇欄位包含完整的可用方案元件類型清單。 在專案中包含檔案 OptionSets.cs 或 OptionSets.vb,即可查看此屬性支援的值範圍。 然而,許多解決方案元件類型僅供內部使用,且清單未提供元件間關係的資訊。
解決方案元件相依性
解決方案元件相依性確保你在使用解決方案時擁有可靠的經驗。 它們可防止您正常執行的動作不小心破壞解決方案中定義的自訂。 這些相依性可讓您只要匯入或刪除解決方案,即可安裝及解除安裝受管理的解決方案。
解決方案架構自動追蹤解決方案元件相依性。 對解決方案元件的每項作業都會自動計算其對系統中其他元件的任何相依性。 系統利用相依性資訊來維護完整性,並防止可能導致不一致狀態的操作。
由於相依性追蹤,會強制執行下列行為:
如果系統中的另一個元件依賴該元件,則無法刪除該元件。
匯出解決方案時,如果有任何可能在其他環境中匯入該解決方案時導致失敗的缺少元件,系統會提醒你。
如果你打算讓解決方案只安裝在預期會有相依元件存在的環境中,可以忽略匯出時的警告。 例如,當您建立一個設計成安裝在預先安裝的「基礎」解決方案上的解決方案時,
如果解決方案沒有包含所有必要的元件,且目標環境本身沒有這些元件,匯入就會失敗。
當你匯入受管理解決方案時,所有所需的元件必須與解決方案的套件類型相符。 受管理解決方案中的元件只能依賴另一個受管理元件。
解決方案元件相依性有三種類型:
- 內部解決方案 Dataverse 管理內部相依性。 當某個解決方案元件無法在沒有另一個解決方案元件的情況下存在時,這些依賴關係就存在。
- 已發佈。 當兩個解決方案元件彼此相關且之後發佈時,Dataverse 會建立已發佈的相依關係。 要移除這種依賴,你必須移除關聯並重新發布資料表。
- 未發佈。 未發行的相依性適用於正在更新之可發行解決方案元件的未發行版本。 當你發佈解決方案元件後,它就會成為已發佈的相依性。
解決方案元件內部相依性是指解決方案元件的動作需要另一個解決方案元件動作的相依性。 舉例來說,如果你刪除一個資料表,你會預期所有資料表屬性都會隨之刪除。 系統也會刪除與其他資料表之間的任何資料表關聯。
然而,內部相依性可能會導致已發佈的相依套件,且仍需手動介入。 例如,如果你在表格表單中加入查找欄位,然後刪除關係中的主表格,必須先從相關資料表表單中移除查找欄位並發布表單,才能完成刪除。
當你以程式設計方式使用解決方案執行動作時,請使用與 Dependency 表格相關的訊息。 在刪除元件或解除安裝解決方案之前,請前往相依項目實體,以取得可用於識別可能存在的相依性的訊息。
常見解決方案元件
這些解決方案元件會出現在應用程式中。 你在新增或移除解決方案組件時,直接透過解決方案頁面與他們互動。 其他各類解決方案元件都依賴於一個或多個這些解決方案元件。
- 應用程式功能區
- 實體
- 報告
- 文章範本
- 資料行安全性設定檔
- SDK 訊息處理步驟
- 連線角色
- 電子郵件合併範本
- 安全性角色
- 合約範本
- 選項組
- 服務端點
- 儀表板或實體表單
- 外掛程式組件
- 網站地圖
- 電子郵件範本
- 處理程序
- Web 資源
應用程式功能區 (RibbonCustomization)
應用程式功能區和資料表功能區範本的功能區自訂。 應用程式功能區不包含資料表或表單層級的功能區的定義。
自訂應用程式功能區經常具有對 Web 資源的已發佈相依性。 利用網路資源定義功能區按鈕圖示和 JavaScript 函式,控制功能區元素何時顯示或使用特定功能區控制項時執行的動作。 只有當功能區定義使用 $webresource: 指令將網路資源與功能區關聯時,相依關係才會被建立。 如需更多資訊,請參閱:$webresource 指令。
文章範本 (KBArticleTemplate)
包含文章的標準屬性之範本。 文章範本和 KbArticle 表之間始終存在內部相依性。
連線角色 (ConnectionRole)
描述兩筆記錄之間關係的角色。 每個連接角色定義了可透過連接角色連結的實體紀錄類型。 此角色會在連接角色與資料表之間建立已發佈的相依性。
合約範本 (ContractTemplate)
包含合約的標準屬性之範本。 合約範本與合約資料表之間永遠會有內部相依性。
儀表板或實體表單 (SystemForm)
使用系統表單資料表記錄來定義儀表板和表單表單。 當你用 a SystemForm 作為表格表單時,內部會依賴該表格。 當你使用 a SystemForm 作為儀表板時,內部沒有依賴性。 資料表表單和儀表板通常有與其內容關聯的已發佈的相依關係。 資料表表單可能具有相依於資料表關聯性的查閱資料行。 儀表板和資料表表單可以包含圖表或子格,這些圖表或子格將會對檢視表建立已發佈相依性,而檢視表則有資料表的內部相依性。 因為顯示在儀表板或表單中的內容,或是當表單包含 JavaScript 程式庫時,就可建立已發佈的 Web 資源相依性。 資料表表單對表單中顯示為資料行的任何屬性具有已發行的相依性。
電子郵件範本 (EmailTemplate)
包含電子郵件訊息標準屬性的範本。 電子郵件範本通常包括從指定資料表屬性插入資料的資料行。 你可以在建立郵件範本時將郵件範本連結到特定資料表,因此可能會對該資料表形成內部相依性。 全域電子郵件範本不會綁定在特定資料表,但它可能會對用來提供資料的資料表屬性有已發佈的相依性。 流程(工作流程)經常會設定為使用電子郵件範本來傳送電子郵件,與該工作流程形成已發佈的相依關係。
實體 (Entity)
資料表 (以前稱為實體) 是 Dataverse 中用於建模和管理資料的主要結構。 由於它們之間的內部依賴關係,當你刪除一個表格時,也會刪除與該表格相關的圖表、表單、表格關係、檢視和屬性。 資料表通常與程序、儀表板和電子郵件範本存在已發行的相依關係。
資料行安全性設定檔 (FieldSecurityProfile)
定義受保護屬性之存取層級的設定檔。
合併列印範本 (MailMergeTemplate)
包含合併列印文件之標準屬性的範本。 合併列印範本對其相關聯的資料表有已發佈的相依性。
選項組 (OptionSet)
選擇資料行 (以前稱為選項組) 用來定義一組選項。 選項清單屬性使用一個選項來定義提供的選項。 許多選擇清單屬性可以使用全域選項,因此提供的選項會維持一致,並可在單一位置集中維護。 選擇清單屬性參照全域選擇時,就會發生已發佈相依性。 您無法刪除挑選清單屬性使用的全域選擇。
外掛程式組件 (PluginAssembly)
包含一或多個外掛程式類型的組件。 外掛程式註冊到通常與資料表相關的事件。 此註冊會建立已公開的相依關係。
流程 (Workflow)
一組邏輯規則,定義自動化特定業務流程、任務或執行一組動作所需的步驟。 處理程序提供各種動作,會建立處理程序所參考之其他解決方案元件的已發佈相依關係。 每個程序也都有其關聯資料表的已公開相依關係。
報表(報表)
易於閱讀版面配置的資料摘要。 報表已發佈對報表中所含任何資料表或屬性資料的相依性。 每個報告也必須與報表類別相關聯,這會產生對一個稱為 Report Related Category(ReportCategory)的解決方案元件的內部依賴。 你可以將報告設定為子報告,建立與父報告相關的發佈相依關係。
SDK 訊息處理步驟 (SDKMessageProcessingStep)
外掛程式要在執行管線中執行的階段。
安全性角色 (Role)
安全性權限的分組。 指派安全角色給使用者授權他們存取 Dataverse 系統。 將表格表單與特定安全角色關聯,以控制誰能查看表單。 這種關聯會在安全角色與表單之間建立公開依賴關係。
注意
你只能將環境業務單位的安全角色加入解決方案。 只有具有這些資訊安全角色讀取權限的使用者可以將這些資訊安全角色加入至解決方案。
服務端點 (ServiceEndpoint)
你可以聯絡的服務端點。
網站地圖 (SiteMap)
用於控制應用程式導覽窗格的 XML 資料。 你可以將網站地圖連結到 HTML 網頁資源來顯示,或網站地圖中的圖示可能使用圖片網頁資源。 當你使用 $webresource: 指令建立這些關聯時,你就建立了已公開的依賴關係。 如需更多資訊,請參閱:$webresource 指令。
Web 資源 (WebResource)
相當於用於擴展模型導向應用程式或在 Web 開發中使用的檔案的資料。 Web 資源提供用於提供自訂使用者介面元素的用戶端元件。 Web 資源可能有已發行的相依性,涉及資料表表單、功能區和網站地圖。 當你使用 $webresource: 指令在功能區或網站地圖中建立關聯時,你會建立一個已發佈的相依關係。 如需更多資訊,請參閱:$webresource 指令。
注意
Web 資源會依據相對連結相依於其他 Web 資源。 例如,HTML Web 資源可以使用 CSS 或指令碼 Web 資源。 在資料表表單或圖表外顯示的 Silverlight Web 資源必須有託管其的 HTML Web 資源。 不會將這些相依性當做解決方案相依性進行追蹤。