Microsoft Dynamics CRM - 解決方案



解決方案提供了一個框架,用於打包、安裝和解除安裝元件以匹配您的業務功能。解決方案允許自定義人員和開發人員建立、打包和維護擴充套件 CRM 的軟體單元。在 CRM 中執行的任何自定義、擴充套件或配置都使用解決方案進行打包、管理和分發。解決方案可以從源組織匯出為 zip 檔案,然後可以匯入到目標組織中。

為了理解這一點,請考慮以下示例場景:

  • 您作為開發人員或自定義人員,已在開發環境中擴充套件或自定義了 CRM。現在您想打包您的更改並將其移動到下一個環境。為此,您可以建立單個解決方案並在更高環境中釋出它們。

  • 您作為第三方 CRM 提供商,已建立了一個 CRM 模組,該模組允許使用外部 Web 服務 API 在 Microsoft Dynamics CRM 實體中管理資料。現在,您想將此模組出售給其他客戶。使用解決方案,您可以打包此模組並將其分發給其他客戶,他們將能夠安裝此解決方案並使用您的模組提供的功能。

解決方案型別

預設系統解決方案

系統解決方案包含在 Microsoft Dynamics CRM 中定義的開箱即用解決方案元件,沒有任何自定義。系統解決方案中的許多元件都是可自定義的,並且可以在託管解決方案或非託管自定義中使用。

在本教程中,我們沒有建立任何解決方案,而是自定義了預設系統解決方案。如果您還記得,我們轉到“設定”→“自定義”→“自定義系統”。此選項直接自定義預設解決方案。

託管解決方案

託管解決方案是已完成並打算分發和安裝的解決方案。託管解決方案可以安裝在系統解決方案或其他託管解決方案的頂部。

重點

  • 如果您從一個組織匯出託管解決方案並將其匯入到另一個組織,則無法在新的組織中編輯該解決方案。

  • 託管解決方案不會直接引用系統解決方案。

  • 解除安裝託管解決方案會解除安裝與該解決方案關聯的所有自定義項。

  • 預設情況下,託管解決方案無法在目標組織中進行自定義。但是,使用託管屬性的概念,您可以定義解決方案元件是否可自定義,如果可以,則定義解決方案匯出為託管解決方案後,元件的哪些特定部分可自定義。

非託管解決方案

非託管解決方案是仍在開發中且不打算分發的解決方案。非託管解決方案包含 CRM 元件的所有非託管自定義項,包括任何新增、修改、刪除或已刪除的元件。預設情況下,任何新解決方案都是非託管解決方案。但是,您可以將非託管解決方案匯出為託管或非託管解決方案。

重點

  • 如果您從一個組織匯出非託管解決方案並將其匯入到另一個組織,則可以在新的組織中編輯該解決方案。

  • 非託管解決方案直接引用系統解決方案。因此,對一個非託管解決方案所做的更改將應用於所有引用相同元件(包括系統解決方案)的其他非託管解決方案。

  • 如果您從非託管解決方案中刪除解決方案元件,則該元件將從系統中永久刪除,並且將不再可用。如果您只想從特定的非託管解決方案中刪除元件,請使用“移除”而不是“刪除”。

  • 解除安裝非託管解決方案不會刪除關聯的自定義項。它只是從系統中刪除了該解決方案,但您所做的更改仍然存在。

解決方案元件

解決方案可用於打包以下元件,這些元件可以使用預設、非託管或託管解決方案進行自定義。

元件型別 元件
架構 實體
屬性
關係
全域性選項集
使用者介面 應用程式功能區
站點地圖
表單
實體功能區
Web 資源
分析 儀表板
報表
視覺化
流程/程式碼 流程
對話方塊
工作流
外掛
程式集
處理步驟
模板 郵件合併
電子郵件
合同
文章
安全 安全形色
欄位級安全配置檔案

建立解決方案

步驟 1 - 導航到“設定”→“解決方案”。單擊“新建”。

Mscrm Create Solution Step 1

步驟 2 - 在隨後出現的視窗中,輸入以下詳細資訊,然後單擊“儲存並關閉”。

顯示名稱 - 示例解決方案(可以是您想要的任何名稱)。

名稱 - 將根據顯示名稱自動設定。但是,您可以更改此設定。

