Microsoft Dataverse mẹo bổ trợ mã thấp và các sự cố đã biết (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.]

Bài viết này mô tả các mẹo và sự cố đã biết khi làm việc với các plugin mã thấp Microsoft 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.

Xử lý các vấn đề chung về thời gian chạy

Nếu bạn gặp phải vấn đề về plugin thời gian chạy, hãy chỉnh sửa lại plugin mã thấp. Sau đó, các vấn đề về intellisense trên biểu thức công thức của bạn sẽ được hiển thị trong trình chỉnh sửa plug-in mã ngắn. Làm theo hướng dẫn để khắc phục sự cố cũng được hiển thị, sau đó lưu lại phần bổ trợ.

Hãy thận trọng khi sử dụng bản vá sau phẫu thuật

Việc thực thi trình cắm mã ngắn của bạn có thể gặp phải lỗi này khi sử dụng Patch trong quá trình xử lý sau: Execution failed for PowerPlexPlugin: System.ServiceModel.FaultException 1[Microsoft.Xrm.Sdk.OrganizationServiceFault] This low-code plugin's execution was cancelled because the plugin logic caused an infinite loop. Correct the plugin logic and try again.

Việc sử dụng Patch trong kịch bản hậu phẫu phải được thực hiện một cách thận trọng để tránh các vòng lặp vô hạn. Thao tác Patch bắt đầu một giao dịch mới. Ví dụ: nếu trình kích hoạt cập nhật cho MyTable gọi Patch(MyTable, ThisRecord, ...) thì thao tác này có thể dẫn đến chu kỳ cập nhật đệ quy.

Dưới đây là một số ví dụ về thao tác có thể tránh được sự cố này:

  • Patch(CurrentTable, SomeOtherRecord, ... ) // For example, updating a manager's contact from a contact record.
  • Patch(OtherTable, SomeOtherRecord, ... ) // Operations on a completely different table.

Xử lý thời gian chờ hai phút

Đối với các thao tác tiếp tục trong hai phút hoặc lâu hơn, bạn có thể gặp lỗi này:

Execution failed for PowerPlexPlugin: System.ServiceModel.FaultException1[Microsoft.Xrm.Sdk.OrganizationServiceFault]: Operation not allowed as plugin execution exceeded maximum allowed time (Fault Detail is equal to Exception details: limit your callbacks .. Create, Update)

Khi làm việc với Dataverse plugin mã thấp, điều quan trọng là phải quản lý thời gian chờ hai phút một cách hiệu quả:

  • Giới hạn số lượng PatchCollect thao tác bên trong các trình cắm của bạn, đặc biệt nếu bạn có các trình cắm khác đã được đăng ký trên bảng đó, điều này có thể ảnh hưởng đến hiệu suất của các trình cắm của bạn.
  • Hiệu suất màn hình. Theo dõi hiệu suất của các plugin của bạn và cân nhắc sử dụng khả năng theo dõi và ghi nhật ký trong Dataverse để theo dõi thời gian thực thi và lỗi. Bằng cách làm theo những nguyên tắc này, bạn có thể đảm bảo rằng các plugin mã nguồn thấp của mình chạy trơn tru trong môi trường Dataverse không bị gián đoạn do thời gian chờ hai phút. Thông tin thêm: Theo dõi và ghi nhật ký

Không nhận được phản hồi từ APIM

Nếu bạn nhận được thông báo lỗi này, thông báo lỗi này có thể được trả về từ quản lý API (APIM), chỉ cần chỉnh sửa phần bổ trợ rồi lưu lại. Việc lưu sẽ khởi tạo xác thực APIM và plugin của bạn bắt đầu thực thi thành công.

Execution failed for PowerPlexPlugin: Failed response received from APIM; StatusCode: NotFound; ResponseContent: { "statusCode": 404, "message": "Resource not found" } Method: POST; RequestUri: https://canada-001.azure-apim.net/invoke; StatusCode: NotFound; ResponseContent: { "statusCode": 404, "message": "Resource not found" }; HeadersString: Headers - 'Access-Control-Allow-Methods': 'System.String[]'; 'Access-Control-Allow-Origin': 'System.String[]'; 'Access-Control-Max-Age': 'System.String[]'; 'Access-Control-Expose-Headers': 'System.String[]'; 'Date': 'System.String[]'; Access to APIM expires..edit and save the plugin

Xem thêm

Sử dụng các plug-in mã nguồn thấp trong Dataverse