簡體   English   中英

CRM 2011:對托管解決方案表格的非托管更改

[英]Crm 2011: Unmanaged changes to managed solution form gotcha

如今,我正在學習有關托管解決方案和非托管解決方案的很多知識,並且我肯定會看到在生產中使用托管解決方案有很多好處。

我看到推薦的模式是擁有一個開發環境,在該環境中您可以使用非托管解決方案,導出該解決方案的非托管和托管版本,最后將托管解決方案部署到生產環境(可能首先部署到暫存環境以進行測試)。

這一切都非常好而且干凈,但並非沒有陷阱。 我最近遇到以下情況:

1。

我們使用上述模式為帳戶實體創建和部署托管解決方案,並為客戶安裝該解決方案。 該解決方案除其他外,還包含用於與遺留系統集成的表單和其他一些內容。

草圖:

托管部分


領域A領域B

場C場D

2。

在我不知情的情況下,客戶繼續使用“自定義”菜單自定義帳戶表單。 他所做的就是創建一個新的表單部分,並將托管解決方案中包含的一些自定義字段從原始部分移到新部分。

草圖:

非托管部分


領域A領域B

托管部分


場C場D

3。

由於這是一個非托管更改,因此它比我的托管更改具有更高的優先級,在我進行了其他更改(刪除其他字段並更改窗體上某些字段的順序)之后,對表單布局造成了嚴重破壞

解決嘗試:

我當然嘗試過使用“覆蓋自定義”選項重新安裝該解決方案,該選項承諾將非托管自定義覆蓋到實體,但不會改變任何內容。

我還嘗試了刪除新部分和作為非托管自定義項移動的字段(使用定制菜單),然后重新安裝托管解決方案,希望這將以某種方式“撤消”非托管更改,並且差異機制將檢測到有問題的字段僅出現在托管解決方案中,這將導致它們出現在原始位置。 但是事實證明,似乎我只是在用石頭雕刻更多的變化-這次告訴系統將字段完全從表單中刪除。

真的可以這樣嗎,一旦您對表單進行非托管更改,托管表單就被搞砸了?

沒有辦法強制托管表單再次獲得優先權嗎?

我當然可以對表單進行更多非托管的自定義,以將字段放回原來的位置,但這只會將問題推遲到下一次我想更改托管表單中字段的順序時,例如-上次仍然有優先權。

看來,我唯一的選擇要么是重新開始,要么切換到帳戶實體的不受管機制。

得到教訓:

如果這看起來很糟糕,我可能應該使用托管屬性來禁止對托管解決方案中的表單進行自定義。 如果這是一個自定義實體,我會這樣做,但是我認為這對於諸如帳戶實體之類的實體會有些嚴格。 吸取的另一個教訓可能是永遠不要授予客戶sysadmin / customizer權限...

會喜歡其他一些想法和經驗。

我知道我在這里參加聚會遲到了,但是對於它的價值以及對於本帖子中遇到的任何人,我將加我的兩美分。 我們擁有與@TMan幾乎完全相同的設置,除了我們有一個Dev,QA和生產站點之外,該站點不受Dev的管理,我們的自定義源以及QA和生產均得到管理。 與解決方案和自定義分層過程相比,我花費了比我想要的時間更多的時間,以了解如何將所有東西結合在一起以獲得最終結果。 我還添加了第三方托管解決方案。 看到所有這些的最終結果,我得出的結論是,除了第三方解決方案提供商之外,托管解決方案絕對不是走的路,但是目標系統恕我直言應該全部使用非托管更改進行定制。 我發現的一個主要問題是,當我將第三方托管解決方案引入我們的開發環境時,一旦我們導出自己的自定義內容作為托管解決方案以部署到質量保證和生產中,我們將對該解決方案中的組件產生依賴性。 有趣的是,一旦您進入質量檢查或生產托管站點,開發站點上的分層和依賴關系將以相反的順序翻轉,因為您自己的自定義項從非托管變為托管,並且托管定制項按安裝順序應用系統中的日期。 在此無需贅述,摘要是,一旦將這些依賴項引入了這些托管環境之一,這些依賴就永遠不會消失,除非您要丟失數據,否則您將無法卸載自己的自定義項,在某些情況下,您可能無法卸載解決方案,即使由於依賴關系而導致數據丟失也可以。 我們所有的環境都是CRM Online,因此我們沒有選擇直接在數據庫中隨意處理來擺脫不需要的內容。 這里的關鍵是要知道,在大多數情況下,一旦將托管解決方案永久地就位,並且只能在其之上應用其他非托管更改,則將無法清理未使用或不需要的更改組件。 我花了很多時間進行自己的研究和測試,還花了很多時間與Microsoft通話。

底線:針對多站點設置的托管解決方案(例如,開發質量保證和/或生產的方法)是非常糟糕的方法,您失去了靈活性,在某些情況下可能會碰壁。 您最好保持所有內容不受管理,並具有可以正確自定義系統的靈活性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM