開發人員:Dynamics 365 (線上) 適用的下一版更新中 Customer Engagement 的新推出功能

[本主題是發行前版本文件,並可能在未來變更。]

開發人員將能使用下一版更新中的下列 Customer Engagement 新功能。

在 Dynamics 365 中,先前的 Dynamics CRM 功能為智慧型商務應用程式套件的一部分。 組成套件中客戶關係管理 (CRM) 這個部分的應用程式統稱為 "Customer Engagement",包括 Sales、Customer Service、Field Service、Project Service Automation 及其相關服務。

整合外部資料與虛擬實體

您有新方式可以整合外部系統的資料。 若不使用虛擬實體,一般整合外部資料的策略包括使用用戶端程式碼擷取和顯示外部資料,或是在 Dynamics 365 Customer Engagement 內進行伺服器端複寫或同步處理外部資料。 虛擬實體提供了更佳的方式,可因應許多外部系統資料整合需求。

Web API 改進功能

此 Web API 版本 (也就是我們的 OData v4 端點) 包含以下改進功能:

  • 提供自訂動作,可傳回 EntityReferenceEntityEntityCollection 類型。

  • 使用服務的最新版 v9.0 會提供 API 行為的變更,v8.x 版則會沿用舊版行為。 升級時不需要變更您的程式碼。

  • 新訊息:GrantAccessModifyAccessRetrieveSharedPrincipalsAndAccess 訊息現在可透過使用 Web API 提供。

  • 我們已透過預設不包含註解的方式,將服務的中繼資料量縮小。 如果您需要註解,可以使用參數加入註解。

用戶端 API 增強功能

在 Dynamics 365 (線上) 適用的 2017 年 7 月更新 版本中引進 整合介面之後,用戶端 API 也有一些重大的改變,確保在整合介面與網頁用戶端之間運作一致。

執行內容和全域內容

表單上同時可以有多個使用中的執行內容。 例如,包含快速表單和可編輯網格的表單會有用於表單上所顯示實體的內容、用於快速表單的其他內容、用於可編輯網格的網格內容,以及用於可編輯網格中每一列的實體內容。 Xrm.Page 是主要表單內容。 如果指令碼是在次要內容 (網格列、快速表單、相關實體) 上執行,則 Xrm.Page 不會是正確的表單內容。

表單上的執行內容會自動傳遞至表單事件和事件處理常式。 因此,現在您應使用 executionContext.getFormContext 方法取得表單內容執行個體,然後用它來執行用戶端 API 方法,而不要使用靜態 Xrm.Page 物件取得表單內容,如此就可以在不同內容上使用相同的指令碼。

另外,此版本中已取代用來參考用戶端內容的 Xrm.Page.context;您現在應使用新的 Xrm.Utility.getGlobalContext 方法取得全域內容,而不要瀏覽整個表單內容。 新方法包含所有方法的對等用法,可供 Xrm.Page.context 物件用來擷取組織或使用者專屬的資訊。

新的用戶端 API

我們在此版本中引進了一些新的用戶端 API。

以下是此版本中新命名空間的清單,當中包含移動到這些命名空間底下的新方法和一些原有方法,增強了物件模型設計。

新命名空間 描述
Xrm.Device 包含一些方法,可使用行動裝置的裝置功能。
Xrm.Encode 包含將屬性和 XML 編碼套用至字串的相關方法。
Xrm.Navigation 包含用於多頁對話方塊和工作流程的新方法,以及一些移自 Xrm.Utility 命名空間的現有方法。
Xrm.UI 包含顯示和隱藏應用程式層級全域通知的方法。
Xrm.WebApi 包含在記錄上執行 CRUD 作業的方法;在線上和離線模式之間自動切換。
Xrm.WebApi.offline 包含在離線模式下工作同時執行 CRUD 作業的方法。
Xrm.WebApi.online 包含在線上模式下工作同時執行 CRUD、Execute 和 ExecuteMultiple 作業的方法。

以下是在現有命名空間中引入的新 API:

