2017 年 7 月更新中開發人員適用的新功能

我們很高興宣布,Dynamics 365 (線上) 適用的 2017 年 7 月更新現在可供試用購買! 請您密切注意何時可更新現有組織的相關資訊。

請參閱下列連結:

在 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。

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

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

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

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

多重選取選項組可支援選項組屬性控制項能夠支援的所有用戶端 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 中開發人員和自訂員適用的新功能

Dynamics 365 Customer Engagement 開發人員指南