自訂概念

 

發行︰ 2017年2月

適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

組織運作方式是唯一的。 某些組織有使用 Microsoft Dynamics 365 時適用、明確定義的商務程序。 其他組織對其目前的商務程序不滿足,而使用 Dynamics 365 將新的資料和程序套用至其企業。 不論您的處境,您可在 Dynamics 365 中找到許多自訂功能,以符合您的組織運作。

想必您已迫不及待要開始使用,但還是請花幾分鐘的時間閱讀本節的內容。 這將介紹重要詞彙,提供背景知識讓您了解為何以特定方式執行某項作業,並協助您在未來避免潛在的問題。

本主題內容

什麼是中繼資料,以及為何要小心使用?

支援何種自訂?

不支援何種自訂?

解決方案重要須知

發行自訂

準備用戶端自訂以改善行動和互動式服務中心的效能

影響 Dynamics 365 組織效能的變更

結合自訂功能

本指南中未包含的其他功能

什麼是中繼資料,以及為何要小心使用?

在過去,您可以編輯原始程式碼來自訂商務應用程式。 這會增加複雜度,因為每個組織的變更都是獨特的,而升級是非常困難的事,或是非常耗費資源。 然後,應用程式開發人員開始公開應用程式設計介面 (API),讓其他開發人員可以與應用程式互動,並加入自己的邏輯,而不影響原始程式碼。 情況稍有改善,因為這表示開發人員不變更應用程式即可加以擴充。 但仍需要開發人員撰寫程式碼。

時至今日,現代化商務應用程式使用的是中繼資料導向結構,使用者可以自訂應用程式,而不需要撰寫程式碼。 中繼資料的意義是「關於資料的資料」,定義著系統所儲存之資料的結構。 透過這樣的中繼資料,應用程式就知道資料結構發生的任何變更,因此讓應用程式順應資料結構變更進行調整。 既然知道了中繼資料,就可以加入其他繫結至中繼資料的功能。

使用應用程式中的自訂工具自訂 Microsoft Dynamics 365 時,您要加入或更新中繼資料或者依存於中繼資料之功能所使用的資料。 由於我們知道用來自訂系統的資料種類,因此可以將此資料納入考量並將新功能加入至 Dynamics 365,而不會中斷您的系統。 如此一來,您就永遠可以套用更新彙總套件或升級至最新版本,享用最佳的新功能。

自訂還是設定?
大多數人都說他們想要自訂應用程式,因此我們使用「自訂」一詞描述變更系統使之按照您想要的方式運作。 有些人比較喜歡「設定」這個字,因為這意味著進行變更並不需要任何程式碼。 您怎麼稱呼它都好,我們只是要清楚表達,您不需要是開發人員,就能自訂 Microsoft Dynamics 365。

Microsoft Dynamics 365 提供一組可讓開發人員撰寫程式碼的 Web 服務和 API。 使用支援的方法撰寫程式碼時,您可以預期它在您升級組織時仍會繼續運作。

支援何種自訂?

我們希望您可以使用應用程式中的工具來執行大部分的自訂。 您使用這些工具執行的所有自訂都是由 Microsoft 支援的,因為這些自訂會將變更套用至中繼資料或者依存於中繼資料的資料。

不過,如果自訂工具不符合需求,您可以安裝協力廠商提供的解決方案,或聘雇開發人員來撰寫自訂程式碼。 無論使用哪種方式,都能幫助您了解支援的自訂。 如果您需要投資在必須使用程式碼的解決方案,應確定程式碼只使用支援的 API 來撰寫。 這有助於保護您在 Dynamics 365 與您所取得任何解決方案上的投資。

擴充 Microsoft Dynamics 365 的開發人員有責任遵循 SDK 記載的規則和最佳作法:MSDN:使用 Microsoft Dynamics 365 開發的最佳作法。 SDK 記錄可供開發人員使用的 API,並提供有關其最佳使用方式的指引。Microsoft 僅支援 SDK 文件記載的 API 和作法。 您可能會在網際網路上尋找一些說明如何解決問題的方法,如果這些方法沒有使用 SDK 中記載的 API,就是 Microsoft 不支援的方法。 讓開發人員套用變更之前,您應確認其是否使用支援的方法。

