← Quay lại blog

Tạm biệt nỗi đau phát triển báo cáo EBS: Tôi nén quy trình phát triển rườm rà xuống còn 5 phút với SQLVantage

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

Một kỳ cựu gắn bó hơn 18 năm với Oracle EBS chia sẻ cách thoát khỏi cơn ác mộng phát triển báo cáo EBS: thủ tục đăng ký rườm rà (Executable, Concurrent Program, value set, request group) cùng nỗi ám ảnh xuất ra file văn bản buộc người dùng phải tách cột thủ công trong Excel. Anh đã xây dựng SQLVantage, một bộ công cụ tối giản giúp nhà phát triển chỉ cần viết SQL và cấu hình tham số, còn nền tảng sẽ cho ra file Excel (.xlsx) hoặc JSON trong khoảng 5 phút. So sánh thực tế cho thấy cách truyền thống mất khoảng 80 phút so với 3 phút của SQLVantage, đồng thời tác giả báo cáo thời gian bàn giao trung bình giảm trên 80% và mức độ hài lòng của người dùng tăng vượt bậc.

Tạm biệt nỗi đau phát triển báo cáo EBS: Tôi nén quy trình phát triển rườm rà xuống còn 5 phút với SQLVantage

Là một lão làng đã vật lộn hơn 18 năm trong lĩnh vực Oracle EBS, tôi quá hiểu cái cảm giác "bị các báo cáo văn bản sai khiến" là như thế nào.

Mỗi khi bộ phận kinh doanh cần gấp một con số, chúng tôi phải trải qua một chuỗi "động tác chuẩn": trao đổi yêu cầu, viết SQL, đăng ký chương trình đồng hành (concurrent program), treo lên vai trò (responsibility). Vất vả phát triển xong, phía người dùng lại phải Lưu dưới dạng văn bản → Dán vào Excel → Tách cột, cứ mỗi khi một trường nào đó (chẳng hạn mô tả vật tư) vượt quá độ rộng đã đặt trước và tự xuống dòng, toàn bộ việc tách cột trong Excel lại loạn cả lên.

Nhịp sinh hoạt "phát triển 5 phút, chữa cháy 2 tiếng" này, tôi tin là ký ức chung của tất cả những ai làm EBS.

Chính nỗi đau lặp đi lặp lại từng ngày ấy đã khiến tôi quyết định không nhẫn nhịn nữa. Tôi dành thời gian rảnh rỗi, xây dựng từ con số không một bộ công cụ phát triển báo cáo tùy chỉnh riêng cho Oracle EBS — SQLVantage. Nó không phải công nghệ mang tính đột phá, nhưng quả thực đã giải cứu tôi và đội của mình khỏi quy trình rườm rà ấy.

1. Nỗi đau nhiều năm: Tất cả chúng ta đều chán ngán cực hình "Văn bản → Excel"

Trước khi đi sâu giới thiệu SQLVantage, tôi muốn dành chút thời gian để điểm lại toàn cảnh những "điểm chán" mà chúng tôi đã gặp phải trong nhiều năm phát triển báo cáo EBS. Tôi tin rằng, nếu bạn từng làm phát triển EBS, những tình huống dưới đây chắc chắn sẽ khiến huyết áp của bạn tăng vọt.

Nỗi đau thứ nhất: "Tám mươi mốt kiếp nạn" của quy trình phát triển

Một quy trình phát triển báo cáo EBS thông thường diễn ra như sau:

  1. Viết code: Tinh chỉnh SQL cho xong trong PL/SQL hoặc Report Builder.
  2. Đăng ký Executable: Đăng nhập EBS, tìm đến "Định nghĩa file thực thi", điền một loạt trường.
  3. Định nghĩa Concurrent Program: Tạo thêm một Concurrent Program, gắn file thực thi vừa tạo lên đó.
  4. Định nghĩa tham số và value set: Gắn value set cho từng điều kiện truy vấn, xử lý các quy tắc "có bắt buộc không", "giá trị mặc định".
  5. Gắn vào request group: Để test, còn phải gắn báo cáo vào vai trò của mình, hoặc nhờ quản trị viên thao tác.
  6. Gửi request, xem log: Chạy bị lỗi à? Đi xem file log; tham số sai à? Gửi lại lần nữa.