命名空間 新的 API
表單 executionContext getUrl
Xrm.Page.data OnLoad 事件和事件處理常式 (addOnLoad 和 removeOnLoad)
isValid
Xrm.Page.data.save(saveOptions) 方法中的 saveOptions 已更新,包含稱為 SaveMode 的新值可讓 onSave 事件處理常式得知 save 發生的原因
屬性集合
Xrm.Page.data.entity relatedEntities 集合
getEntityReference
isValid
save 方法已更新,可將 saveOptions 做為參數傳送
Xrm.Page.data.entity 屬性 isValid
setPrecision
Xrm.Page.ui 三個新的 API 僅適用於多頁對話方塊和工作型流程:getDefaultNextPageName、movePrevious 和 moveTo。
setFormEntityName
OnLoad 事件和事件處理常式 (addOnLoad 和 removeOnLoad)
Xrm.Utility getAllowedStatusTransitions
getEntityMetadata
getGlobalContext
getLearningPathAttributeName
getResourceString
invokeProcessAction
lookupObjects
showHierarchyPage
showProgressIndicator
closeProgressIndicator
refreshParentGrid

除了這些新的用戶端 API 之外,另外還引入了一些適用於特定控制項的用戶端 API,例如網格、查詢、選項組及計時器。 如需有關這些新 API 的詳細資訊,請參閱控制項專屬的頁面。

已取代的用戶端 API

我們已取代部分用戶端 API,您應使用新的/改良的用戶端 API,而不要使用此清單中所述的 API:部分用戶端 API 已取代

附註:取代是指我們要從未來的任何主要 Dynamics 365 版本中移除用戶端 API。 用戶端 API 將持續運作並完整支援,直到正式移除為止。 移除後,該功能將無法運作。 我們現在通知您,讓您在功能移除之前有足夠的時間規劃和更新您的程式碼。

用戶端 API 支援整合介面中新的時間表控制項

新的時間表控制項會以整合檢視呈現文章、活動及附註。 時間表控制項支援下列用戶端 API:

  • getControlType:傳回 “timelinewall”

  • getName

  • getParent

  • getLabel 和 setLabel

  • getVisible 和 setVisible

  • setFocus:將焦點設定在控制項中的 [新增] 按鈕上。

  • refresh:重新整理時間表留言版。

如需這些用戶端 API 的相關資訊,請參閱 Xrm.Page.ui 控制項 (用戶端參考)

建立和管理角色型目的式商務應用程式

Dynamics 365 中的商務應用程式是角色型的模組化應用程式,會以您業務所屬的特定領域為目標提供工作型功能,例如銷售、服務和行銷。 這些商務應用程式為使用者提供簡單且直覺的體驗,讓使用者能夠快速瀏覽、輕鬆找到內容,並且有效率地執行工作。

除了使用應用程式設計師之外,現在您還可以利用程式設計的方式建立、管理、驗證及發行商務應用程式。 建立應用程式的同時,您還可以選取應用程式將用於網頁用戶端或整合介面

使用:

  • AppModule 實體建立、管理及驗證應用程式

  • AppModuleComponent 實體建立和管理應用程式中的元件,例如表單、儀表板、檢視表、圖表和商務程序。

  • AppModuleRoles 實體建立和解除資訊安全角色的關聯,藉此定義使用者對應用程式的存取權。

另外,現在您還可以在全域內容 (Xrm.Utility.getGlobalContext) 中找到下列與應用程式相關的新用戶端 API,讓您能夠擷取與目前應用程式相關的資訊:

  • getCurrentAppUrl:取得目前應用程式的 URL。

  • getCurrentAppName:取得目前應用程式的名稱。

  • getCurrentAppProperties:取得目前應用程式的屬性,例如 appId、displayName、uniqueName、url、webResourceId 和 welcomePageId。

使用應用程式設定公開應用程式專屬的設定和控制應用程式自訂範圍

商務應用程式可透過在執行階段僅顯示應用程式專屬元件的方式來簡化使用者的體驗。 不過,身為應用程式開發人員,您無法限制商務應用程式中元件的自訂範圍。 此外,您無法只公開商務應用程式的應用程式專屬設定,而且無論系統管理員管理的商務應用程式為何,都能夠存取 Dynamics 365 Customer Engagement 中的所有設定。

引入商務應用程式的應用程式設定功能,可讓您以商務應用程式建立者的身分執行下列工作:

  • 僅公開與商務應用程式相關的設定,以便在執行階段為系統管理員提供簡化的設定體驗。 使用新的 NavigationSetting 實體為商務應用程式設定自訂的設定體驗。

  • 控制商務應用程式中元件的自訂範圍。

    • 使用新的 AppConfigInstance 實體定義應用程式設定主要清單中的單一屬性或屬性清單,可針對 Dynamics 365 中的任何應用程式自訂。

    • 使用新的 AppConfig 實體指定應用程式設定執行個體和應用程式之間的對應,負責定義可針對應用程式自訂的屬性。