如果開發人員使用 SDK 中描述的 API 和最佳作法,我們就可以有把握測試我們對 Dynamics 365 進行的任何變更是否可能會破壞現有的自訂。 我們的目標是,使用支援的方法所撰寫的程式碼自訂,仍會在發行 Dynamics 365 新版本或更新時繼續運作。 您將獲益良多,因為您可以升級至提供改進功能的新版本,而不需要每次都讓開發人員變更其程式碼。

如果我們偵測到新版 Dynamics 365 中的變更會導致支援的自訂中斷,我們將會在文件上記載受影響的部分,以及使用者如何變更其程式碼進行修正。

不支援何種自訂?

只是因為某些 API 和程式設計實務不是由 Microsoft 支援,並不表示它們無法運作。 「Microsoft 不支援的」即如字面所表示:您無法從 Microsoft 取得有關這些 API 或程式設計實務的支援。 我們不會加以測試,也不知道我們所做的某些變更是否會中斷它們。 如果有人變更我們應用程式中的程式碼,我們無法預料會發生什麼情況。

使用不支援的 API 和程式設計實務的開發人員應承擔支援其程式碼的責任。 他們必須測試其程式碼以確定其正常運作。

如果您選擇在 Dynamics 365 部署中使用不支援的自訂,則在您連絡 Microsoft Dynamics 365 技術支援之前,請務必在文件中記錄做過的事項,並制定移除這些自訂的策略。 如果您需要處理不支援之自訂的協助,請與準備自訂的開發人員或組織聯繫。

不支援的常見自訂作法

以下是不支援的常見自訂作法清單。 這不是完整的清單。其他資訊:MSDN:支援的 Microsoft Dynamics 365 擴充功能:不支援的自訂

  • 使用 JavaScript 與 Web 應用程式文件物件模型 (DOM) 項目進行互動
    在應用程式中任何部分使用的任何 JavaScript 程式庫都必須只與文件有記載的 API 互動。 當 JavaScript 開發人員使用應用程式時,他們經常使用特定名稱存取 DOM 項目。 由於 Microsoft Dynamics 365 是 Web 應用程式,這些技術很適用,但是他們參考的項目名稱隨時都可能變更,因此可能會在更新期間造成中斷。 我們保留在應用程式中進行任何必要變更的權利,而且這通常表示變更網頁的建構方式。 加入任何取決於頁面目前結構的變更,即表示您必須投資於測試,或許要在每次套用更新至應用程式時,變更這些指令碼中的自訂程式碼。

    jQuery 是 JavaScript 開發人員使用的常見程式庫。 使用 jQuery 的大部分好處是能夠簡化開發人員存取和建立 DOM 元素的能力,但這正是我們在 Dynamics 365 應用程式頁面中不支援的部分。 當開發人員建立具有 HTML Web 資源的自訂使用者介面時,建議使用 jQuery,但是在 Dynamics 365 應用程式頁面中,不需要 jQuery 也能使用支援的 API。

  • 透過 JavaScript 使用任何未記載的內部物件或方法
    Microsoft Dynamics 365 會在頁面中使用許多 JavaScript 物件。JavaScript 開發人員可以藉由偵錯頁面尋找這些物件,然後存取並重複使用這些物件。 我們保留對這些物件進行任何必要變更的權利,包括將其移除或變更方法的名稱。 如果指令碼參考這些物件,指令碼若找不到它們,就會中斷。

  • 直接在應用程式中變更檔案
    如果您有 Microsoft Dynamics 365 內部部署,您可以存取安裝在伺服器上的 Web 應用程式。 Web 應用程式包含許多文字檔,開發人員可加以編輯或取代來變更應用程式的行為或外觀。 變更這些檔案是不支援的,因為您安裝的任何更新都可能會移除您的變更,而且當您更新至下一個版本時,也會覆寫檔案。

  • 直接從資料庫資料表擷取資料
    如果您有 Microsoft Dynamics 365 內部部署,您可以存取資料庫的,以便直接從資料表擷取資料。 不過,這麼做就會略過安全性基礎結構。 建議的作法是使用特殊篩選的檢視表來擷取資料。 這會套用呼叫使用者的安全性,讓他們只能看到他們應該看到的資料。

  • 直接在資料庫資料表中更新資料
    如果您有 Microsoft Dynamics 365 內部部署,您可以直接在資料庫資料表中執行 Dynamics 365 資料的更新。 這種方法存在的風險是您可以設定可能中斷應用程式的無效資料。 開發人員應該永遠使用應用程式平台 Web 服務隨附的 API 來更新資料。

  • 變更資料庫資料表、預存程序或檢視表
    如果您有 Microsoft Dynamics 365 內部部署,您可以使用資料庫工具來變更資料庫。 唯一支援的直接資料庫變更是新增或更新索引。 您應該使用自訂工具來加入任何新的實體或實體屬性。 這是唯一支援的方式,將變更套用至資料庫的這些部分。 您所做的任何直接變更都會有中斷應用程式或您套用更新彙總套件能力的風險。 您所做的任何變更都可能會在套用更新時或升級期間終結,而自訂資料庫資料表可能包含的任何資料也都會遺失。

