Bỏ qua, đến nội dung

@digiforce-nc/plugin-action-import ​

Plugin cung cấp nhập dữ liệu từ file Excel (XLSX) - upload file Excel, validate, parse dữ liệu và tạo/cập nhật bản ghi trong collection, kèm template mẫu tải về.

Plugin này làm gì? ​

Hãy hình dung bạn nhận file Excel danh sách 500 khách hàng từ đối tác và cần nhập vào hệ thống. Plugin cung cấp quy trình hoàn chỉnh: tải template mẫu → điền dữ liệu → upload → validate → insert/update. Server xử lý file qua multer middleware, parse bằng exceljs rồi tạo/cập nhật bản ghi. Client cung cấp modal import nhiều bước.

Ba nhiệm vụ chính ​

#Nhiệm vụChi tiết
1Template mẫuHandler downloadXlsxTemplate tạo file Excel mẫu theo cấu hình field của collection
2Import dữ liệuHandler importXlsx nhận file upload (multipart), parse, validate rồi insert/update
3Error handlingCustom error classes ImportValidationError, ImportError báo cáo chi tiết dòng lỗi

Kiến trúc ​

Tổng quan ​

Plugin có cả server (handlers, multer middleware) và client (modal import, designer). Khi install, tự động thêm quyền importXlsx vào admin role strategy.

TầngVai tròThành phần
Client UIModal import + designer cấu hìnhImportModal, ImportDesigner
Upload MiddlewareXử lý multipart file upload@koa/multer
Import HandlerParse Excel, validate, insert/updateimportXlsx handler
Template HandlerTạo file template mẫudownloadXlsxTemplate handler
Error HandlerBáo cáo lỗi chi tiếtImportValidationError, ImportError

API endpoints ​

EndpointMethodMô tả
{collection}:importXlsxPOSTNhập dữ liệu từ file Excel (multipart/form-data)
{collection}:downloadXlsxTemplatePOSTTải file Excel mẫu theo cấu hình field

importXlsx - Request parameters ​

Tham sốKiểuMô tả
fileFileFile Excel (.xlsx) upload qua multipart
columnsJSONMapping cột Excel sang field collection
explainbooleanChế độ dry-run: chỉ validate, không insert

ACL - Phân quyền ​

QuyềnMô tả
importXlsxQuyền riêng biệt cho import, thêm vào admin role khi install
downloadXlsxTemplateCho phép tất cả user đã đăng nhập tải template

Luồng hoạt động ​

Error handling ​

Plugin định nghĩa hai custom error class:

Error classKhi nàoNội dung
ImportValidationErrorDữ liệu không hợp lệ (type, required, unique)Danh sách dòng + lý do lỗi
ImportErrorLỗi hệ thống (DB, parse)Mô tả lỗi kỹ thuật

Chế độ dry-run ​

Khi gửi explain: true, handler chỉ validate mà không insert/update - hữu ích để kiểm tra dữ liệu trước khi import thật.


Thành phần client ​

Thành phầnMô tả
ImportPluginProviderProvider đăng ký toàn bộ component vào plugin system
ImportModalModal nhiều bước: tải template → upload → mapping → kết quả
ImportDesignerCấu hình import action trong designer mode
ImportActionInitializerĐăng ký nút Import vào toolbar bảng
ImportActionWidgetWidget nút action trong uiCore

Dependencies ​

PackageVai trò
@digiforce-nc/actionsAction context types (peer)
@digiforce-nc/databaseDatabase ORM (peer)
@digiforce-nc/serverServer framework (peer)
@digiforce-nc/clientClient framework (peer)
exceljsParse và tạo file Excel (dev)
xlsxParser XLSX bổ trợ (dev)
@koa/multerMiddleware xử lý file upload (dev)
async-mutexSerialize import requests (dev)

Mục lục chi tiết ​