新屬性類型:多重選取選項組

自訂員現在可以定義允許選取多個選項的新屬性類型。 此工作中包括新的查詢條件運算子,用來撰寫查詢,可根據選取的選項擷取資料。

表單指令碼支援多重選取選項組

多重選取選項組可用於整合介面和網頁用戶端。 多重選取選項組可用於下列表單類型:主要、快速建立及快速檢視。 舊版表單不支援多重選取選項組。

多重選取選項組可支援選項組屬性控制項能夠支援的所有用戶端 API;唯一的差異在於,某些方法的傳回值會是陣列,而不是單一值。

您也可以在用來開啟表單的 URL 中為選項指定整數值,藉此為新記錄設定多重選取選項組欄位的值。

建立自訂控制項

建立控制項的功能將做為預覽功能發行。 Custom Control Framework (CCF) 提供擴充性架構,可用於建立 UI 元件將應用程式中的資料視覺化並與其互動。 使用 CCF 就能定義 UI 元件,這些是中繼資料導向、可設定且可重複使用的解決方案元件。 您將能夠為個別欄位、網格及子格定義控制項。

WebHook 整合

您可將 Dynamics 365 Customer Engagement 的資料整合到您託管於使用 WebHook 的外部服務上的自訂程式碼。 您可以使用外掛程式註冊工具設定何時將 Customer Engagement 資料張貼至外部服務。 WebHook 是透過發行/訂閱模型連接 Web API 與服務的輕量型 HTTP 模式。 WebHook 寄件者會透過對收件者的端點提出事件相關資訊的要求,對收件者發出事件通知。 使用 WebHook 模型可透過驗證標題或查詢參數索引鍵的方式保障端點的安全。 這可為您目前用於 Azure 服務匯流排整合的 SAS 驗證模型提供替代方式。

向量影像 Web 資源

針對應用程式中顯示的任何圖示使用向量影像。 向量影像的定義為可縮放向量圖形 (SVG),這是 XML 為基礎的向量影像格式。 利用向量影像而不使用其他影像 Web 資源的好處在於,向量影像能夠縮放。 您定義一個向量影像之後,就可以將它重複使用,而不需提供多種大小的影像。 您可以使用此 Web 資源為實體定義單一圖示,而非不同大小的影像。

支援當地語系化解決方案

您可以使用 RESX Web 資源儲存解決方案的當地語系化字串。 RESX XML 格式常用來定義當地語系化的資源,因此有許多常用的工具可用來處理這類檔案,而且當地語系化廠商對於使用這些工具也會有一定的熟悉程度。 您可以將 RESX Web 資源與使用它們的任何 JavaScript Web 資源建立關聯,如此您就能在執行階段使用新的用戶端 API 存取當地語系化字串。

JavaScript Web 資源相依性

JavaScript Web 資源常需要與其他資源互動,這些資源可能是其他 JavaScript 程式庫、影像、屬性值,或是當地語系化字串的新 RESX Web 資源。 現在您可以設定 JavaScript Web 資源,並且將它與任何相依資源建立關聯,如此就能在需要時使用資源。

當 JavaScript Web 資源與其他類型 Web 資源相關聯時,該 Web 資源會在應用程式中要求 JavaScript Web 資源時自動載入。 當表單指令碼中使用的 JavaScript Web 資源與特定實體的屬性相關聯時,即使表單中未包含該屬性的欄位,該實體屬性仍可供指令碼使用。

互動式服務中心改進功能

以下是互動式服務中心的變更:

  • 互動式服務中心現在稱為客戶服務中心,可做為整合介面應用程式提供。

  • 客戶服務中心應用程式是使用主要表單類型,而不是主要 - 互動體驗表單類型。 如果您從舊版 Dynamics 365 Customer Engagement 升級,您所有主要 - 互動體驗類型的表單都將轉換成主要表單類型。 在升級期間,您所有可自訂的主要 - 互動體驗類型表單都會設定為非使用中,而且您必須在升級後啟用轉換的表單,才能使用這些表單。 此外,所有轉換成主要類型表單的主要 - 互動體驗類型表單,其排序將低於現有的主要類型表單,以防發生任何表單順序衝突。 這樣可確保升級後,在網頁用戶端中對使用者顯示正確的表單。

  • 現已針對新的客戶服務中心應用程式中的互動體驗啟用所有實體。 這表示,指出是否可啟用實體提供互動體驗的 EntityMetadata.IsInteractionCentricEnabled 屬性不再相關。 自訂工具中此屬性的對應設定 [啟用互動體驗] 已從目前版本中移除,且 EntityMetadata.IsInteractionCentricEnabled 屬性將從 Customer Engagement 未來的 Dynamics 365 SDK 版本中移除。

