Giới Thiệu
Trong ServiceNow, cách phổ biến nhất để gửi thông báo là kích hoạt nó khi một bản ghi được chèn hoặc cập nhật. Tuy nhiên, đôi khi cách tiếp cận này không đủ linh hoạt, đặc biệt khi:
- Điều kiện quá phức tạp cho giao diện người dùng (GUI).
- Bạn cần so sánh giá trị cũ và mới trong thông báo.
- Bạn muốn ngăn chặn thông báo cho các cuộc gọi API.
- Bạn muốn tái sử dụng cùng một kích hoạt cho nhiều thông báo hoặc quy trình.
Đây là lúc thông báo kích hoạt sự kiện trở nên hữu ích. Trong bài viết này, tôi sẽ hướng dẫn bạn triển khai việc gửi thông báo khi độ ưu tiên của một sự cố thay đổi, sử dụng một sự kiện làm kích hoạt.
Các Bước Triển Khai
1. Đăng Ký Sự Kiện
Đầu tiên, hãy tạo một mục Đăng Ký Sự Kiện tùy chỉnh.
- Tên:
Test_incident.priority_changed
- Bảng:
incident
- Mô tả: Sự kiện được kích hoạt khi độ ưu tiên thay đổi
xml
<event_name>Test_incident.priority_changed</event_name>
<table>incident</table>
<description>Đăng ký sự kiện thử nghiệm</description>
2. Quy Tắc Kinh Doanh: Kích Hoạt Sự Kiện
Tiếp theo, tạo một Quy Tắc Kinh Doanh để kích hoạt sự kiện mỗi khi độ ưu tiên thay đổi.
- Tên:
Test_incident events
- Bảng:
incident
- Thời gian: sau khi cập nhật
javascript
if (current.priority.changes() && current.priority != previous.priority) {
gs.eventQueue(
"Test_incident.priority_changed", // tên sự kiện
current, // bản ghi nguồn
current.priority.toString(), // parm1: độ ưu tiên mới
previous.priority.toString() // parm2: độ ưu tiên cũ
);
}
// Tùy chọn: loại trừ các cập nhật từ Connect API
function isConnect() {
var transaction = GlideTransaction.get();
if (!transaction) return false;
var request = transaction.getRequest();
if (!request) return false;
var path = request.getRequestURI();
return path && path.match(/\/api\/now\/connect/);
}
👉 Ở đây, tôi đang truyền parm1 (độ ưu tiên mới) và parm2 (độ ưu tiên cũ) để chúng có thể được tham chiếu sau này trong nội dung thông báo.
3. Thông Báo
Bây giờ, cấu hình Thông Báo lắng nghe sự kiện.
- Tên:
Test_Event trigger notification
- Khi nào gửi: Sự kiện được kích hoạt →
Test_incident.priority_changed
- Chủ đề:
plaintext
Chủ đề Thử Nghiệm: ${number}
- Nội dung:
plaintext
Độ ưu tiên sự cố ${number} đã thay đổi!
Trước: ${event.parm2}
Hiện tại: ${event.parm1}
4. Kiểm Tra Đơn Vị
Cuối cùng, hãy kiểm tra với một bản ghi Sự cố.
-
Sự cố:
INC0010005
- Mô tả ngắn: Thử Nghiệm Thông Báo Kích Hoạt
- Độ ưu tiên: thay đổi từ 3 → 1
-
Kết quả Thông Báo
Chủ đề:
plaintext
Chủ đề Thử Nghiệm: INC0010005
Nội dung:
plaintext
Sự cố INC0010005 độ ưu tiên đã thay đổi!
Trước: 3
Hiện tại: 1
✅ Hoạt động như mong đợi — các tham số sự kiện đã được truyền vào thông báo thành công.
Tại Sao Nên Sử Dụng Sự Kiện?
Từ thí nghiệm nhỏ này, tôi có thể tóm tắt những lợi ích chính của thông báo kích hoạt sự kiện:
- Xử lý các điều kiện phức tạp thông qua kịch bản.
- Dễ dàng chèn giá trị cũ/mới vào thông báo.
- Tái sử dụng cùng một sự kiện cho nhiều thông báo hoặc quy trình.
- Ngăn chặn thông báo không cần thiết (ví dụ: cập nhật API).
Đối với các trường hợp đơn giản như “thông báo cho người được giao khi một sự cố được tạo,” một thông báo tiêu chuẩn là đủ. Nhưng khi các điều kiện trở nên phức tạp hơn, các sự kiện cung cấp cho bạn nhiều quyền kiểm soát hơn.
Kết Luận
Dưới đây là quy trình tổng thể một lần nữa:
- Đăng ký sự kiện trong Đăng Ký Sự Kiện.
- Sử dụng một Quy Tắc Kinh Doanh để kích hoạt sự kiện với
gs.eventQueue()
. - Tạo một Thông Báo được kích hoạt bởi sự kiện.
- Truyền tham số (
parm1
,parm2
) để có nội dung thông báo phong phú hơn.
Cách tiếp cận này linh hoạt, có thể tái sử dụng và ngăn chặn thông báo không mong muốn.
Các Bước Tiếp Theo
- Sử dụng Flow Designer để kích hoạt tin nhắn Slack từ sự kiện.
- Khám phá Kịch Bản Email Thông Báo để có nội dung email phong phú hơn.
- Thử áp dụng cùng một mẫu cho các bản ghi Thay Đổi hoặc Vấn Đề.
✍️ Đó là tất cả! Đây là một mẫu đơn giản nhưng hiệu quả cho thông báo kích hoạt sự kiện trong ServiceNow.