Trọn bộ "combo" này đánh xong, ít nhất cũng 20 phút trôi qua. Nếu chỉ là một nhu cầu truy vấn đơn giản, khoảng thời gian này thậm chí còn dài hơn cả lúc viết SQL. Tôi gọi mô hình này là "nghi thức kém hiệu quả" — chúng ta buộc phải tốn rất nhiều thời gian để thỏa mãn các quy chuẩn của hệ thống, thay vì thực sự giải quyết nhu cầu dữ liệu của người dùng.

Nỗi đau thứ hai: Đầu ra "thời đồ đá"

Đây là khâu khiến tôi sụp đổ nhất.

Người dùng không quan tâm báo cáo của bạn phát triển bằng RDF hay XML Publisher, họ chỉ quan tâm một điều: cuối cùng có đưa được cho tôi một file Excel chỉn chu không? Nhưng đầu ra gốc của EBS là gì?

  • File văn bản: Dù là .txt hay .out, bản chất đều là văn bản chiều rộng cố định hoặc phân tách bằng dấu phẩy.
  • Excel giả: Kể cả Excel do BI Publisher tạo ra, cũng thường xuyên mắc các vấn đề như ô gộp, định dạng sai lệch.

Thế là thao tác hằng ngày của người dùng biến thành "người khuân vác dữ liệu":

  1. Mở file đầu ra của báo cáo (định dạng văn bản).
  2. Ctrl+A bôi đen toàn bộ, Ctrl+C sao chép.
  3. Mở Excel, Ctrl+V dán vào cột đầu tiên.
  4. Bấm "Dữ liệu" -> "Tách cột", chọn "Chiều rộng cố định" hoặc "Ký tự phân tách".
  5. Cơn ác mộng ập đến: Nếu một trường nào đó trong báo cáo (chẳng hạn "mô tả dài của vật tư") có nội dung quá dài, vượt quá độ rộng đã đặt trước, nó sẽ tự động xuống dòng. Việc xuống dòng này, trong file văn bản, đồng nghĩa với "một dòng mới". Khi dán vào Excel và tách cột, cả bản ghi hoàn chỉnh này sẽ bị xé nhầm thành hai dòng, thậm chí nhiều dòng, khiến toàn bộ dữ liệu phía sau lệch hết!

Minh họa báo cáo EBS xuống dòng gây lệch tách cột

(Do xuống dòng khiến việc tách cột trong Excel bị lệch, đây là nỗi đau muôn thuở trong lòng mọi người dùng EBS)

Để sửa một lỗi như thế, người dùng có thể phải tự tay chỉnh sửa hàng trăm dòng dữ liệu, hoặc điều chỉnh lại độ rộng báo cáo và chạy lại một lần nữa. Khi công việc kinh doanh đang gấp gáp, một tình huống như vậy đủ để khiến người ta sụp đổ ngay tại chỗ.

Nỗi đau thứ ba: Tốc độ phản hồi không theo kịp "nền kinh tế hiện đại"

Môi trường kinh doanh hiện nay đòi hỏi phản hồi ở mức "từng phút". Quản lý kinh doanh nói: "Tôi muốn xem tồn kho thời gian thực của TOP 10 SKU khu vực miền Đông hôm nay." Nếu trong khuôn khổ EBS truyền thống, điều này đồng nghĩa với cả một quy trình phát triển, kiểm thử, triển khai hoàn chỉnh. Chờ đến lúc bạn treo báo cáo lên được, có lẽ đã sang ngày hôm sau, thời điểm quyết định tốt nhất đã bị bỏ lỡ từ lâu.

Chúng ta đang dùng quy trình phát triển "thác nước" của 20 năm trước để ứng phó với nhu cầu kinh doanh "linh hoạt" hiện tại. Sự lệch nhịp này chính là cội nguồn nỗi đau của chúng ta.


2. Phá cục: Triết lý "tối giản" của SQLVantage

Đã biết quy trình chuẩn quá chậm, vậy tại sao chúng ta không tự làm ra một cái bánh xe cho riêng mình?

Triết lý thiết kế của SQLVantage rất thuần khiết: loại bỏ mọi gánh nặng quy trình không cần thiết trong phát triển báo cáo tùy chỉnh EBS, chỉ giữ lại hai việc cốt lõi nhất — viết cho tốt SQL, cấu hình tham số.