覆寫實體繫結網格中資料列的預設開啟行為

根據預設,目前在實體繫結網格的資料列中執行下列任何動作,都會開啟實體記錄:

  • 按兩下資料列或按一下列中的主要屬性連結。

  • 選取資料列,然後按 ENTER 鍵。

  • 在啟用觸控功能的裝置上選取資料列。

有時候您可能不想要開啟實體記錄,例如,若是文件管理記錄,您可能會想要開啟 SharePoint 網站,而不是顯示記錄。 現在您可以覆寫預設行為來定義自己的自訂行為。

您可以為實體建立命令定義,將 Mscrm.OpenRecordItem 做為 Id 屬性的值 (<CommandDefinition> (RibbonDiffXml)),以及為命令 <Actions> (RibbonDiffXml) 定義自訂動作。 Customer Engagement 會在您嘗試從實體繫結網格開啟記錄時,尋找實體的此命令 Id,如果存在的話,就會執行自訂動作,而不會開啟實體記錄 (預設行為)。

商務程序流程增強功能

商務程序流程經過改良後,提供下列變更:

  • 在整合介面上,setDisplayState 方法現在可讓您設定商務程序控制項以採用 [浮動] 狀態,而不只是 [已展開] 和 [已摺疊]。 同樣地,getDisplayState 方法可根據商務程序控制項的狀態傳回 [浮動]、[已展開] 或 [已摺疊]。 浮動狀態無法用於網頁用戶端。

  • 現在您可以使用稱為 Xrm.Utility.invokeProcessAction 的新用戶端 API 執行程序動作。 以程式設計方式使用新的用戶端 API 執行程序動作的功能,將在此版本中做為預覽功能發行。

    • 在網頁用戶端上,您可以使用新的用戶端 API 執行任何程序動作。 不過,在整合介面上,只有能夠做為商務程序步驟執行的程序動作才能使用新的用戶端 API 執行。

    • 使用新的用戶端 API 取得和設定程序動作步驟的進度:getProgresssetProgress。 您可以使用這些方法取得和設定下列其中一種步驟進度狀態:無: 0、處理中: 1、已完成: 2、失敗: 3 或無效: 4。 這些新的用戶端 API 也會在此版本中做為預覽功能發行。

    • 程序資料步驟不支援 GetProgresssetProgress 用戶端 API。

  • 現在您可以使用新的 Xrm.Navigation.openTaskFlow 用戶端 API 執行工作流程。

Unified Service Desk 3.0 的新功能

開發人員將能使用 Unified Service Desk 3.0 版中的下列新功能。

從 Dynamics 365 Customer Engagement 預先擷取實體資料,就能更快對專員顯示客戶資料

Unified Service Desk 現在可讓您隨實體記錄頁面在內容中載入實體記錄的相關資訊,而不需等待實體網頁完整載入用戶端應用程式中。 擷取的實體資訊會填入 Unified Service Desk 內容中,如此所有託管控制項就能在用戶端應用程式上快速顯示相關實體資訊。 這種方式有助於讓專員立即回應或與客戶展開討論,並且有效運用重要的互動時間。

若要預先擷取 Unified Service Desk 中的資料,可在設定 [CRM 頁面] 類型的託管控制項時選取 [預先擷取資料] 核取方塊。 另外,[CRM 頁面] 類型的託管控制項中新增了稱為 DataReady 的新事件,可協助您在實體記錄的相關資訊載入 Unified Service Desk 內容中時執行動作。 這個 DataReady 事件一定會在 BrowserDocumentComplete 事件之前引發,而如果已核取控制項的 [預先擷取資料] 屬性,當同時進行的另一個伺服器呼叫中擷取實體資料時,此事件就會引發且不會等待整個頁面載入完成。若是內嵌導覽,一樣會預先擷取實體資料並引發 DataReady 事件。

以非同步方式建立實體記錄,以免發生封鎖執行的情形

全域管理員託管控制項上的 CreateEntity 動作會以同步方式在主要執行緒上建立實體記錄,而 Unified Service Desk 必須等待 CreateEntity 動作完成,才能繼續進行下一項工作。 這樣會導致 Unified Service Desk 無回應,直到動作完成,但在某些情況下不會希望這種情形發生。

