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.

  1. Chạy ứng dụng Dataverse Accelerator, trên thanh lệnh, chọn Hành động mới > Plugin tức thì.

  2. Cung cấp tên hiển thị, chẳng hạn như tên công thức và mô tả.

  3. 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.

  4. 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: "" }
    
  5. 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 )  }
    
  6. Chọn Tiếp theo, sau đó chọn Lưu.

  7. 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.

  1. Chạy ứng dụng Dataverse Accelerator, trên thanh lệnh, chọn Hành động mới > Plugin tự động.
  2. Trong hộp Tên, nhập Kiểm tra trùng lặp.
  3. Đối với Bảng, hãy chọn Liên hệ.
  4. Để Chạy plugin này khi hàng là, hãy chọn Đã tạo.
  5. 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")
)
  1. Chọn Lưu.

Kiểm tra plug-in

  1. Để 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
  2. Tạo một hàng liên hệ.
  3. Tạo một liên hệ khác có cùng tên như trong bước trước đó.
  4. 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 .

  1. Tạo một plug-in tự động mới.

  2. 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
  3. 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" })
    );
    
  4. 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ệ.

  5. 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:

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

  1. Chạy ứng dụng Dataverse Accelerator, sau đó chọn +Plugin mới trong Plugin tự động.
  2. 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]
      )
      
  3. Chọn Nâng cao > Hậu phẫu thuật.
  4. 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

  1. Chạy ứng dụng tăng tốc, sau đó chọn Dataverse +Plugin mới trong Plugin tức thì .
  2. 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.
  3. 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
  4. 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'
             )
         ]
     )
    
  5. Chọn Tiếp theo.
  6. 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

  1. 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).
  2. 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.
  3. 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.
  4. 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);
    
    
    Thêm nút có công thức  Power Fx để gửi thông báo cho kỹ thuật viên
  5. LưuXuấ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.

Thông báo được gửi đến kỹ thuật viên nhận được trong ứng dụng

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:

  1. Tạo tham chiếu kết nối cho MSN Weather nếu chưa có trong môi trường: Tạo tham chiếu kết nối trong ứng dụng từ ngăn tham chiếu kết nối ở bên phải

  2. Sao chép đoạn mã: Sao chép hành động đoạn mã từ ngăn kết nối

  3. 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: Hoàn tất định nghĩa plug-in trong trình chỉnh sửa

  4. Lưu

  5. Kiểm tra plug-in

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. "Công thức có vấn đề trong các plugin tự động"

Mẫu đề xuất: Sử dụng công thức Set() để tránh vấn đề này. "Công thức được đề xuất trong các plugin tự động"

Xem thêm

ít viết mã plug-in Power Fx (bản xem trước)