如何檢查組織中不支援的自訂

如果您不確定組織中是否有不支援的自訂,可以執行「自訂程式碼驗證工具」。 此工具是一種解決方案,會掃描組織並且偵測可能存在的特定類型不支援自訂,例如已被取代的 API,然後傳回有關自訂的資訊。 請注意,「自訂程式碼驗證工具」可能無法偵測先前在不支援的常見自訂作法中所述的其他不支援自訂,或是在某些情況下,可能會將支援的自訂偵測為不支援。 如需詳細資訊,請參閱工具隨附的文件。

下載並執行自訂程式碼驗證工具

  1. 首先,請確認組織已匯入一個或多個解決方案。 過時的解決方案是不支援自訂最常見的原因。移至 [設定] > [解決方案]。 。 安裝的解決方案將出現在 [所有解決方案] 檢視中。

  2. 下載自訂程式碼驗證工具

  3. 匯入自訂程式碼驗證工具。其他資訊:匯入解決方案

  4. 執行自訂程式碼驗證工具。 如需詳細資訊,請參閱下載中隨附的讀我檔案。

解決方案重要須知

解決方案的存在,是為了讓組織可以銷售、分享或傳輸一組自訂給另一個組織。 您可以從 Microsoft Dynamics 服務商場或獨立軟體廠商 (ISV) 取得解決方案。Dynamics 365 解決方案是您可以匯入並套用一組自訂的檔案。

其他資訊:白皮書:適用於解決方案建造商的模式與原則

注意

如果您是建立要發佈之自訂的 ISV,您將需要使用解決方案。 如需使用解決方案的詳細資訊,請參閱 MSDN:封裝和發佈擴充功能

如果您只是對自訂您的組織有興趣,這裡有您需要知道解決方案的相關內容:

  • 建立解決方案是選擇性的。 您可以直接自訂 Dynamics 365 系統,而不需要建立解決方案。

  • 當您直接自訂 Dynamics 365 系統時,您會使用名為「預設解決方案」的特殊解決方案。 此解決方案包含系統中的所有元件。

  • 您可以匯出預設解決方案來建立您在組織中已定義之自訂的備份。 對最糟情況有所準備是好事。

解決方案元件

解決方案元件表示您可能可以自訂的項目。 可以包含在解決方案中的任何項目即是解決方案元件。 以下是您可以在解決方案中檢視的解決方案元件清單:

  • 應用程式功能區

  • 文章範本

  • 商務規則

  • 圖表

  • 關係角色

  • 合約範本

  • 儀表板

  • 電子郵件範本

  • 實體

  • 實體關聯

  • 欄位

  • 欄位安全性設定檔

  • 表單

  • 合併列印範本

  • 訊息

  • 選項組

  • 外掛程式組件

  • 程序

  • SDK 訊息處理步驟

  • 資訊安全角色

  • 服務端點

  • 網站地圖

  • Web 資源

