Plug-ins & custom code
Plug-in là code C# chạy trong pipeline sự kiện của Dataverse — công cụ mạnh nhất cho logic phức tạp, hiệu năng cao, đồng bộ (synchronous). Đây là lãnh địa pro-dev (lập trình viên).
Plug-in là gì
Phần tiêu đề “Plug-in là gì”- Đoạn code C# đăng ký chạy khi một message xảy ra trên bảng (Create, Update, Delete, hoặc custom).
- Chạy trong event pipeline của Dataverse — can thiệp trước/sau khi dữ liệu được ghi.
Event pipeline (các stage)
Phần tiêu đề “Event pipeline (các stage)”| Stage | Khi chạy | Dùng cho |
|---|---|---|
| Pre-validation | Trước khi vào giao dịch | Kiểm tra/hủy sớm |
| Pre-operation | Trước khi ghi (trong giao dịch) | Sửa dữ liệu trước khi lưu |
| Post-operation | Sau khi ghi | Tạo/cập nhật bản ghi liên quan |
Sync vs Async
Phần tiêu đề “Sync vs Async”- Synchronous: chạy ngay, chặn/rollback được giao dịch — cho validate nghiêm ngặt, logic phải đảm bảo.
- Asynchronous: chạy nền (system job).
Khi nào cần plug-in (thay vì Power Automate)
Phần tiêu đề “Khi nào cần plug-in (thay vì Power Automate)”| Lý do | Vì sao |
|---|---|
| Logic phức tạp/đặc thù | C# linh hoạt hơn flow |
| Hiệu năng cao / khối lượng lớn | Plug-in nhanh hơn flow |
| Đồng bộ thật (chặn giao dịch) | Pre/Post-operation sync |
| Tích hợp sâu cần code | Gọi service, tính toán nặng |
Cân nhắc trước khi viết plug-in
Phần tiêu đề “Cân nhắc trước khi viết plug-in”- Khó hơn no-code: cần lập trình viên, kiểm thử, solution + ALM để triển khai.
- Ưu tiên business rule → Power Automate trước; plug-in khi thật sự cần.
- Các lựa chọn pro-dev khác: PCF (Power Apps Component Framework) cho control tùy biến, Web API cho tích hợp ngoài (webhooks/events).