共用方式為


範例 Dataverse 低程式碼外掛程式 (預覽版)

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

這些範例外掛程式的目標是透過將它們整合至您的應用程式,協助您開始使用。 您將了解製作體驗包括製作由 Power Fx 運算式支援的 Microsoft Dataverse 自訂 API,這可觸發 Dataverse 內部或外部的動作。

重要

  • 這是預覽功能。
  • 預覽功能不供生產時使用,而且可能功能受限。 這些功能是在正式發行前先行推出,讓客戶能夠搶先體驗並提供意見反應。

先決條件

若要使用資料事件的其中一個範例外掛程式,Dataverse 加速器應用程式必須安裝在環境中。 其他資訊:建立低程式碼外掛程式的先決條件

注意

電子郵件範本僅適用於某些表格。 其他資訊:建立電子郵件的範本

傳回非負數值

此範例使用 Abs() 函數以傳回其引數的非負數值。 如果數字為負數,Abs 會傳回正數的對等數字。

  1. 播放 Dataverse 加速器應用程式,在命令列上選取新動作 > 即時外掛程式

  2. 提供顯示名稱,例如公式名稱和描述。

  3. 建立 Out 參數以驗證有意義的預期行為,例如字串選擇性使用輸入參數,讓測試變得更容易,這對公式有意義。

  4. 在公式編輯器中,將 Out 參數包在大括號中:

    {Out: "" }
    
  5. 輸入測試公式的運算式:

    • 驗證 intellisense 接受公式 (文字變成淺藍色)。
    • 例如,執行提供輸出以協助驗證結果的運算式。
    {Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 )  }
    
  6. 選取下一步,然後選取儲存

  7. 選取測試以測試公式。 使用輸出參數來驗證結果。

輸入驗證和自訂錯誤

重複資料偵測

執行伺服器端輸入驗證,例如重複錯誤偵測,該驗證會引發自訂錯誤訊息。

  1. 播放 Dataverse 加速器應用程式,在命令列上選取新動作 > 自動化外掛程式
  2. 在名稱方塊中,輸入重複檢查
  3. 表格,選取連絡人
  4. 當列是時,執行此外掛程式,選取已建立
  5. 公式方塊中,輸入此公式:
 If( !IsBlank(LookUp([@Contacts],'Last Name'=ThisRecord.'Last Name' && 'First Name'=ThisRecord.'First Name')),
    Error("You have existing contacts with the same first name and last name")
)
  1. 選取儲存

測試外掛程式

  1. 若要測試外掛程式,請依照此處所示步驟,使用連絡人表格建立畫布應用程式:指定表格
  2. 建立連絡人列。
  3. 建立與前一步驟名稱相同的其他連絡人。
  4. 會顯示一則訊息,指出發現重複記錄。 在錯誤訊息提示上,選取忽略並儲存

會顯示此自訂錯誤訊息:您有兩個姓氏和名字都相同的連絡人

資料驗證

使用 ErrorKind 列舉來顯示特定類型的錯誤。

  1. 建立新的自動化外掛程式。

  2. 提供下列值:

    • 名稱輸入驗證
    • 描述檢查是否為有效日期,並在無效時引發錯誤
    • 表格約會
    • 當列是:已更新時,執行此外掛程式
  3. 輸入以下公式:

    If(ThisRecord.'Due Date' < Now(), 
     Error({ Kind: ErrorKind.Validation , Message: "The due date cannot be in the past" })
    );
    
  4. 進階選項底下,將何時應該執行此動作設定為作業前;您想要在儲存資料前執行此規則以避免無效的資料。

  5. 選取儲存

若要深入了解自訂錯誤,請移至 Error() 函式

根據資料事件傳送電子郵件

先決條件:

範例電子郵件範本

以下是您可以為 SenMail 型資料事件建立的電子郵件範本範例:

  • 範本類型全域
  • 名稱訂購感謝您
  • 描述使用此範本來感謝客戶跟您下訂單。
  • 主旨Thank you for your order <orderconfirmation-{!salesorder:Order Number; }>
  • 正文:使用此代碼。
   Hello {!Sales Order:First Name;},
   Order Type: {! Sales Order: Order Type;},
   Location Type: {! Sales Order: Location Type;},
   Address1: {! Sales Order: Address 1;},
   Address2: {! Sales Order: Address 2;},
   Preferred Service Start Date 1: {! Sales Order: Preferred Service Start Date;},
   Next Step- We take upto 48 hrs to schedule an in-person and will notify you as soon as we have a In-person Technician allocated at your site. For any questions, please contact us at 1-800-CON-SOLAR
   Yours Sincerely, 
   Contoso Sales 

