範例 Dataverse 低程式碼外掛程式 (預覽版)
[本主題是發行前版本文件,並可能在未來變更。]
這些範例外掛程式的目標是透過將它們整合至您的應用程式,協助您開始使用。 您將了解製作體驗包括製作由 Power Fx 運算式支援的 Microsoft Dataverse 自訂 API,這可觸發 Dataverse 內部或外部的動作。
重要
- 這是預覽功能。
- 預覽功能不供生產時使用,而且可能功能受限。 這些功能是在正式發行前先行推出,讓客戶能夠搶先體驗並提供意見反應。
先決條件
若要使用資料事件的其中一個範例外掛程式,Dataverse 加速器應用程式必須安裝在環境中。 其他資訊:建立低程式碼外掛程式的先決條件
注意
電子郵件範本僅適用於某些表格。 其他資訊:建立電子郵件的範本
傳回非負數值
此範例使用 Abs() 函數以傳回其引數的非負數值。 如果數字為負數,Abs
會傳回正數的對等數字。
播放 Dataverse 加速器應用程式,在命令列上選取新動作 > 即時外掛程式。
提供顯示名稱,例如公式名稱和描述。
建立
Out
參數以驗證有意義的預期行為,例如字串選擇性使用輸入參數,讓測試變得更容易,這對公式有意義。在公式編輯器中,將
Out
參數包在大括號中:{Out: "" }
輸入測試公式的運算式:
- 驗證 intellisense 接受公式 (文字變成淺藍色)。
- 例如,執行提供輸出以協助驗證結果的運算式。
{Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 ) }
選取下一步,然後選取儲存。
選取測試以測試公式。 使用輸出參數來驗證結果。
輸入驗證和自訂錯誤
重複資料偵測
執行伺服器端輸入驗證,例如重複錯誤偵測,該驗證會引發自訂錯誤訊息。
- 播放 Dataverse 加速器應用程式,在命令列上選取新動作 > 自動化外掛程式。
- 在名稱方塊中,輸入重複檢查。
- 在表格,選取連絡人。
- 在當列是時,執行此外掛程式,選取已建立。
- 在公式方塊中,輸入此公式:
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")
)
- 選取儲存。
測試外掛程式
- 若要測試外掛程式,請依照此處所示步驟,使用連絡人表格建立畫布應用程式:指定表格
- 建立連絡人列。
- 建立與前一步驟名稱相同的其他連絡人。
- 會顯示一則訊息,指出發現重複記錄。 在錯誤訊息提示上,選取忽略並儲存。
會顯示此自訂錯誤訊息:您有兩個姓氏和名字都相同的連絡人。
資料驗證
使用 ErrorKind 列舉來顯示特定類型的錯誤。
建立新的自動化外掛程式。
提供下列值:
- 名稱:輸入驗證
- 描述:檢查是否為有效日期,並在無效時引發錯誤
- 表格:約會
- 當列是:已更新時,執行此外掛程式
輸入以下公式:
If(ThisRecord.'Due Date' < Now(), Error({ Kind: ErrorKind.Validation , Message: "The due date cannot be in the past" }) );
在進階選項底下,將何時應該執行此動作設定為作業前;您想要在儲存資料前執行此規則以避免無效的資料。
選取儲存。
若要深入了解自訂錯誤,請移至 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
建立自動化外掛程式
- 播放 Dataverse 加速器應用程式,然後選取自動化外掛程式底下的 + 新外掛程式。
- 輸入下列資訊:
名稱: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] )
- 選取進階 > 作業後。
- 選取儲存。
會隨即出現外掛程式已成功儲存的確認訊息。
根據即時動作傳送應用程式內通知
應用程式內通知可讓製作者為模型導向應用程式中的使用者,設定上下文型的可操作通知。
建立傳送應用程式內通知的低程式碼外掛程式
- 播放 Dataverse 加速器應用程式,然後選取即時外掛程式底下的 + 新外掛程式。
- 輸入下列資訊,並選取下一步:
- 名稱:NotifyTechnican1
- 描述:此即時外掛程式會通知應用程式使用者。
- 在定義頁面上,以下列資料類型建立輸入參數:
- OrderID:字串
- TechnicianEmail:字串
- 公式。 將下列程式碼貼到公式方塊中。 如需此函式的詳細資訊,請移至 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' ) ] )
- 選取下一步。
- 在摘要頁面上,選取儲存。
叫用應用程式內通知即時動作
- 選取畫布應用程式,然後在命令列上 (或建立一個新的) 選取編輯。
- 在左瀏覽窗格上選取畫面,或建立一個新的。
- 在插入功能表上,新增一個按鈕到使用文字 通知技術人員的頁面。
- 選取按鈕,並在 fx 公式列中輸入下列字元,其中 DataCardValue17 是包含訂單識別碼的資料行,而 DataCardValue15 是包含技術人員電子郵件地址的資料行。 在此範例中,會使用名為服務訂單應用程式的畫布應用程式。
Environment.cr8b8_Notifytechnician1({ OrderID: DataCardValue17.Text, TechnicianEmail: DataCardValue15.Text }); Notify("The technician was notified!", NotificationType.Success, 2000);
- 儲存並發佈您的變更。
在應用程式中選取通知技術人員動作時,會將應用程式內通知傳送給已指派至服務訂單的技術人員。 通知上的動作會在側窗格中打開服務訂單詳細資料。
使用 MSN 氣象連接器的樣本即時外掛程式
此外掛程式會使用 MSN 氣象連接器傳回特定位置目前的天氣。
先決條件:
- 建立低程式碼外掛程式的先決條件
- 環境中允許有 MSN 氣象連接器
建立 MSN 天氣的連接參照 (如果環境中尚無):
複製程式碼片段:
使用 intellisense 完成編輯公式,並視需要消耗連接器回覆屬性:
儲存
提示
若要存取回覆可能具有的不同屬性,請使用 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()
公式來避免此問題。