← Quay lại blog

Hệ thống báo cáo SQLVantage: khiến việc thiết kế và bàn giao báo cáo dữ liệu trở nên đơn giản, hiệu quả

经验分享 631 lượt đọc

Bài viết giới thiệu SQLVantage, một hệ thống báo cáo web nhẹ, sẵn sàng dùng ngay, hợp nhất toàn bộ vòng đời của báo cáo: truy vấn SQL, biểu mẫu tham số và trình bày kết quả. Nội dung bao gồm cách triển khai “giải nén là dùng” mà không cần cài môi trường chạy thêm, góc nhìn quản trị viên về quản lý người dùng, responsibility, báo cáo và License, cùng với trình thiết kế báo cáo gồm ba mô-đun SQL, FORM và HTML. Bài viết cũng đi qua quy trình của người dùng cuối, cơ chế xử lý yêu cầu bất đồng bộ, những chi tiết thiết kế đáng chú ý và các lưu ý khi áp dụng thực tế.

Hệ thống báo cáo SQLVantage: khiến việc thiết kế và bàn giao báo cáo dữ liệu trở nên đơn giản, hiệu quả

Một công cụ báo cáo web sẵn sàng dùng ngay, giúp bạn dễ dàng xử lý trọn chuỗi: truy vấn dữ liệu, biểu mẫu tham số và hiển thị kết quả.

Tại sao cần một hệ thống báo cáo độc lập?

Trong vận hành hằng ngày của doanh nghiệp, báo cáo dữ liệu là một mắt xích không thể thiếu. Dù là đối chiếu tài chính, phân tích bán hàng hay giám sát vận hành, hầu như phòng ban nào cũng cần đến các dạng xuất báo cáo đa dạng.

Tuy nhiên khi triển khai thực tế, chúng ta thường gặp phải những vấn đề sau:

  • Dữ liệu phân tán: SQL của báo cáo nằm rải rác trong email, tin nhắn chat, file script, khó quản lý tập trung và tái sử dụng;
  • Truyền tham số phiền phức: mỗi lần truy vấn lại phải ghép SQL thủ công hoặc sửa code, dễ xảy ra sai sót;
  • Định dạng xuất không thống nhất: Excel, PDF, HTML mỗi bên một kiểu, style khó bảo trì;
  • Kiểm soát quyền yếu: không rõ ai đã xem dữ liệu gì, nhật ký thao tác không minh bạch;
  • Phát triển lặp lại: với những nhu cầu báo cáo tương tự, dự án nào cũng phải viết lại code frontend và backend từ đầu.

Vì vậy, một hệ thống báo cáo nhẹ có khả năng quản lý tập trung định nghĩa báo cáo, hỗ trợ truy vấn tham số hóa, tự động sinh kết quả đa định dạng và có cơ chế phân tách quyền truy cập trở nên thực sự cần thiết.

Gần đây tôi có dịp tiếp xúc với một hệ thống báo cáo tên là SQLVantage (phiên bản v1.0.2, phát hành ngày 2026-07-15), và nó giải quyết trúng những điểm đau nói trên. Tư tưởng thiết kế của nó rất rõ ràng: dùng một quy trình chuẩn để nối liền ba việc “truy vấn SQL, biểu mẫu tham số, hiển thị kết quả”, khiến toàn bộ vòng đời của báo cáo đều có dấu vết để truy vết.

Trong bài này, dựa trên tài liệu chính thức của hệ thống, tôi sẽ hệ thống lại thiết kế cốt lõi và lộ trình sử dụng, giúp bạn nhanh chóng đánh giá xem nó có phù hợp với đội ngũ của mình hay không.

Một. SQLVantage là gì?

SQLVantage là một hệ thống báo cáo thuần kiến trúc web. Các đặc điểm cốt lõi của nó:

  • Phía trình duyệt không cần cài bất kỳ plugin nào, chỉ cần trình duyệt hiện đại là truy cập được;
  • Phía máy chủ chỉ cần một file thực thi + thư mục cấu hình, không phải cài thêm môi trường runtime nào (như Java, Python, Node.js...);
  • Hỗ trợ triển khai trên cả Windows và Linux;
  • Mặc định kết nối cơ sở dữ liệu Oracle (đặc biệt phù hợp với bối cảnh Oracle EBS), nhưng cũng có tiềm năng mở rộng sang các cơ sở dữ liệu khác.

