從 Azure Logic Apps 中的工作流程連線至 Microsoft Dataverse

適用於:Azure Logic Apps (使用量 + 標準)

重要

在 2022 年 8 月 30 日,Common Data Service 2.0 (稱為 Microsoft Dataverse (舊版)) 的連接器作業移轉至目前的 Microsoft Dataverse 連接器。 舊版作業會帶有「舊版」標籤,而目前的作業則帶有「預覽」標籤。 您可以在任何現有的或新的邏輯應用程式工作流程中使用目前的 Dataverse 連接器。 基於回溯相容性,現有的工作流程會繼續使用舊版 Dataverse 連接器。 不過,請務必檢閱這些工作流程,並立即加以更新。

從 2023 年 10 月開始,新工作流程將無法使用舊版版本。 現有的工作流程會繼續運作,但您必須讓新的工作流程使用目前的 Dataverse 連接器作業。 將會宣佈舊版動作和觸發程序的關機日期時間表。 如需詳細資訊,請參閱適用於 Azure Logic Apps 的 Microsoft Dataverse (舊版) 連接器即將淘汰,並取代為另一個連接器

若要建立和執行自動化工作流程,以建立和管理 Microsoft Dataverse 資料庫中的資料列,您可以使用 Azure Logic AppsMicrosoft Dataverse 連接器。 這些工作流程可以建立資料列、更新資料列,以及執行其他作業。 您也可以從 Dataverse 資料庫取得資訊,並將輸出提供給工作流程中的其他動作使用。 例如,在 Dataverse 資料庫中新增、更新或刪除資料列時,您可以使用 Office 365 Outlook 連接器來傳送電子郵件。

本指南顯示如何建立工作流程,以便只要建立新的前導資料列就建立一個工作資料列。

連接器參考

如需以連接器 Swagger 描述為基礎的技術資訊,例如作業、限制和其他詳細資料,請參閱受控連接器參考頁面

必要條件

新增 Dataverse 發射鍵

當您新增連線至服務或系統的觸發程序或動作,而且您沒有現有的或作用中連線時,Azure Logic Apps 會提示您提供連線資訊 (根據連線類型而有所不同),例如:

  • 您的帳戶認證
  • 用於連線的名稱
  • 伺服器或系統的名稱
  • 要使用的驗證類型
  • 連接字串

此範例會使用 Dataverse 觸發程序,在新增、更新或刪除資料列時啟動工作流程。

注意

Dataverse 連接器具有作業特定參數和資料庫特定參數。 例如,當您選取資料表時,該資料表可用的參數會有所不同,且每個資料表的可用參數都不相同。

  1. Azure 入口網站中,於設計工具中開啟您的標準邏輯應用程式資源和空白工作流程。

  2. 在設計工具上,遵循這些一般步驟以新增名為當新增、修改或移除資料列時Microsoft Dataverse 觸發程序

  3. 如果系統提示,請登入您的 Dataverse 環境或資料庫。

  4. 在觸發程序資訊方塊中,提供必要的值。

    如需範例觸發程序,請參閱新增、修改或刪除資料列時

    Screenshot shows Standard workflow designer and example trigger.

  5. 完成後,儲存邏輯應用程式工作流程。 在設計師工具列上選取儲存

  6. 現在,至少新增一個工作流程要在引發觸發程序時執行的動作。 例如,您可以新增 Dataverse 動作,或依據觸發程序輸出傳送電子郵件的動作。

新增 Dataverse 動作

當您新增連線至服務或系統的觸發程序或動作,而且您沒有現有的或作用中連線時,Azure Logic Apps 會提示您提供連線資訊 (根據連線類型而有所不同),例如:

  • 您的帳戶認證
  • 用於連線的名稱
  • 伺服器或系統的名稱
  • 要使用的驗證類型
  • 連接字串

此範例會使用 Dataverse 動作,將新的資料列新增至您的資料庫。

注意