大部分解決方案元件會巢狀置於其他解決方案元件中。 例如,實體包含表單、檢視表、圖表、欄位、實體關聯、訊息和商務規則。 每個這些解決方案元件都必須實體存在。 欄位不可以出現在實體外面。 也就是,欄位依存於實體。 解決方案元件類型的數目實際上有上述清單所示的兩倍之多,但是大部分的類型在應用程式中看不到。

使用解決方案元件的目的是追蹤使用受管理的屬性和所有解決方案相依性所能進行之自訂的限制,以便匯出、匯入和 (在受管理的解決方案中) 刪除,而不留下任何項目。

受管理和未受管理的解決方案

受管理的解決方案可以在匯入後解除安裝。 解除安裝解決方案就會移除該解決方案的所有元件。

當您匯入未受管理的解決方案時,可以將該解決方案的所有元件加入至預設解決方案。 您無法透過解除安裝解決方案移除元件。

當您匯入包含已自訂之解決方案元件的未受管理的解決方案時,未受管理的解決方案中的自訂將會覆寫您的自訂。 您無法復原這項作業。

重要

只有在您要將所有元件加入至預設解決方案,並覆寫任何現有自訂時,才能安裝未受管理的解決方案。

即使您不打算發佈您的解決方案,您仍然可以建立和使用未受管理的解決方案,來產生只包含您要在應用程式中自訂之部分的不同檢視表。 當您進行某些自訂時,請直接將其加入至您建立的未受管理的解決方案。

您只能將您的預設解決方案匯出為未受管理的解決方案。

若要建立受管理的解決方案,您可以在匯出解決方案時選擇受管理的解決方案選項。 如果您建立受管理的解決方案,就無法將其匯入至您用來建立它的同一個組織。 您只能將它匯入至不同的組織。

如何套用解決方案

所有的解決方案都會評估為介層,以判斷 Dynamics 365 應用程式實際上會執行什麼作業。 下圖顯示受管理和未受管理的解決方案如何進行評估,以及其中的變更如何將顯示在組織中。

解決方案層級

從底部開始向上進行:

  • 系統解決方案
    系統方案與每個組織都有的受管理的解決方案類似。 系統解決方案是系統中所有立即可用的元件的定義。

  • 受管理的解決方案
    受管理的解決方案可以修改系統解決方案元件並加入新元件。 如果安裝多個受管理的解決方案,安裝的第一個是在稍後安裝的受管理的解決方案下面。 這表示安裝的第二個解決方案可以自訂在它之前安裝的解決方案。 當兩個受管理的解決方案有衝突的定義時,一般規則是「最後一個獲勝」。 如果您解除安裝受管理的解決方案,在其下方的受管理的解決方案會生效。 如果您解除安裝所有受管理的解決方案,則會套用系統解決方案中定義的預設行為。

  • 未受管理的自訂
    未受管理的自訂是透過未受管理的解決方案對組織進行的任何變更。 系統解決方案會使用受管理的屬性,定義您可以或不可進行的自訂。 受管理的解決方案的發行者有相同能力,可以限制您自訂發行者在其方案中加入之解決方案元件的能力。 您可以自訂沒有會防止您進行自訂之受管理屬性的任何解決方案元件。

  • 應用程式行為
    這就是您實際在組織中看到的。 預設系統解決方案加上任何受管理的解決方案,以及已套用的任何未受管理的自訂。

受管理的屬性

Microsoft Dynamics 365 的某些部分無法自訂。 系統解決方案中的這些項目具有防止您進行自訂的中繼資料。 這些項目稱為未受管理的屬性。 受管理的解決方案的發行者也可以設定受管理的屬性,防止您以發行者不希望您使用的方式自訂其解決方案。

解決方案相依性

由於受管理的解決方案層疊的方式,某些受管理的解決方案可能依賴於其他受管理的解決方案中的解決方案元件。 某些解決方案發行者將會利用此方式建置模組化解決方案。 您可能必須先安裝「基底」受管理的解決方案,然後才能安裝第二個受管理的解決方案,這會進一步自訂基底受管理的解決方案中的元件。 第二個受管理的解決方案依存於屬於第一個解決方案之一部分的解決方案元件。

