分享方式:


解決方案元件的相依性追蹤

解決方案是由解決方案元件所組成。 您在 Microsoft Dataverse 的 解決方案 區域中建立或新增解決方案元件。 使用 AddSolutionComponentRequest 訊息或建立或更新包括 SolutionUniqueName 參數的解決方案元件的任何訊息,您可以程式設計方式執行下列動作。

解決方案元件通常取決於其他解決方案元件。 有其他解決方案元件相依性的解決方案元件無法刪除。 例如,自訂功能區通常需要影像或指令碼 Web 資源,才能顯示圖示和使用指令碼執行動作。 只要自訂功能區在解決方案中,需要它使用的特定 Web 資源。 在刪除 Web 資源之前,您必須移除自訂功能區中它們的參照。 按一下 顯示相依性,可在應用程式中檢視這些解決方案元件相依性。

本主題說明您在解決方案中包含的解決方案元件類型,以及它們彼此間互相依存。

所有解決方案元件

可用的解決方案元件類型的完整清單位於系統 componenttype 全域選項組。 將 OptionSets.csOptionSets.vb 檔案包括在專案中,就可以使用此屬性支援的範圍值。 不過,那裡列出的許多解決方案元件類型僅供內部使用,而清單中不提供解決方案元件之間的關聯資訊。

解決方案元件相依性

解決方案元件相依性可確保您有可靠的經驗來使用解決方案。 它們可防止您正常執行的動作不小心破壞解決方案中定義的自訂。 這些相依性可讓您藉由簡單匯入或刪除解決方案,來安裝及解除安裝受管理的解決方案。

解決方案架構自動追蹤解決方案元件相依性。 在解決方案元件的每個作業自動計算系統中其他元件的任何相依性。 相依性資訊用於維護系統的完整性和避免可能造成不一致狀態的作業。

基於相依性追蹤,下列行為會強制執行:

  • 如果在系統中其他元件依賴元件,無法刪除元件。

  • 在其他系統中匯入解決方案時,如果任何有遺失的元件可能會造成失敗,則匯入該解決方案時警告使用者。

    如果解決方案開發人員想要解決方案只安裝在相依元件預期存在的組織中,使用者可忽略在匯出時的警告。 例如,當您建立解決方案,其設計安裝在預先安裝的「基礎」解決方案上。

  • 如果所有必要元件未包括解決方案中也不存在目標系統,解決方案的匯入會失敗。

    • 此外,當匯入受管理的解決方案時,所有必要元件必須與解決方案的套件類型符合。 受管理的解決方案中的元件只可以依據其他受管理的元件。

    解決方案元件相依性有三種類型:

    解決方案內部
    內部相依性由 Dataverse 管理。 當特定解決方案元件無法在沒有另一個解決方案元件的情況下存在時,即存在內部相依性。

    發表
    當兩個解決方案元件彼此關聯並發佈時,就會建立所發佈的相依性。 若要移除這種類型的相依性,必須移除關聯,然後再次發行實體。

    發表
    未發行的相依性適用於更新中、可發行的解決方案元件未發行版本。 在解決方案的元件發行之後,成為發行的相依性。

    解決方案元件內部相依性表示解決方案元件的動作需要另一個解決方案元件的動作。 例如,當您刪除實體時,您預期會隨之刪除所有實體屬性。 也會刪除與其他實體的任何實體關聯。

    然而,內部相依性可能會造成發行的相依性,而仍需手動介入。 例如,若您在實體表單上包含了查詢欄位,然後再刪除關聯中的主要實體,則必須先從相關實體表單中移除查詢欄位,然後發行該表單,才能完成刪除。

    當您以程式設計方式執行解決方案的動作時,可以使用與 Dependency 實體關聯的訊息。 請參閱相依性實體 ,以取得在刪除元件或解除安裝解決方案之前,可用以識別可能已存在之相依性的訊息。

一般解決方案元件

這些是應用程式中顯示的解決方案元件,使用解決方案頁面新增或移除解決方案元件時直接使用這些元件。 解決方案元件的其他類型都需要一個或多個這類解決方案元件存在。

應用程式功能區(RibbonCustomization) 實體(Entity) 報告(Report)
文章範本(KBArticleTemplate) 欄位安全性設定檔(FieldSecurityProfile) SDK 消息處理步驟(SDKMessageProcessingStep)
連接角色(ConnectionRole) 郵件合併範本(MailMergeTemplate) 資訊安全角色(角色)
合約範本(ContractTemplate) 選項組(OptionSet) 服務端點(ServiceEndpoint)
儀錶板或實體表單(SystemForm) 外掛程式組合件(PluginAssembly) 網站地圖(SiteMap)
電子郵件樣本(EmailTemplate) 流程(Workflow) Web 資源(WebResource)

應用程式功能區 (RibbonCustomization)

應用程式功能區與實體功能區範本的功能區自訂。 應用程式功能區未包含實體或表單層級的功能區定義。

自訂應用程式功能區經常有 Web 資源的已發行相依性。 Web 資源是用來定義功能區按鈕圖示和 JavaScript 函數,以控制何時顯示功能區元素或當特定功能區控制項使用時要執行哪些動作。 在功能區定義使用 $webresource: 指示詞關聯 Web 資源至功能區時,才會建立相依性。 其他資訊:$webresource 指令