Nhìn nhanh các khái niệm cốt lõi

Khái niệm Mô tả
Báo cáo Một báo cáo = truy vấn SQL + biểu mẫu tham số (FORM) + trình bày kết quả (HTML) + ba file cấu hình JSON định dạng, thuộc về một “responsibility”
Responsibility Danh mục phân loại báo cáo, tương ứng với khái niệm responsibility trong Oracle EBS, dùng để nhóm và hiển thị báo cáo theo mô-đun cho người dùng
Tham số Điều kiện truy vấn (ngày tháng, khách hàng, tổ chức...), sau khi người dùng submit sẽ được bind vào SQL dưới dạng tham số đặt tên
Yêu cầu Một tác vụ chạy báo cáo cụ thể của người dùng; hệ thống thực thi bất đồng bộ và sinh file kết quả
Bản quyền File License, kiểm soát giới hạn số lượng báo cáo và thời hạn sử dụng

Vai trò người dùng

Hệ thống chia thành hai vai trò, cổng truy cập và quyền hạn tách biệt hoàn toàn:

  • Quản trị viên (/admin/login): quản lý người dùng, responsibility, báo cáo, bản quyền, cấu hình hệ thống, có thể xem yêu cầu của mọi người dùng;
  • Người dùng thường (/login): chọn báo cáo, điền tham số, gửi yêu cầu, xem yêu cầu của chính mình, tải kết quả, đổi mật khẩu.

Hai. Cài đặt triển khai: thực sự làm được “giải nén là dùng”

Cách triển khai của SQLVantage có thể gọi là rất “thực tế”.

Windows

Giải nén bản phát hành vào thư mục bất kỳ (ví dụ D:\SQLVantage), nhấn đúp vào SQLVantage.exe là khởi động được. Mặc định lắng nghe tại 127.0.0.1:8080, mở trình duyệt lên là truy cập được ngay.

Linux

Giải nén vào /opt/sqlvantage, cấp quyền thực thi rồi chạy nền bằng nohup hoặc systemd. Cũng dùng cổng mặc định 8080.

Tự động khởi tạo ở lần chạy đầu tiên

Ở lần khởi động đầu tiên, hệ thống tự động hoàn tất các thao tác sau, rất thân thiện với người vận hành:

  1. Kiểm tra sự tồn tại của conf/data.dat (đây là cơ sở dữ liệu nghiệp vụ đi kèm bản phát hành);
  2. Tự tạo bốn bảng: user, responsibility, report, request;
  3. Tự tạo tài khoản quản trị viên root với mật khẩu ban đầu SQLVantage (nhớ đổi ngay sau khi đăng nhập);
  4. Nếu thiếu file bản quyền, hệ thống sẽ in cảnh báo nhưng vẫn chạy được (chỉ bị giới hạn số lượng báo cáo).

Thiết kế này đưa chi phí “dùng thử từ con số 0” xuống mức thấp nhất.

Ba. Góc nhìn quản trị viên: quản lý toàn bộ vòng đời báo cáo

3.1 Quản lý người dùng và responsibility

Quản trị viên có thể tạo người dùng thường (vai trò normal), đặt trạng thái active hoặc inactive (khi nhân viên nghỉ việc chỉ cần vô hiệu hóa, không cần xóa tài khoản).

Quản lý responsibility tương ứng với khái niệm responsibility của Oracle EBS, cũng có thể tạo thủ công. Báo cáo buộc phải gắn vào một responsibility; như vậy ở phía người dùng thường, menu báo cáo sẽ tự động nhóm hiển thị theo responsibility, trải nghiệm rất rõ ràng.

3.2 Quản lý báo cáo: điều khiển theo trạng thái

