Tự Động Hóa Cấp Cao Bằng Scripts (Mã Lệnh)
Khi mọi thiết lập No-Code (không dùng code) đã đạt tới giới hạn, bạn sẽ cần đến thanh gươm sắc bén nhất của ERPNext: Mã lệnh (Scripts).
Bài học cuối cùng này dành cho những Quản trị viên có tư duy Logic (hoặc biết chút ít lập trình). Nó giúp bạn chèn các đoạn mã trực tiếp vào hệ thống để "bẻ cong" phần mềm, ép nó phải phục vụ những luật chơi khắc nghiệt nhất của bạn.
1. Client Script (Phép Thuật Giao Diện Front-end)
Client Script (Viết bằng JavaScript) là những đoạn mã chạy ngay trên Trình duyệt web của người dùng. Nó cực kỳ nhạy bén và phản hồi tức thì với mọi thao tác gõ phím.
Tình huống: Cảnh báo giá bán bị hớ.
Nhân viên Sales đang làm Đơn đặt hàng, họ nhập một sản phẩm giá bán 100.000đ. Nhưng giá nhập kho của món đó đang là 120.000đ. Nếu lưu lại sẽ bị lỗ vốn.
Bạn có thể viết một đoạn Client Script ngắn:
- Sự kiện: Bắt ngay khoảnh khắc nhân viên vừa gõ xong số
100000và chuyển sang ô khác. - Xử lý: Script lập tức so sánh
Rate(Giá bán) vớiValuation Rate(Giá vốn). - Hành động: Vì 100 < 120, Script lập tức nổ một Pop-up hộp thoại cảnh báo: "Chú ý: Giá bán hiện đang thấp hơn giá vốn. Hãy kiểm tra lại!".
Nhờ Client Script, nhân viên được cảnh báo sửa sai ngay lập tức mà chưa cần bấm nút Lưu.
2. Server Script (Hàng Rào Sắt Back-end)
Dù có cảnh báo Pop-up, một nhân viên bướng bỉnh vẫn có thể phớt lờ và bấm nút Save (Lưu). Lúc này, dữ liệu sẽ được gửi lên Máy chủ (Server).
Server Script (Viết bằng Python) chính là người gác cổng cuối cùng ôm trọn quyền sinh sát đối với Database.
Tình huống: Khóa cứng không cho bán lỗ.
Để ngăn chặn hoàn toàn việc nhân viên làm liều, bạn viết một đoạn Server Script:
- Sự kiện: Chạy ngay
Before Save(Trước khi hệ thống kịp ghi xuống ổ cứng). - Xử lý: Script quét lại toàn bộ mặt hàng trong bảng. Phát hiện có 1 mặt hàng Giá bán < Giá vốn.
- Hành động: Script kích hoạt hàm
frappe.throw(). Hệ thống sẽ ném ra một Exception (Ngoại lệ báo lỗi nghiêm trọng màu đỏ lừ): "LỖI: Nghiêm cấm bán dưới giá vốn. Tài liệu đã bị từ chối lưu!".
Dữ liệu xấu đã bị chặn đứng ngay trước ngưỡng cửa Database, bảo vệ tuyệt đối an toàn tài sản của công ty.
3. Server Script Tự Động Xử Lý Dữ Liệu
Không chỉ dùng để chặn lỗi, Server Script còn dùng để "tạo ra phép màu".
Tình huống: Chúc mừng sinh nhật tự động.
Thay vì dùng module Cron Job thông thường, bạn viết một Server Script chạy vào đúng 12h đêm hàng ngày.
- Script tự động quét toàn bộ danh sách Khách hàng (
Customer), tìm những ai có trườngDate of Birthtrùng với ngày hôm nay. - Với mỗi người tìm được, Script tự động sinh ra một mã Voucher 500k (Dùng module Gift Card ở Phase 8) và tự động gọi API của Zalo ZNS bắn tin nhắn: "Chúc mừng sinh nhật anh A, Vicore tặng anh voucher 500k...".
Sức mạnh của Scripts trong ERPNext là không có giới hạn. Nó biến một hệ thống phần mềm đóng băng trở thành một thực thể sống động, có tư duy và biết cách bảo vệ doanh nghiệp của bạn 24/7!