建立自動化外掛程式

  1. 播放 Dataverse 加速器應用程式,然後選取自動化外掛程式底下的 + 新外掛程式
  2. 輸入下列資訊:
    • 名稱SendEmailUponCreate

    • 表格:選取銷售訂單的邏輯表名稱,即 SalesOrder。 此事件的基準為銷售訂單表格。

    • 當列是:已建立時,執行此外掛程式

    • 公式:將下面的程式碼貼到公式方塊中。 如需 SendEmailFromTemplate 函數的詳細資訊,請參閱 SendEmailFromTemplate 動作

      XSendEmailFromTemplate(
          LookUp('Email Templates',StartsWith(title,"Order Thank You")).'Email Template',
      ThisRecord,
      LookUp(Users,'Primary Email'="sampleemail@sample.com"),[ThisRecord.Email]
      )
      
  3. 選取進階 > 作業後
  4. 選取儲存

會隨即出現外掛程式已成功儲存的確認訊息。

根據即時動作傳送應用程式內通知

應用程式內通知可讓製作者為模型導向應用程式中的使用者,設定上下文型的可操作通知。

建立傳送應用程式內通知的低程式碼外掛程式

  1. 播放 Dataverse 加速器應用程式,然後選取即時外掛程式底下的 + 新外掛程式
  2. 輸入下列資訊,並選取下一步
    • 名稱NotifyTechnican1
    • 描述此即時外掛程式會通知應用程式使用者。
  3. 定義頁面上,以下列資料類型建立輸入參數:
    • OrderID字串
    • TechnicianEmail字串
  4. 公式。 將下列程式碼貼到公式方塊中。 如需此函式的詳細資訊,請移至 SendAppNotification 動作
     XSendAppNotification(
         "New service",
         LookUp(Users,'Primary Email'=TechnicianEmail),
         "You have a new solar panel installation scheduled on "& LookUp('Scheduling Results','OrderId'=OrderID).'ServiceDate'&" in "& LookUp('Service Orders','Order Number'=OrderID).City &". Contact the coordinator with any questions.",
     [
         XCreateSidePaneActionForEntity(
                 "View order",
             OrderID,
             "Sales Order",
             "cr8b8_serviceorder1",
             LookUp('Service Orders','Order Number'=OrderID).'Service Order'
             )
         ]
     )
    
  5. 選取下一步
  6. 摘要頁面上,選取儲存

叫用應用程式內通知即時動作

  1. 選取畫布應用程式,然後在命令列上 (或建立一個新的) 選取編輯
  2. 在左瀏覽窗格上選取畫面,或建立一個新的。
  3. 插入功能表上,新增一個按鈕到使用文字 通知技術人員的頁面。
  4. 選取按鈕,並在 fx 公式列中輸入下列字元,其中 DataCardValue17 是包含訂單識別碼的資料行,而 DataCardValue15 是包含技術人員電子郵件地址的資料行。 在此範例中,會使用名為服務訂單應用程式的畫布應用程式。
    Environment.cr8b8_Notifytechnician1({
           OrderID: DataCardValue17.Text,
       TechnicianEmail: DataCardValue15.Text 
    });
    
        Notify("The technician was notified!", NotificationType.Success, 2000);
    
    
    新增帶有 Power Fx 公式的按鈕,以傳送通知給技術人員
  5. 儲存發佈您的變更。

在應用程式中選取通知技術人員動作時,會將應用程式內通知傳送給已指派至服務訂單的技術人員。 通知上的動作會在側窗格中打開服務訂單詳細資料。

傳送給技術人員的通知 (會在應用程式內收到)

使用 MSN 氣象連接器的樣本即時外掛程式

此外掛程式會使用 MSN 氣象連接器傳回特定位置目前的天氣。

先決條件:

  1. 建立 MSN 天氣的連接參照 (如果環境中尚無): 請從右邊的連接參照窗格,在應用程式中建立連接參照

  2. 複製程式碼片段: 從連線窗格複製動作程式碼片段

  3. 使用 intellisense 完成編輯公式,並視需要消耗連接器回覆屬性: 在編輯器中完成外掛程式定義

  4. 儲存​​

  5. 測試外掛程式

提示

若要存取回覆可能具有的不同屬性,請使用 With() 函數,從一個動作擷取整個回覆。 在下面範例中,有一個輸入參數 Location (字串) 和一個輸出參數 Out (字串)。

With({ /* Capture current weather response from connector */
c: new_MsnWeather.CurrentWeather( Location, "Imperial" ).responses.weather.current
},{ /* Return concatenated weather details */
Out: "Current temp: " & c.temp & " degrees. Feels like " & c.feels & " degrees. Wind speed is " & c.windSpd & " mph."
})

最佳作法

處理自動化低程式碼外掛程式中的無限迴圈錯誤

請不要在「更新」事件時,在自動化外掛程式上寫入修補程式陳述式,其中修補程式發生在與外掛程式相同的表格中。 這會造成無限迴圈和外掛程式執行失敗。

有問題的模式:使用 Patch() 公式觸發另一個更新。 「自動化外掛程式中有問題的公式」

建議的模式:請改為使用 Set() 公式來避免此問題。 「自動化外掛程式中建議的公式」

另請參閱

低程式碼外掛程式 Power Fx (預覽版)