Báo cáo có ba trạng thái:

  • Draft (nháp): giai đoạn thiết kế, người dùng không thấy;
  • Release (đã phát hành): người dùng thấy và có thể chạy;
  • Discard (đã bãi bỏ): người dùng không thấy, nhưng vẫn lưu lại bản ghi.

Báo cáo đã phát hành không thể xóa trực tiếp, phải chuyển về trạng thái nháp hoặc bãi bỏ trước — thiết kế này giúp tránh rất tốt việc xóa nhầm báo cáo đang chạy production.

Trang danh sách hỗ trợ “nhấn đúp vào ô để sửa trực tiếp” tên, mô tả, trạng thái — một chi tiết nhỏ nhưng nâng cao hiệu quả thao tác.

3.3 Quản lý bản quyền (License)

File bản quyền conf/license.dat kiểm soát giới hạn số lượng báo cáo và thời hạn hiệu lực. Khi chưa có bản quyền hoặc đã hết hạn, hệ thống chỉ cho tạo tối đa 3 báo cáo; vượt quá sẽ không thể tạo mới hay gửi yêu cầu.

Cơ chế này rất hữu ích cho bản thương mại hoặc kịch bản dùng thử nội bộ — vừa giữ nguyên đầy đủ chức năng, vừa đặt một ngưỡng giới hạn hợp lý.

Bốn. Trình thiết kế báo cáo: đây mới là điểm sáng cốt lõi

Nếu phải nói một chức năng của SQLVantage đáng bỏ công tìm hiểu nhất, chắc chắn đó là trình thiết kế báo cáo của nó.

Nó phân rã quá trình phát triển báo cáo thành ba mô-đun độc lập nhưng liên động, và hoàn tất tất cả trong một giao diện duy nhất.

4.1 Bố cục trình thiết kế

Vào danh sách báo cáo, nhấn nút “Code” (màu tím) trên dòng báo cáo, một trình thiết kế cỡ lớn chiếm khoảng 98% màn hình sẽ hiện ra. Giao diện chia thành:

  • Phần trên: dropdown chuyển chế độ (SQL / FORM / HTML) + nút “Lưu tất cả”;
  • Cột trái: trình soạn thảo code (nội dung thay đổi theo chế độ);
  • Cột phải: panel cấu hình động (hiển thị bảng cấu hình và xem trước thời gian thực khác nhau tùy chế độ).

Bố cục “code bên trái + cấu hình bên phải + xem trước thời gian thực” này rất trực quan với lập trình viên.

4.2 Mô-đun SQL: định nghĩa nguồn dữ liệu

Viết SQL

Dùng cú pháp Oracle, điều kiện truy vấn dùng placeholder tham số đặt tên :ten_tham_so:

SELECT company_name, ou_id, amount FROM fnd_ou_tl WHERE ou_id = :P_OU_ID

Ở đây P_OU_ID phải trùng khớp với tên tham số định nghĩa trong mô-đun FORM.

Cấu hình metadata cột — chìa khóa của xuất Excel