Dynamics 365 會追蹤解決方案之間的這些相依性。 如果您嘗試安裝需要基底解決方案的解決方案,但是該基底解決方案未安裝,則無法安裝解決方案。 您將會收到訊息說明解決方案需要先安裝其他解決方案。 同樣地,因為相依性,當解決方案依存的基底解決方案仍然已安裝時,您無法解除安裝基底解決方案。 您必須先解除安裝相依的解決方案,才能解除安裝基底解決方案。

解決方案發行者

每個解決方案都有發行者。 預設解決方案會有名為「<您的組織名稱> 的預設發行者」的發行者。

發行者記錄包含首碼值。 這個首碼的預設值為 "new"。 當您建立新的解決方案元件時,這個首碼會附加至名稱。 這是可讓人了解來決定元件是什麼解決方案的一部分的快速方法。

在您開始自訂系統之前,建議您將預設發行者的首碼值變更為可識別您的公司的值。

若要變更預設發行者的解決方案發行者首碼

  1. 移至 [設定] > [自訂]。

  2. 選取 [發行者]。

  3. 如果有多個發行者,請開啟 [顯示名稱] 以 <您的組織名稱> 的 [預設發行者] 開頭的發行者。

  4. 在更新表單底部,更新 [首碼] 欄位以將預設值 "new" 變更為可識別您的組織的值。

  5. 當您變更值時,請務必使用 Tab 鍵移至下一個欄位。 [選項值首碼] 將會根據自訂首碼自動產生數字。 這個數字是在您將選項新增至選項組時使用的,並提供表示哪一個解決方案用來新增選項的指標。

發行自訂

對使用者介面進行變更的某些自訂需要在可於應用程式中供使用之前發行這些自訂。 發行提供可讓您在完成返回並在稍後的時間完成之前儲存工作的方式。 只有在您變更解決方案元件時,才需要發行。 當建立或刪除解決方案元件時,發行會自動進行。 在您匯出方案之前,將會提示您發行自訂。 這是因為任何未發行的自訂將不會包括在解決方案中。

當您執行將會出現在 平板電腦專用 Microsoft Dynamics 365 中的自訂時,您必須明確發行自訂,以確定每個項目會與 平板電腦用 Dynamics 365 應用程式同步處理。

注意

發行自訂可能會妨礙正常系統作業。 在生產環境中,建議您將發行自訂排定在最不會干擾使用者的時候。

下列解決方案元件需要在其進行更新時發行:

  • 應用程式功能區

  • 實體

  • 實體關聯

  • 欄位

  • 表單​​

  • 訊息

  • 選項組

  • 網站地圖

  • Web 資源​​

注意

使用 Dynamics 365 for Outlook 應用程式 時,自訂變更可能需要至少一小時才會生效。 您可以藉由清除快取,讓變更立即顯示在 Internet Explorer 中。 若要這麼做,請移至 [工作] > [網際網路選項],並在 [瀏覽歷程記錄 ] 下選取 [刪除] 按鈕。 取消選取除了 [網際網路暫存檔與網站檔案] 和 [Cookie 與網站資料] 以外的所有瀏覽歷程記錄,然後選取 [刪除]。

準備用戶端自訂以改善行動和互動式服務中心的效能

在您發行自訂後,第一位啟動其中一個 Dynamics 365 行動應用程式或互動式服務中心的使用者可能會遇到效能問題,因為他們的登入會提示 Dynamics 365 準備中繼資料套件供下載。 這表示,第一位使用者必須等待中繼資料套件準備及下載 (後續使用者只需等待下載)。

而在 Dynamics CRM 2016 Update 0.1 或更新版本中,您可以改善第一位使用者的效能,藉由在發佈自訂之後按一下 [準備用戶端自訂] 按鈕。 這樣就會提示 Dynamics 365 立即開始準備中繼資料套件,而不是等到第一位使用者啟動行動應用程式或互動式服務中心時。

準備用戶端自訂按鈕

Microsoft Dynamics CRM 2016 更新 1.1 帶來了進一步的改進功能,可在您自訂系統後,縮短行動使用者產生中繼資料的時間。 自訂後產生的中繼資料套件僅包含已變更的項目,而不是整組中繼資料。 此外,如果下載中繼資料套件至行動裝置時發生問題,便不再需要重頭開始,使用者下次啟動應用程式時,下載會從上次的位置繼續進行。