Dataverse 連接器具有作業特定參數和資料庫特定參數。 例如,當您選取資料表時,該資料表可用的參數會有所不同,且每個資料表的可用參數都不相同。

  1. Azure 入口網站,於設計工具中開啟您的標準邏輯應用程式資源和工作流程。

  2. 在設計工具上,遵循這些一般步驟來新增名為新增資料列Microsoft Dataverse 動作

  3. 如果系統提示,請登入您的 Dataverse 環境或資料庫。

  4. 在動作資訊方塊中,提供必要值。

    如需範例動作,請參閱新增資料列

    Screenshot shows Standard workflow designer and example action.

  5. 完成後,儲存邏輯應用程式工作流程。 在設計師工具列上選取儲存

  6. 如有需要,請繼續新增更多動作。

測試工作流程

若要測試並觸發工作流程,請遵循下列步驟:

  1. 在工作流程功能表上,選取 [概觀]

  2. 在 [概觀] 工具列上,選取 [執行]> [執行]

  3. 重現觸發程序執行工作流程所需的條件。

根據篩選條件傳回資料列

對於傳回資料列的動作,例如列出資料列動作,您可以使用 ODATA 查詢,根據指定的篩選條件傳回資料列。 例如,可以設定動作,只傳回作用中帳戶的 ROWS。 如需範例動作的詳細資訊,請參閱列出資料列

  1. 在設計工具的動作中,開啟 [進階參數] 清單,然後選取 [篩選資料列] 屬性。

    Screenshot shows Standard workflow and property named Filter rows.

  2. 在現在出現在動作中的 [篩選資料列] 屬性中,輸入 ODATA 查詢運算式,例如:

    statuscode eq 1

    Screenshot shows Standard workflow and property named Filter rows with ODATA query.

如需 $filter 系統查詢選項的詳細資訊,請參閱使用 Web API 查詢資料 - 篩選結果

根據排序順序傳回資料列

對於傳回資料列的動作,例如 [列出資料列] 動作,您可以使用 ODATA 查詢以按照特定順序傳回資料列,此順序會隨著動作傳回的資料列而有所不同。 例如,您可以設定動作,按照帳戶名稱傳回整理好的資料列。 如需範例動作的詳細資訊,請參閱列出資料列

  1. 在設計工具的動作中,開啟 [進階參數] 清單,然後選取 [排序依據] 屬性。

    Screenshot shows Standard workflow, a Dataverse action, and Sort By property.

  2. 在現在出現在動作中的 [排序依據] 屬性中,輸入要用於排序的資料行名稱,例如 name

    Screenshot shows Standard workflow, a Dataverse action, and Sort By property with column name.

如需 $orderby 系統查詢選項的詳細資訊,請參閱使用 Web API 查詢資料 - 排序依據

欄位資料類型

在觸發程序或動作中,欄位值的資料類型必須符合欄位的必要資料類型。 無論您是手動輸入值或從動態內容清單選取值,都適用這項需求。

注意

Dataverse 連接器具有作業特定參數和資料庫特定參數。 例如,當您選取資料表時,該資料表可用的參數會有所不同,且每個資料表的可用參數都不相同。

例如,假設您有一個名為 Tasks 的資料表。 此資料表含有僅適用於該資料表的欄位,而其他資料表則有自己的欄位。 在範例 [Tasks] 資料表中,下表說明一些範例欄位類型,以及這些欄位的值所需要的資料類型。

欄位 資料類型 描述
文字欄位 單行文字 需要文字資料類型的單行文字或動態內容,例如,這些屬性:

- 說明
- 類別
整數欄位 整數 需要整數資料類型的整數或動態內容,例如這些屬性:

- 完成百分比
- 期間
日期欄位 日期與時間 需要 MM/DD/YYY 格式的日期或日期資料類型的動態內容,例如下列屬性:

- 建立日期
- 開始日期
[實際開始時間]-
[實際結束時間]-
- 到期日
參考另一個實體資料列的欄位 主要金鑰 需要資料列識別碼,例如 GUID 和查閱類型,這表示動態內容清單中的值將無法運作,例如這些屬性:

- 擁有者:必須是有效的使用者識別碼或小組資料列識別碼。
- 擁有者類型:必須是查閱類型,例如分別是 systemusersteams

- 相關:必須是有效的資料列識別碼,例如帳戶識別碼或連絡人資料列識別碼。
- 相關類型:必須是查閱類型,例如分別是 accountscontacts

- 客戶:必須是有效的資料列識別碼,例如帳戶識別碼或連絡人資料列識別碼。
- 客戶類型:必須是查閱類型,例如分別是 accountscontacts

