Lưu ý
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử đăng nhập hoặc thay đổi thư mục.
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử thay đổi thư mụ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 phần bổ trợ mã thấp trong Microsoft Dataverse.
Quan trọng
- Các plug-in mã nguồn thấp tức thời không được ưu tiên và không được cung cấp dưới dạng tính năng. Các plug-in mã nguồn thấp tức thời được thay thế bằng các hàm. Thông tin thêm: Các chức năng trong Microsoft Dataverse (xem trước)
- Đâ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 sự cố về plugin thời gian chạy, hãy chỉnh sửa lại trình cắm low-code. Sau đó, các vấn đề về thông minh trên biểu thức công thức của bạn được hiển thị trong trình chỉnh sửa trình bổ trợ mã thấp. Làm theo hướng dẫn để khắc phục sự cố cũng được hiển thị, sau đó lưu lại trình cắm.
Thận trọng khi sử dụng bản vá sau phẫu thuật
Quá trình thực thi trình bổ trợ low-code của bạn có thể gặp phải lỗi này khi sử dụng Patch sau thao tác: 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 sau hoạt động 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. Một Patch hoạt động 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 lệnh Patch(MyTable, ThisRecord, ...)gọi, thao tác này có thể dẫn đến chu kỳ cập nhật đệ quy.
Dưới đây là một vài ví dụ về các thao tác có thể tránh 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ể nhận được lỗi sau:
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 các plugin low-code của Dataverse, đ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
PatchvàCollecthoạt động bên trong các plug-in của bạn, đặc biệt nếu bạn đã đăng ký các plug-in khác dựa trên bảng đó, điều này có thể ảnh hưởng đến hiệu suất của plug-in của bạn. - Giám sát hiệu suất. Theo dõi hiệu suất của các phần bổ trợ 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 các hướng dẫn này, bạn có thể đảm bảo rằng các phần bổ trợ low-code của mình chạy trơn tru trong môi trường Dataverse mà 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ý
Phản hồi không thành công nhận được từ APIM
Nếu bạn nhận được 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ợ, sau đó lưu lại. Lưu sẽ khởi tạo xác thực APIM và trình cắm 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