Panel bên phải cho phép cấu hình cho từng cột:

  • field: tên cột trả về từ SQL;
  • title: tiêu đề hiển thị (cũng là tiêu đề cột trong Excel);
  • type: text / number / percent / date / month / time / datetime;
  • precision: số chữ số thập phân;
  • format: định dạng tùy chỉnh của Excel (ví dụ #,##0.00);
  • align: căn lề.

Cấu hình này quyết định trực tiếp độ chuyên nghiệp của file Excel xuất ra — tiêu đề cột bản địa hóa, số căn phải, dấu phân cách hàng nghìn, định dạng phần trăm, tất cả xử lý một lần ngay tại đây.

Nói cách khác, chỉ cần cấu hình xong metadata cột ở đây, chất lượng xuất Excel sẽ không còn phụ thuộc vào code bổ sung phía backend.

4.3 Mô-đun FORM: thiết kế tham số truy vấn

Đây là cửa ngõ tương tác của báo cáo. Mỗi dòng trong “bảng cấu hình tham số” bên phải định nghĩa một tham số truy vấn:

Trường Mô tả
Tên tham số field Phải trùng khớp chính xác với :ten_tham_so trong SQL
Nhãn hiển thị label Chữ hiển thị trên biểu mẫu
Loại thành phần type text / number / select / radio / date / month / datetime / hidden / temp
Tùy chọn tĩnh static_options Định dạng khóa:giá_trị,khóa:giá_trị
API động / SQL Hỗ trợ placeholder {ten_bien} để tạo liên động tham số

Liên động tham số (lọc phụ thuộc)

Đây là một tính năng rất thực dụng của mô-đun FORM: khi dropdown phía dưới phụ thuộc vào tham số phía trên (ví dụ sau khi “chọn tổ chức” mới tải được “danh sách phòng ban”), có thể tham chiếu placeholder kiểu {P_OU_ID} trong api_url hoặc query_sql.

Khi người dùng thay đổi giá trị phía trên, hệ thống sẽ tự động làm mới các tùy chọn phía dưới — không cần viết thêm một dòng JavaScript nào.

Bên dưới panel phải còn có vùng xem trước thời gian thực: cấu hình tham số xong là thấy được hiệu ứng render thực tế, và chỉ với một nút có thể “sao chép và áp dụng” mã HTML được sinh ra vào trình soạn thảo.

4.4 Mô-đun HTML: trình bày kết quả

Sau khi báo cáo chạy xong, kết quả sẽ được trình bày cho người dùng dưới hình thức nào? Mô-đun HTML đảm nhận việc định nghĩa lớp này.

“Cấu hình thành phần hiển thị HTML” bên phải hỗ trợ định nghĩa nhiều khối hiển thị, mỗi khối gồm:

  • ID của container;
  • Tiêu đề;
  • Độ rộng lưới (1~12);
  • Loại thành phần: table (bảng), chart (biểu đồ), card (thẻ chỉ số), custom (container tùy chỉnh);
  • Loại biểu đồ (line / bar);
  • Ánh xạ trường trục X/Y.

Cuối cùng, khi người dùng tải kết quả HTML, hệ thống sẽ render động một trang hoàn chỉnh gồm bảng, biểu đồ và thẻ KPI, và các tham số truy vấn cũng được hiển thị lại phía trên kết quả.

Lớp thiết kế này giúp “phần hiển thị” của báo cáo cũng có khả năng cấu hình hóa, không còn phải viết riêng trang frontend cho từng báo cáo.

4.5 Quy trình phát hành

Toàn bộ quy trình đi thẳng một line:

  1. Tạo báo cáo mới (chọn trạng thái Draft);
  2. Vào trình thiết kế, lần lượt hoàn tất cấu hình SQL → FORM → HTML;
  3. Nhấn “Lưu tất cả”;
  4. Quay lại danh sách báo cáo, đổi trạng thái sang Release;
  5. Người dùng thường đăng nhập và có thể thấy, chạy báo cáo đó trong menu responsibility tương ứng.

Năm. Góc nhìn người dùng thường: chọn báo cáo → điền tham số → chờ kết quả

Lộ trình của người dùng thường rất gọn gàng:

  1. Đăng nhập trang chủ cổng (hỗ trợ tài khoản cục bộ hoặc xác thực qua Oracle EBS ERP);
  2. Nhấn “Yêu cầu báo cáo mới”;
  3. Duyệt menu báo cáo được nhóm theo responsibility, hoặc tìm theo tên;
  4. Chọn báo cáo, điền biểu mẫu tham số;
  5. Submit, hệ thống thực thi bất đồng bộ;
  6. Xem trạng thái trong danh sách “Yêu cầu của tôi”, khi hoàn tất tải kết quả Excel / HTML / JSON / TEXT qua dropdown “Output”.

Chuyển trạng thái của yêu cầu

Queued (đang xếp hàng) → Processing (đang xử lý) → Success (thành công) → Error (thất bại) → Terminated (chấm dứt do quá thời gian)

Hệ thống thăm dò tác vụ trong hàng đợi mỗi 3 giây ở nền, mức đồng thời điều chỉnh được, mặc định chạy cùng lúc tối đa 3 tác vụ. Thời gian chờ mặc định 30 phút, có thể chỉnh trong cấu hình.

Sáu. Những chi tiết thiết kế đáng chú ý

1. Báo cáo = ba phần code + ba JSON định dạng

SQL, FORM, HTML mỗi cái đều có hai loại dữ liệu là “code” và “JSON định dạng”, mở rộng không gian cho quản lý phiên bản và tái sử dụng template về sau.

2. Xuất Excel phụ thuộc chặt vào metadata cột

Đây không phải kiểu “xuất ra rồi mới hậu xử lý”, mà định dạng của Excel được quyết định ngay từ giai đoạn thiết kế. Điều đó nghĩa là: người thiết kế báo cáo kiểm soát hoàn toàn chất lượng đầu ra, không phải dựa vào script xử lý lần hai bổ sung.

3. Liên động tham số không cần viết JavaScript

Cơ chế placeholder thực hiện sự phụ thuộc giữa các tham số, hạ thấp rào cản phát triển frontend.

4. Phân tách quyền đối với yêu cầu

Người dùng thường chỉ thấy bản ghi yêu cầu của chính mình; quản trị viên xem được tất cả. Khi người dùng đăng nhập qua ERP gửi yêu cầu, hệ thống còn kiểm tra quyền tổ chức OU/ORG, ngăn truy cập vượt quyền.

5. Lưu trữ dữ liệu minh bạch

Toàn bộ dữ liệu nghiệp vụ được lưu trong conf/data.dat, file kết quả sinh ra trong thư mục data/. Khi di trú chỉ cần sao chép hai thư mục conf/ và data/ là xong, rất rõ ràng.

Bảy. Kịch bản phù hợp và lưu ý

Phù hợp với những kịch bản nào?

  • Quản lý tập trung báo cáo dữ liệu nội bộ doanh nghiệp, đặc biệt là các đội ngũ đã dùng Oracle EBS;
  • Cần bàn giao nhu cầu báo cáo nhanh chóng, đồng thời muốn định nghĩa, việc chạy và kết quả báo cáo đều có bản ghi truy vết được;
  • Muốn giảm chi phí phát triển báo cáo, để nhân viên nghiệp vụ hoặc DBA biết SQL tự tay hoàn tất cấu hình báo cáo.

Những điểm cần lưu ý

  • Phiên bản hiện tại mặc định tương thích Oracle; nếu dùng cơ sở dữ liệu khác (như MySQL, PostgreSQL) cần tự thích ứng;
  • Số lượng báo cáo khi chưa có bản quyền bị giới hạn ở 3; để dùng chính thức cần nhập file bản quyền hợp lệ;
  • Các cấu hình hệ thống (như cổng, mật khẩu Oracle) sau khi sửa cần khởi động lại dịch vụ mới có hiệu lực (trừ cấu hình timeout phiên).

Lời kết

Ấn tượng chung của tôi về SQLVantage là: thực tế, tiết chế, dễ dùng.

Nó không mù quáng chạy theo “to và toàn diện”, mà xoay quanh kịch bản cốt lõi là “báo cáo”, nối các mắt xích then chốt — quản lý SQL, tương tác tham số, trình bày kết quả, phân tách quyền — thành một chuỗi lộ trình rõ ràng, trọn vẹn.

Với các đội ngũ đang đau đầu vì quản lý báo cáo, nó mang đến một phương án tham khảo đáng giá — vừa dùng trực tiếp như công cụ production, vừa làm mẫu học tập để hiểu tư tưởng thiết kế của một hệ thống báo cáo web nhẹ.

Nếu bạn cũng đang tìm một hệ thống báo cáo đơn giản, dễ dùng, tự triển khai được, hãy thử bắt đầu với SQLVantage.

Bài viết được biên soạn dựa trên tài liệu hướng dẫn chính thức của SQLVantage v1.0.2 (phát hành 2026-07-15). Để biết thêm chi tiết, có thể tham khảo bộ tài liệu đa ngôn ngữ kèm theo dự án (thư mục docs/).