共用方式為


解決方案元件相依性追蹤

本主題適用於 Dynamics 365 Customer Engagement (on-premises)。 有關此主題的 Power Apps 版本,請參閱: 解決方案元件的相依性追蹤

解決方案是由解決方案元件所組成。 您會使用 Dynamics 365 Customer Engagement (on-premises) 中的解決方案區域來建立或新增解決方案元件。 使用 AddSolutionComponentRequest 訊息或建立或更新包括 SolutionUniqueName 參數的解決方案元件的任何訊息,您可以程式設計方式執行下列動作。

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

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

所有解決方案元件

可用的解決方案元件類型的完整清單位於系統 componenttype 全域選項組。 您可以使用 https://[ORGANIZATION_NAME].api.crm.dynamics.com/api/data/v9.0/GlobalOptionSetDefinitions(Name='componenttype') REST 端點來查詢此資料,並使用程式碼查看所有元件。 在專案中包含檔案 SampleCode\CS\HelperCode\OptionSets.cs 或 SampleCode\VB\HelperCode\OptionSets.vb,即可取得此屬性支援的值範圍。 不過,那裡列出的許多解決方案元件類型僅供內部使用,而清單中不提供解決方案元件之間的關聯資訊。

解決方案元件相依性

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

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

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

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

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

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

  • 如果任何必要元件都沒有包含在解決方案中,也不存在於目標系統中,則解決方案匯入會失敗。

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

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

    解決方案內部
    內部相依性是由 Dynamics 365 Customer Engagement (on-premises) 管理。 當特定解決方案元件無法在沒有另一個解決方案元件的情況下存在時,就會有這些相依性。

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

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

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

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

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

檢查解決方案元件相依性

編輯解決方案時,您可能會發現解決方案元件因有其他解決方案元件的已發佈相依性而無法刪除。 或是您無法解除安裝受管理的解決方案,因為受管理的解決方案中的其中一個元件用於其他未受管理的解決方案的自訂。

下表列出您可以用來擷取解決方案元件相依性相關資料的訊息。

Message Description
RetrieveDependentComponentsRequest 為直接依賴解決方案元件的解決方案元件,傳回相依性清單。

例如,當您對全域選項組解決方案元件使用此訊息時,則會傳回解決方案元件相依性記錄,表示參照全域選項組解決方案元件的所有選項組屬性。

當您為客戶實體時解決方案元件記錄使用此訊息,則會傳回所有解決方案元件的相依性記錄,代表該實體的屬性、檢視表與表單。
RetrieveRequiredComponentsRequest 為另一個解決方案元件直接依賴的解決方案元件,傳回相依性清單。 此訊息提供 RetrieveDependentComponentsRequest 訊息的相反訊息。
RetrieveDependenciesForDeleteRequest 為可能會防止解決方案元件刪除的解決方案元件,傳回所有相依性的清單。
RetrieveDependenciesForUninstallRequest 為可能會防止受管理的解決方案解除安裝的解決方案元件,傳回所有相依性的清單。

一般解決方案元件

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

應用程式功能區 (RibbonCustomization)

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

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

文章範本 (KBArticleTemplate)

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

關係角色 (ConnectionRole)

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

合約範本 (ContractTemplate)

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

儀表板或實體表單 (SystemForm)

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

電子郵件範本 (EmailTemplate)

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

實體 (Entity)

在 Dynamics 365 Customer Engagement (on-premises) 中用於建立資料模型和管理資料的主要結構。 由於兩者間的內部相依性刪除實體時,與實體關聯的圖表、表單、實體關聯、檢視表及屬性會自動刪除。 實體通常有程序、儀表板和電子郵件範本的已發行相依性。

欄位安全性設定檔 (FieldSecurityProfile)

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

合併列印範本 (MailMergeTemplate)

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

選項組 (OptionSet)

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

外掛程式組件 (PluginAssembly)

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

程序 (Workflow)

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

報表 (Report)

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

SDK 訊息處理步驟 (SDKMessageProcessingStep)

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

資訊安全角色 (Role)

安全性權限的群組。 使用者獲指派授權他們存取 Dynamics 365 Customer Engagement (on-premises) 系統的角色。 實體表單可以與特定資訊安全角色關聯,控制誰可以檢視表單。 這可以建立資訊安全角色和表單之間的已發行相依性。

備註

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

服務端點 (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 資源。 不會將這些相依性當做解決方案相依性進行追蹤。

另請參閱

使用 Dynamics 365 Customer Engagement (on-premises) 解決方案打包和分發擴展
解決方案簡介
規劃解決方案開發
創建、匯出或導入非託管解決方案
建立、安裝和更新受管理的解決方案
創建、安裝和更新託管解決方案
卸載或刪除解決方案
解決方案實體