Nó không phải công cụ thay thế trình quản lý đồng hành (Concurrent Manager) của EBS, mà là một nền tảng nhẹ, hướng tới người dùng cuối, chuyên tạo và bàn giao báo cáo nhanh chóng.

Lợi thế cốt lõi thứ nhất: Tốc độ phát triển cực nhanh

Trong hệ sinh thái SQLVantage, việc phát triển một báo cáo được nén đến mức tối đa:

  1. Viết SQL: Bạn tinh chỉnh script SQL cuối cùng trong PL/SQL Developer hoặc Toad.
  2. Cấu hình đơn giản: Chỉ cần định nghĩa "tên báo cáo", "câu lệnh SQL", "tên tham số" (chẳng hạn ngày bắt đầu, ngày kết thúc) trong màn hình cấu hình.
  3. Hiệu lực một chạm: Lưu cấu hình. Chỉ có vậy.

Bạn không cần định nghĩa Executable, không cần đăng ký Concurrent Program, không cần thiết lập value set, không cần treo request group.

Màn hình cấu hình tối giản của SQLVantage

(Màn hình cấu hình SQLVantage: chỉ cần quan tâm SQL và tham số, mọi thứ khác đều tự động hóa)

Trước đây cần hơn nửa tiếng cho quy trình đăng ký triển khai, giờ chỉ cần trong vòng 5 phút là xong. Hãy dành thời gian quý báu cho việc tối ưu logic SQL và trao đổi nghiệp vụ, thay vì tiêu tốn vào những cú click rườm rà trên màn hình.

Lợi thế cốt lõi thứ hai: Hỗ trợ Excel/JSON gốc

Đây chính là tuyệt chiêu giúp SQLVantage giải quyết nỗi đau lớn nhất.

Người dùng phía trước khi chạy báo cáo sẽ không còn nhìn thấy cái file văn bản đau đầu kia nữa, mà là file Excel (.xlsx) trực tiếp, sạch sẽ, đẹp đẽ hoặc dữ liệu JSON có cấu trúc.

  • Không cần tách cột: Hệ thống trực tiếp gọi API nền để ghi tập kết quả truy vấn vào các ô của Excel, mỗi trường tương ứng một cột, mỗi dòng dữ liệu tương ứng một dòng.
  • Không cần làm sạch: Kể cả khi một ô nào đó chứa văn bản siêu dài, ký tự xuống dòng, thuộc tính ô của Excel hoàn toàn hỗ trợ tự động xuống dòng và điều chỉnh độ rộng cột, tính toàn vẹn dữ liệu được giữ 100%.
  • Định dạng thân thiện: Số, ngày tháng, tiền tệ tự động khớp định dạng, người dùng cầm về là có thể dùng ngay cho pivot, sắp xếp, tính toán công thức.

Từ đây, tạm biệt hoàn toàn việc tách cột văn bản, tạm biệt tình trạng dữ liệu lệch do xuống dòng.

Lợi thế cốt lõi thứ ba: Tiện lợi và linh hoạt tột cùng

  • Truy vấn là có ngay: Với nhu cầu đột xuất của người dùng nghiệp vụ, tôi có thể cấu hình một báo cáo tạm thời ngay trong hậu trường SQLVantage, gửi link cho người dùng, anh ta mở ra là thấy kết quả và một chạm tải Excel.
  • Quản lý connection pool: Hậu trường SQLVantage duy trì một connection pool hiệu quả với cơ sở dữ liệu EBS, dù lượng truy cập đồng thời lớn vẫn xuất ra ổn định.
  • Định dạng dữ liệu linh hoạt: Không chỉ hỗ trợ Excel, với các tình huống cần kết nối hệ thống ngoài (như trung tâm dữ liệu, màn hình BI), xuất trực tiếp định dạng JSON, nâng cao đáng kể hiệu quả tích hợp hệ thống.

3. So sánh tình huống: Một câu chuyện có thật

3 giờ chiều thứ Ba tuần trước, giám đốc tài chính hối hả tìm tôi, cần một "bảng tổng hợp kỳ hạn nợ AR xuyên tổ chức theo dòng sản phẩm", 5 giờ chiều họp phải dùng.