在此版本中,我們引入了新的資料參數 RunAsync,可用來將 CreateEntity 動作設定為非同步執行 (RunAsync=true),如此 Unified Service Desk 就不會遭到封鎖,並且在動作執行期間仍能回應。

附註CreateEntity 動作的相關子動作呼叫和後續動作呼叫不會等待非同步建立作業完成。 因此,如果您要以非同步方式執行 CreateEntity 動作,則務必將相依於所建立記錄的子動作呼叫設定為只在目標記錄完成時執行。 在全域管理員託管控制項上使用 ExecuteOnDataAvailable 動作就能達成這個目的。 如需詳細資訊,請參閱 CreateEntity 動作。

工具列按鈕、通知及面板導覽的鍵盤快速鍵

  • 工具列按鈕現在支援鍵盤快速鍵,可在建立工具列按鈕時定義這些快速鍵。 如此專員就能從 Unified Service Desk 用戶端中的任意位置執行針對工具列按鈕設定的動作,而不需要按下按鈕。 工具列按鈕的快速鍵只有在按鈕、上階按鈕 (如有的話) 及工具列本身的可見和啟用條件評估為 true 時才有作用。

  • Unified Service Desk 中的通知現在可支援鍵盤快速鍵。 使用預設鍵盤快速鍵 Alt+1 將焦點設定於通知上。 如果顯示了多個通知,重複按 Alt+1 就可以循環跳至畫面上的所有使用中通知。 若要變更通知的鍵盤快速鍵,請使用新的 PopupNavigationShortcut UII 選項指定您選擇的快速鍵。

  • 以往無法將用來循環周遊所有使用中面板的快速鍵 Ctrl+0 變更為使用任何其他按鍵組合。 現在您可以使用新的 UII 選項 PanelNavigationShortcut,自行指定用來循環周遊所有使用中面板的快速鍵。

偵錯工具控制項增強功能

偵錯工具控制項增強後提供了下列新功能,可協助開發人員和自訂員更容易對自訂程式碼和設定變更進行偵錯和疑難排解:

  • 排序資料:將 [動作呼叫] 索引標籤中各欄的資料排序,依遞增或遞減的順序顯示欄中的資料。 您也可以選取 [重設已排序的欄] 圖示,將 [動作呼叫] 索引標籤中所有排序過的欄資料重設回預設的資料顯示方式。

  • 重新執行動作呼叫:以滑鼠右鍵按一下 [動作呼叫] 索引標籤中的動作呼叫記錄,然後從捷徑功能表選取 [重新執行],就可以快速重新執行動作呼叫。 您也可以選擇編輯動作呼叫的資料參數,然後在 [動作呼叫] 索引標籤中以滑鼠右鍵按一下動作呼叫,並從捷徑功能表選取 [編輯] 將它重新執行。 這樣就會在 [直接動作] 索引標籤中載入動作呼叫定義,您在此修改必要的資訊後,就能將它重新執行。

  • 重新執行事件:以滑鼠右鍵按一下 [動作呼叫] 索引標籤中的事件記錄,然後從捷徑功能表選取 [重新執行],就可以快速重新執行事件。 與動作呼叫不同的是,您無法編輯並重新執行事件。

  • 直接動作索引標籤增強功能:選取 [清除] 圖示可清除 [直接動作] 索引標籤中所有欄位的資訊。

  • 取代參數的增強功能:現在您可以在 [資料參數] 索引標籤中新增取代參數與其值、複製取代參數的值,以及使用新圖示編輯取代參數的值。

設定 JAWS 螢幕助讀程式支援

Unified Service Desk 現在支援 Windows 螢幕助讀程式適用的 JAWS (Job Access With Speech,使用語音存取工作) 18 版,可在 Unified Service Desk 用戶端中進行語音輸出。 屬於 Dynamics 365 網頁用戶端套件的所有控制項都可與 JAWS 相容。

您可以針對可設定焦點的控制項設定 JAWS 螢幕助讀程式支援。 JAWS 不支援無法設定焦點的控制項,例如標籤。 不過,您可以採取因應措施,建立不可設定焦點的控制項做為使用者控制項 (前後以 <UserControl> 包圍),以便支援 JAWS 螢幕助讀程式。

此外,JAWS 螢幕助讀程式不支援讀取按鈕工具提示文字。 但是您可以使用 Unified Service Desk 中的自訂指令碼,讓 JAWS 螢幕助讀程式讀取工具提示文字。