釋出者 - 預設釋出者。解決方案發布者提供一個公共自定義字首和選項值字首。定義解決方案發布者可以控制分發後如何更新您的託管解決方案。但是,對於此示例和大多數一般情況,您可以將其設定為“預設釋出者”。

版本 - 指定一個版本,格式如下:主版本.次版本.內部版本.修訂版本。例如:1.0.0.0。

Mscrm Create Solution Step 2

預設情況下,每個解決方案都作為非託管解決方案新增。新增解決方案後,您可以透過在此解決方案的上下文中建立解決方案元件或透過從其他解決方案新增現有元件來新增解決方案元件。例如,您可以在此新解決方案的上下文中建立新的實體、表單等。

匯出解決方案

一旦您擁有所有要打包為託管或非託管解決方案的更改,您可以按如下方式匯出您的解決方案。

步驟 1 - 開啟源組織並導航到“設定”→“解決方案”。選擇要匯出的解決方案,然後單擊“匯出”按鈕。

Mscrm Export Solution Step 1

步驟 2 - 在“釋出自定義項”視窗中,單擊“釋出所有自定義項”,然後單擊“下一步”。

Mscrm Export Solution Step 2

步驟 3 - 在隨後出現的視窗中,您可以選擇性地選擇任何系統設定(例如自動編號、日曆設定等)與解決方案一起匯出。目前,您可以避免選擇任何選項,然後單擊“下一步”。

Mscrm Export Solution Step 3

步驟 4 - 在“包型別”視窗中,您可以選擇是要將包匯出為託管解決方案還是非託管解決方案。對於此示例,讓我們將其匯出為非託管解決方案。完成後,單擊“下一步”。

Mscrm Export Solution Step 4

步驟 5 - 在下一個視窗中,您可以檢視您正在使用的 CRM 的源版本,並且可以選擇目標版本。單擊“匯出”。

Mscrm Export Solution Step 5

步驟 6 - 單擊“匯出”後,解決方案將匯出為 zip 檔案。將此 zip 檔案儲存在系統上的所需位置。

Mscrm Export Solution Step 6

匯入解決方案

現在,我們將把上一節中匯出的解決方案 zip 檔案匯入到一個新的目標組織。

步驟 1 - 開啟目標組織並導航到“設定”→“解決方案”。單擊“匯入”。

Mscrm import Solution Step 1

步驟 2 - 瀏覽您從匯出步驟下載的 zip 檔案,然後單擊“下一步”。

Mscrm import Solution Step 2

步驟 3 - 從下一個視窗,您可以根據需要檢視解決方案包詳細資訊。單擊“匯入”將啟動解決方案匯入過程。

Mscrm import Solution Step 3

步驟 4 - 匯入過程完成後,將顯示成功或失敗狀態。如果過程成功,請單擊“釋出所有自定義項”。如果解決方案匯入失敗,它將提供詳細的錯誤日誌,說明匯入過程的哪個步驟失敗了。

Mscrm import Solution Step 4

步驟 5 - 我們完成了。解決方案將成功匯入到目標組織。單擊“關閉”。

衝突解決

由於您可以有多個開發人員參與自定義和擴充套件 CRM,因此您將有多個託管和非託管解決方案。匯出和匯入這些解決方案有時會導致衝突場景。例如,假設“解決方案 A”在表單上包含一個欄位,而“解決方案 B”已刪除該欄位,並且“解決方案 C”已重新命名該欄位。在這種情況下,最終更改是什麼?在這樣的衝突場景中,CRM 使用兩種方法。

合併 - 此方法用於使用者介面元件,例如命令欄、功能區和站點地圖。根據此方法,解決方案元件從底部重新計算,並且組織的非託管自定義項是最後應用的。

優先順序最高 - 此方法用於除使用者介面元件之外的所有其他衝突場景。根據此方法,最後一個更改(託管或非託管)優先並被應用。

結論

在本章中,我們介紹瞭解決方案的概念以及不同型別的解決方案及其元件。然後我們學習瞭如何建立、匯出和匯入解決方案。最後,我們研究了兩種衝突解決策略,這些策略發生在我們有多個託管和非託管解決方案影響相同解決方案元件時。

廣告