影響 Dynamics 365 組織效能的變更

匯入解決方案及套用變更中繼資料的自訂可能會影響 Microsoft Dynamics 365 組織效能。 可能會妨礙正常系統作業的動作包括:

如果您要將這些變更套用至生產系統,建議您將這些作業排程在對使用者干擾最小的時間進行。

結合自訂功能

<自訂 Dynamics 365 系統>一節中的每一個主題將深入描述個別自訂功能。 但是,請務必記住,為符合您的商務需求,解決方案經常搭配使用其中一個功能與一個或多個其他功能。

選取適合工作的自訂功能

工具法則表示:「如果您唯一的工具是一把榔頭,您看什麼都像釘子」。 有了 Microsoft Dynamics 365 中各種不同的自訂功能,很容易變得太熟悉其中一個自訂功能,而要將它用來解決每個問題。 當您評估要解決的商務問題時,請思考要達成的最終結果,然後回溯思考如何達成目的。

本指南中未包含的其他功能

除了<自訂 Dynamics 365 系統>中說明的功能,您應該熟悉這裡未包含的其他功能。 本節介紹某些功能,並包含提供更多資訊的其他資源連結。

文件管理

文件管理允許 Microsoft Dynamics 365 和 SharePoint 之間的整合。 如需如何啟用及設定文件管理的資訊,請參閱使用 SharePoint 管理文件說明及訓練:從 Microsoft Dynamics 365 內管理 SharePoint 文件。 開發人員應參閱 Microsoft Dynamics 365 SDK 主題:MSDN:整合 SharePoint 與 Microsoft Dynamics 365。 如需 Dynamics 365 內部部署的安裝需求的詳細資訊,請參閱 Microsoft Dynamics 365 的 SharePoint 文件管理軟體需求

欄位安全性設定檔

您可以使用欄位安全性設定檔,為加入至表單的自訂欄位來設定額外的安全性層級。 若要啟用欄位層級安全性,必須設定自訂欄位的 [欄位安全性] 屬性,然後在您所建立的所有欄位安全性設定檔中指定您要允許這個欄位的權限。其他資訊:說明及訓練:建立及設定欄位安全性設定檔將團隊或使用者新增至欄位安全性設定檔

當地語系化

如果您的組織人員有使用基礎語言 (當您部署 Dynamics 365 時選取的語言) 以外的語言,您可以加入其他語言。

對於 Dynamics 365 (線上),您會發現所有語言已經安裝,您只需要啟用它們。

對於 Dynamics 365 (內部部署),您可以安裝其他語言套件,加入更多語言。 在您安裝語言套件之後,必須啟用語言,提供人員在個人喜好設定中選擇。其他資訊:安裝或升級語言套件

注意

啟用語言可能需要幾分鐘的時間。 在這段時間內,人們可能無法使用 Microsoft Dynamics 365。

啟用其他語言

  1. 移至 [設定] > [管理]。

  2. 選擇 [語言]。

  3. 在 [語言設定] 對話方塊中,選取任何可用語言並選擇 [套用] 啟用它們。

雖然您可以啟用其他語言,只有 Dynamics 365 在自訂前包含的文字才提供當地語系化的文字。 您只能使用基礎語言自訂 Dynamics 365。 其他語言的使用者會看到基礎語言的文字,除非您匯出翻譯,並為您加入或變更的所有使用者介面項目加入當地語系化文字。其他資訊:說明及訓練:匯出自訂實體和欄位文字以供翻譯

注意

因為只有基礎語言才支援自訂,身為系統自訂員,您可能會將基礎語言設定為您的語言喜好設定。 若要確認顯示翻譯的文字,您必須變更 Microsoft Dynamics 365 使用者介面的語言喜好設定。 若要執行其他自訂工作,您必須變更回基礎語言。

資訊安全角色

為您的組織實作安全性的討論超出本指南的範圍。其他資訊:資訊安全角色和權限

另請參閱

開始使用自訂
自訂所需的權限
為您的自訂使用解決方案

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權