在範例 [Tasks] 資料表中,假設您使用 [新增資料列] 動作來建立與其他實體資料列相關聯的新資料列,特別是使用者資料列和帳戶資料列。 那麼在此動作中,您必須使用符合相關屬性預期資料類型的值,來指定這些實體資料列的識別碼和查閱類型。

  • 根據 [擁有者] 屬性 (指定使用者識別碼),以及 [擁有者類型] 屬性 (指定 systemusers 查閱類型),動作會將新資料列與特定使用者產生關聯。

  • 根據 [相關] 屬性 (指定資料列識別碼),以及 [相關類型] 屬性 (指定 accounts 查閱類型),動作會將新資料列與特定帳戶產生關聯。

對問題進行疑難排解

來自多個環境的呼叫

Dataverse 連接器會儲存邏輯應用程式工作流程的相關資訊,這些工作流程會使用 Dataverse 資料庫中的 callbackregistrations 實體來取得和要求有關資料庫實體變更的通知。 如果您複製 Dataverse 組織,則會同時複製任何 Webhook。 如果您在停用對應至組織的工作流程之前複製組織,則任何複製的 Webhook 也會指向相同的邏輯應用程式工作流程,然後從多個組織取得通知。

若要停止不要的通知,請遵循下列步驟,從組織中刪除傳送這些通知的 callbackregistrations 實體:

  1. 識別並登入您想要從中移除通知的 Dataverse 組織。

  2. 在 Chrome 瀏覽器中,尋找您要刪除的回撥註冊。

    1. 檢閱下列 OData URI 提供的所有回撥註冊一般清單,以便檢視 callbackregistrations 實體內的資料:

      https://{organization-name}.crm{instance-number}.dynamics.com/api/data/v9.0/callbackregistrations

      注意

      如果未傳回任何值,您可能沒有檢視此實體類型的權限,或者您可能尚未登入正確的組織。

    2. 篩選觸發實體的邏輯名稱 entityname,以及符合邏輯應用程式工作流程的通知事件 (訊息)。 每個事件類型都會對應至訊息整數,如下所示:

      事件類型 訊息整數
      建立​​ 1
      刪除 2
      更新 3
      CreateOrUpdate 4
      CreateOrDelete 5
      UpdateOrDelete 6
      CreateOrUpdateOrDelete 7

      下列範例示範如何使用範例組織的下列 OData URI,針對名為 nov_validation 的實體篩選 Create 通知:

      https://fabrikam-preprod.crm1.dynamics.com/api/data/v9.0/callbackregistrations?$filter=entityname eq 'nov_validation' and message eq 1

      Screenshot shows browser window and OData URI in address bar.

      注意

      如果相同實體或事件有多個觸發程序存在,您可以使用其他篩選條件 (例如 createdon_owninguser_value 屬性) 來篩選清單。 擁有者使用者名稱會出現在 /api/data/v9.0/systemusers({id}) 下方。

    3. 找到您要刪除的回撥註冊識別碼之後,請遵循下列步驟:

      1. 在您的 Chrome 瀏覽器中,開啟 Chrome 開發人員工具 (鍵盤:F12)。

      2. 在視窗頂端,選取 [主控台] 索引標籤。

      3. 在命令列提示中,輸入此命令,以傳送刪除指定回撥註冊的要求:

        fetch('http://{organization-name}.crm{instance-number}.dynamics.com/api/data/v9.0/callbackregistrations({ID-to-delete})', { method: 'DELETE'})

        重要

        請確定您是從非整合用戶端介面 (UCI) 頁面發出要求,例如,從 OData 或 API 回應頁面本身。 否則,app.js 檔案中的邏輯可能會干擾這項作業。

    4. 若要確認回撥註冊已不存在,請檢查回撥註冊清單。

重複 'callbackregistrations' 實體

在標準邏輯應用程式工作流程中,在執行個體重新配置或應用程式重新啟動等特定條件下,Microsoft Dataverse 觸發程序會啟動重複執行,這會在 Dataverse 資料庫中建立重複 callbackregistrations 實體。 如果您編輯以 Dataverse 觸發程序啟動的標準工作流程,請檢查此 callbackregistrations 實體是否重複。 如果重複項目存在,請手動刪除重複 callbackregistrations 實體。

下一步