Trước đây (cách EBS truyền thống): Tôi lập tức mở Toad viết SQL, kiểm soát truy cập đa tổ chức (MOAC), quy đổi ngoại tệ, logic nhóm theo kỳ hạn nợ; viết xong và debug xong đã là 3 giờ 50 phút. Rồi tôi bắt đầu:

  • Đăng nhập vai trò quản trị hệ thống EBS, định nghĩa Executable.
  • Định nghĩa Concurrent Program, cấu hình từng tham số một trong danh sách tham số dài ngoằng đó (tổ chức, loại tiền, ngày chốt số liệu).
  • Thiết lập value set, làm xác thực.
  • Treo lên vai trò tài chính. Xong xuôi tất cả, ngẩng đầu lên nhìn: 4 giờ 40 phút. Gửi request, chạy mất 2 phút, tải file văn bản đầu ra xuống, mở ra xem — vì tên công ty quá dài, tách cột sai bét. Điều chỉnh độ rộng báo cáo (nếu có quyền), chạy lại, giờ đã 5 giờ 10 phút. Cuộc họp tiêu tan, tôi bị mắng.

Hôm nay (cách SQLVantage): 3 giờ chiều, tôi copy SQL đã tinh chỉnh xong (bao gồm toàn bộ logic phức tạp) vào trang cấu hình SQLVantage. Định nghĩa tham số: P_ORG (Tổ chức), P_CURRENCY (Loại tiền), P_AS_OF_DATE (Ngày chốt số liệu). Bấm "Kích hoạt". Tổng thời gian: 3 phút. Tôi gửi link báo cáo cho giám đốc tài chính: "Anh mở trực tiếp, nhập tham số, bấm truy vấn, kết quả ra là Excel, dùng trình bày luôn được." 3 giờ 10 phút giám đốc nhận được dữ liệu, chỉnh định dạng thành "kế toán chuyên dụng", 3 giờ 15 phút hoàn tất việc đối soát dữ liệu.

Thấy chưa? Đây chính là khoảng cách hiệu suất mà công cụ hiện đại mang lại.


4. Tổng kết: Lão binh không chết, chỉ là đổi vũ khí

18 năm gắn bó với EBS, tôi thấm thía sức mạnh và sự đồ sộ của hệ thống này, cũng thấu hiểu gánh nặng lịch sử mà nó mang theo trên phương diện trải nghiệm người dùng và hiệu quả phát triển.

SQLVantage không phải để phủ định EBS, trái lại, nó là sự giải phóng hiện đại hóa năng lực dữ liệu mạnh mẽ của EBS. Nó đóng gói những vấn đề "quy trình" và "định dạng" phiền phức nhất, để nhà phát triển tập trung vào chính "dữ liệu", để người dùng tập trung vào chính "phân tích".

Nếu bạn cũng đã chán ngán:

  • Mỗi lần phát triển báo cáo đều phải đi qua cả quy trình đăng ký dài dằng dặc;
  • Mỗi lần người dùng xuất dữ liệu đều phải tách cột thủ công, và thường xuyên bị xuống dòng hành cho phát khùng;
  • Yêu cầu nghiệp vụ tới nơi rồi, bạn lại phải nói "báo cáo này cần ba ngày mới phát triển xong";

Vậy thì, có lẽ bạn có thể giống tôi, thử đổi một cách nghĩ. Chúng ta, chính là product manager tốt nhất của chính mình.

SQLVantage hiện đã được sử dụng rộng rãi trong đội của tôi, thời gian bàn giao báo cáo trung bình giảm hơn 80%, mức độ hài lòng của người dùng tăng vượt bậc.

Công nghệ không ngừng thay đổi, nhưng khát vọng của nghiệp vụ về tính kịp thời của dữ liệu chưa bao giờ đổi thay. Hy vọng trải nghiệm này cùng công cụ nhỏ bé SQLVantage có thể mang lại một tia sáng cho những đồng nghiệp vẫn đang vật lộn trong khổ hải báo cáo EBS.

Nếu bạn quan tâm đến chi tiết kiến trúc của SQLVantage (ví dụ cách phân tích động tham số, cách xử lý xuất luồng tập kết quả lớn), hoan nghênh để lại lời nhắn trao đổi. Trong thời đại biến đổi khôn lường này, hãy dùng công nghệ, để giành cho bản thân và bộ phận nghiệp vụ một chút thời gian quý báu.