文章範本 (KBArticleTemplate)

包含文章的標準屬性之範本。 文章範本與 KbArticle 實體之間永遠會有內部相依性。

關係角色 (ConnectionRole)

描述兩筆記錄間之關係的角色。 每個關係角色定義哪種實體記錄可使用關係角色連結。 這可以建立關係角色和實體之間的已發行相依性。

合約範本 (ContractTemplate)

包含合約的標準屬性之範本。 合約範本與合約實體之間永遠會有內部相依性。

儀表板或實體表單 (SystemForm)

系統表單實體記錄用來定義儀表板和實體表單。 當 SystemForm 做為實體表單時,在實體上會存有內部相依性。 當 SystemForm 作為儀表板時,則沒有內部相依性。 實體表單和儀表板通常有與其內容關聯的已發行相依性。 實體表單可能有依賴實體關聯的查詢欄位。 儀表板和實體表單包含的圖表或子格將會產生檢視表的已發行相依性,而檢視表則有實體的內部相依性。 因為顯示在儀表板或表單中的內容,或是當表單包含 JavaScript 程式庫時,就可建立 Web 資源的已發佈相依性。 實體表單有任何屬性 (顯示為表單欄位) 的已發行相依性。

電子郵件範本 (EmailTemplate)

包含電子郵件訊息標準屬性的範本。 電子郵件範本通常包括從指定實體屬性插入資料的欄位。 當建立時有實體的內部相依性,電子郵件範本可以與特定實體進行連結。 全域電子郵件範本未與特定實體關聯,但是,它可以有用來提供資料的實體屬性的已發行相依性。 程序 (工作流程) 通常設定為使用電子郵件範本傳送電子郵件,建立工作流程的已發行相依性。

實體 (Entity)

用來模型化及管理 Dataverse 資料的主要結構。 由於兩者間的內部相依性刪除實體時,與實體關聯的圖表、表單、實體關聯、檢視表及屬性會自動刪除。 實體通常有程序、儀表板和電子郵件範本的已發行相依性。

欄位安全性設定檔 (FieldSecurityProfile)

定義受保護屬性之存取層級的設定檔。

合併列印範本 (MailMergeTemplate)

包含合併列印文件之標準屬性的範本。 合併列印範本有相關聯實體的已發行相依性。

選項組 (OptionSet)

選項組定義一組選項。 挑選清單屬性使用選項組定義提供的選項。 許多挑選清單屬性可以使用全域選項組,所以提供的選項都是相同並在一個位置上維護。 挑選清單屬性參照全域選項組時,就會發生已發行相依性。 您無法刪除挑選清單屬性使用的全域選項組。

外掛程式組件 (PluginAssembly)

包含一或多個外掛程式類型的組件。 外掛程式註冊到通常與實體相關的活動。 這會建立已發行相依性。

程序 (Workflow)

邏輯規則集,定義自動化特定商務程序、工作或要執行的一組動作所需的步驟。 處理程序提供各種動作,會建立處理程序所參考之其他解決方案元件的已發行相依性。 每個程序也有相關聯實體的已發行相依性。

報表 (Report)

易讀版面配置中的資料摘要。 報表有在報表中所含的所有實體或屬性資料的已發行相依性。 每個報表也必須和報表類別相關,會在解決方案元件上建立一個名為「報表相關類別」(ReportCategory)的內部相依性。 報表可設定為內嵌報表,建立上層報表的已發行相依性。

SDK 訊息處理步驟 (SDKMessageProcessingStep)

執行準銷售案源中要執行外掛程式的階段。

資訊安全角色 (Role)

安全性權限的群組。 使用者會擁有授與其 Dataverse 系統存取權的指派角色。 實體表單可以與特定資訊安全角色關聯,控制誰可以檢視表單。 這可以建立資訊安全角色和表單之間的已發行相依性。

注意

只有從組織業務單位的資訊安全角色可以加入至解決方案。 只有具有這些資訊安全角色讀取權限的使用者可以加入至解決方案。

服務端點 (ServiceEndpoint)

可連絡的服務端點。

網站地圖 (SiteMap)

用於控制應用程式導覽窗格的 XML 資料。 或許會連結到網站地圖以顯示 HTML Web 資源,或網站地圖的圖示可能會使用影像 Web 資源。 當 $webresource: 指示詞用來建立這些關聯時,會建立已發行相依性。 其他資訊:$webresource 指令

Web 資源 (WebResource)

等同於 Web 開發所使用檔案的資料。 Web 資源提供用於提供自訂使用者介面元素的用戶端元件。 Web 資源可能有實體表單、功能區和 SiteMap 的已發行相依性。 當 $webresource: 指示詞用來在功能區和 SiteMap 中建立關聯時,會建立已發行相依性。 如需更多資訊,請參閱:$webresource 指令

注意

Web 資源會依據相對連結依賴其他 Web 資源。 例如,HTML Web 資源可以使用 CSS 或指令碼 Web 資源。 在實體表單或圖表外顯示的 Silverlight Web 資源必須有主控的 HTML Web 資源。 這些相依性不會做為解決方案相依性追蹤。

另請參閱

解決方案概念
刪除依賴項
環境策略
使用 SDK API 使用解決方案]
解決方案實體參考
SolutionComponent 實體參考