Ví dụ Dataverse #plugin ít viết mã (bản xem trước)
[Chủ đề này là tài liệu hướng dẫn trước khi phát hành và có thể thay đổi.]
Mục tiêu của các plug-in mẫu này là giúp bạn bắt đầu bằng cách tích hợp chúng vào ứng dụng của mình. Bạn sẽ hiểu trải nghiệm biên soạn bao gồm việc biên soạn Microsoft Dataverse API tùy chỉnh được hỗ trợ bởi Power Fx biểu thức, có thể kích hoạt các hành động bên trong hoặc bên ngoài Dataverse.
Quan trọng
- Đây là một tính năng xem trước.
- Các tính năng xem trước không được dùng cho sản xuất và có thể có chức năng bị hạn chế. Những tính năng này khả dụng trước khi có bản phát hành chính thức để khách hàng có thể truy cập sớm và cung cấp phản hồi.
Điều kiện tiên quyết
Để sử dụng một trong các plug-in mẫu cho sự kiện dữ liệu, ứng dụng tăng tốc Dataverse phải được cài đặt trong môi trường. Thông tin thêm: Điều kiện tiên quyết để tạo plug-in ít viết mã
Lưu ý
Mẫu email chỉ khả dụng cho một số bảng nhất định. Để biết thêm thông tin, hãy xem: Tạo mẫu cho email
Trả về một giá trị không âm
Ví dụ này sử dụng hàm Abs() để trả về giá trị không âm của đối số. Nếu một số là số âm, Abs
sẽ trả về số dương tương đương.
Chạy ứng dụng Dataverse Accelerator, trên thanh lệnh, chọn Hành động mới > Plugin tức thì.
Cung cấp tên hiển thị, chẳng hạn như tên công thức và mô tả.
Tạo một tham số
Out
để xác thực hành vi mong đợi có ý nghĩa, chẳng hạn như chuỗi. Tùy chọn sử dụng tham số đầu vào để giúp việc kiểm tra dễ dàng hơn, có ý nghĩa với công thức.Trong trình soạn thảo công thức, Đóng gói tham số
Out
trong dấu ngoặc nhọn:{Out: "" }
Nhập biểu thức để kiểm tra công thức:
- Xác thực rằng intellisense chấp nhận công thức (văn bản chuyển sang màu xanh nhạt).
- Ví dụ, hãy triển khai một biểu thức cung cấp đầu ra để giúp xác thực kết quả.
{Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 ) }
Chọn Tiếp theo, sau đó chọn Lưu.
Chọn Kiểm tra để kiểm tra công thức. Sử dụng tham số đầu ra để xác thực kết quả.
Xác thực đầu vào và lỗi tùy chỉnh
Phát hiện nội dung trùng lặp
Triển khai xác thực đầu vào phía máy chủ, chẳng hạn như phát hiện lỗi trùng lặp bằng cách đưa ra thông báo lỗi tùy chỉnh.
- Chạy ứng dụng Dataverse Accelerator, trên thanh lệnh, chọn Hành động mới > Plugin tự động.
- Trong hộp Tên, nhập Kiểm tra trùng lặp.
- Đối với Bảng, hãy chọn Liên hệ.
- Để Chạy plugin này khi hàng là, hãy chọn Đã tạo.
- Trong hộp Công thức, nhập công thức này:
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")
)
- Chọn Lưu.
Kiểm tra plug-in
- Để kiểm tra plug-in, hãy tạo ứng dụng canvas bằng cách sử dụng bảng danh bạ bằng cách làm theo các bước sau đây: Chỉ định một bảng
- Tạo một hàng liên hệ.
- Tạo một liên hệ khác có cùng tên như trong bước trước đó.
- Một thông báo sẽ hiển thị cho biết đã tìm thấy bản ghi trùng lặp. Chọn Bỏ qua và lưu khi có thông báo lỗi.
Thông báo lỗi tùy chỉnh này được hiển thị: Bạn có hai liên hệ có cùng số đầu tiên và họ.
Xác thực Dữ liệu
Hiển thị các loại lỗi cụ thể bằng cách sử dụng phép liệt kê ErrorKind .
Tạo một plug-in tự động mới.
Cung cấp các giá trị sau:
- Tên: Xác thực đầu vào
- Mô tả: Kiểm tra ngày hợp lệ và đưa ra lỗi nếu không hợp lệ
- Bảng: Cuộc hẹn
- Chạy plugin này khi hàng là: Đã cập nhật
Nhập công thức dưới đây:
If(ThisRecord.'Due Date' < Now(), Error({ Kind: ErrorKind.Validation , Message: "The due date cannot be in the past" }) );
Trong Tùy chọn nâng cao, hãy đặt Thời điểm chạy thành Trước khi vận hành; bạn muốn chạy quy tắc này trước khi dữ liệu được lưu để tránh dữ liệu không hợp lệ.
Chọn Lưu.
Đi tới hàm Error() để tìm hiểu thêm về lỗi tùy chỉnh.
Gửi email dựa trên sự kiện dữ liệu
Điều kiện tiên quyết:
- Đồng bộ hóa phía máy chủ được thiết lập cho môi trường của bạn. Thông tin thêm: Thiết lập đồng bộ hóa phía máy chủ của email, cuộc hẹn, danh bạ và nhiệm vụ
- Mẫu email.
Mẫu email ví dụ
Sau đây là ví dụ về mẫu email mà bạn có thể tạo cho sự kiện dữ liệu dựa trên SenMail:
- Loại mẫu: Toàn cầu
- Tên: Đặt hàng Cảm ơn bạn
- Mô tả: Sử dụng mẫu này để cảm ơn khách hàng đã đặt hàng với bạn.
- Chủ đề:
Thank you for your order <orderconfirmation-{!salesorder:Order Number; }>
- Thân bài: Sử dụng mã này.
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
Tạo plug-in tự động
- Chạy ứng dụng Dataverse Accelerator, sau đó chọn +Plugin mới trong Plugin tự động.
- Nhập các thông tin sau:
Tên: GửiEmailKhiTạo
Bảng: Chọn tên bảng logic của lệnh bán hàng, đó là SalesOrder. Sự kiện này dựa trên bảng Đơn đặt hàng bán hàng.
Chạy plugin này với hàng là: Đã tạo
Công thức: Dán mã bên dưới vào hộp Công thức . Để biết thêm thông tin về hàm SendEmailFromTemplate, hãy tham khảo Hành động SendEmailFromTemplate.
XSendEmailFromTemplate( LookUp('Email Templates',StartsWith(title,"Order Thank You")).'Email Template', ThisRecord, LookUp(Users,'Primary Email'="sampleemail@sample.com"),[ThisRecord.Email] )
- Chọn Nâng cao > Hậu phẫu thuật.
- Chọn Lưu.
Thông báo xác nhận Plugin đã được lưu thành công sẽ xuất hiện.
Gửi thông báo trong ứng dụng dựa trên hành động tức thời
Thông báo trong ứng dụng cho phép người tạo cấu hình thông báo theo ngữ cảnh và có thể thực hiện được cho người dùng trong các ứng dụng dựa trên mô hình.
Tạo plugin ít viết mã gửi thông báo trong ứng dụng
- Chạy ứng dụng tăng tốc, sau đó chọn Dataverse +Plugin mới trong Plugin tức thì .
- Nhập thông tin sau, chọn Tiếp theo:
- Tên: NotifyTechnican1
- Mô tả: Phần bổ trợ tức thời này thông báo cho người dùng ứng dụng.
- Trên trang Định nghĩa, hãy tạo các tham số đầu vào với các kiểu dữ liệu sau:
- OrderID: Chuỗi
- Kỹ thuật viênEmail: Chuỗi
- Công thức. Dán đoạn mã sau vào hộp Công thức . Để biết thêm thông tin về chức năng này, hãy truy cập Hành động 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' ) ] )
- Chọn Tiếp theo.
- Trên trang Tóm tắt, chọn Lưu.
Gọi hành động tức thời thông báo trong ứng dụng
- Chọn một ứng dụng canvas rồi chọn Chỉnh sửa trên thanh lệnh (hoặc tạo một ứng dụng mới).
- Chọn màn hình trên ngăn điều hướng bên trái hoặc tạo một màn hình mới.
- Trên menu Chèn, thêm một Nút vào trang bằng cách sử dụng Văn bản Thông báo cho kỹ thuật viên.
- Chọn nút và nhập thông tin sau vào thanh công thức fx, trong đó DataCardValue17 là cột chứa ID đơn hàng và DataCardValue15 là cột chứa địa chỉ email của kỹ thuật viên. Trong ví dụ này, ứng dụng canvas có tên Ứng dụng đặt hàng dịch vụ được sử dụng.
Environment.cr8b8_Notifytechnician1({ OrderID: DataCardValue17.Text, TechnicianEmail: DataCardValue15.Text }); Notify("The technician was notified!", NotificationType.Success, 2000);
- Lưu và Xuất bản những thay đổi của bạn.
Khi hành động thông báo cho kỹ thuật viên được chọn trong ứng dụng, thông báo trong ứng dụng sẽ được gửi đến kỹ thuật viên đã được chỉ định thực hiện lệnh dịch vụ. Thao tác trên thông báo sẽ mở thông tin chi tiết về đơn đặt hàng dịch vụ trong ngăn bên.
Mẫu plug-in tức thời với MSN Weather Connector
Plugin này trả về thông tin thời tiết hiện tại của một vị trí cụ thể bằng cách sử dụng trình kết nối thời tiết MSN.
Điều kiện tiên quyết:
- Điều kiện tiên quyết để tạo plug-in ít viết mã
- Kết nối MSN Weather được phép trong môi trường
Tạo tham chiếu kết nối cho MSN Weather nếu chưa có trong môi trường:
Sao chép đoạn mã:
Hoàn tất việc chỉnh sửa công thức bằng intellisense và sử dụng thuộc tính phản hồi của trình kết nối khi cần:
Lưu
Mẹo
Sử dụng hàm With() để nắm bắt toàn bộ phản hồi từ một hành động nếu bạn muốn truy cập các thuộc tính khác nhau mà phản hồi có thể có. Trong ví dụ dưới đây, có một tham số đầu vào Location
(chuỗi) và một tham số đầu ra Out
(chuỗi).
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."
})
Thực tiễn tốt nhất
Xử lý lỗi vòng lặp vô hạn trong plugin ít viết mã tự động
Không viết câu lệnh vá lỗi trên plugin tự động khi có sự kiện 'Cập nhật', trong đó bản vá sẽ diễn ra trên cùng một bảng với plugin. Điều này dẫn đến vòng lặp vô hạn và lỗi thực thi plugin.
Mẫu có vấn đề: Sử dụng công thức Patch()
sẽ kích hoạt một bản cập nhật khác.
Mẫu đề xuất: Sử dụng công thức Set()
để tránh vấn đề này.