77 lines
5.8 KiB
Markdown
77 lines
5.8 KiB
Markdown
---
|
|
card_id: "campaign/cep_request"
|
|
title: "Yêu cầu Trích xuất và Xử lý Bộ đếm (CEP Request)"
|
|
domain: "campaign"
|
|
related_cards:
|
|
- "campaign/campaign_rule"
|
|
- "campaign/counter_definition"
|
|
- "campaign/transaction_codes"
|
|
tags: ["CEP", "counter", "extract", "batch", "schedule"]
|
|
detail_refs:
|
|
- "campaign/batch_rule_processing"
|
|
---
|
|
|
|
# Yêu cầu Trích xuất và Xử lý Bộ đếm (CEP Request)
|
|
|
|
## Mô tả ngắn
|
|
|
|
Counter Extract & Process (CEP) Request là một loại Quy tắc Chiến dịch (Campaign Rule) đặc biệt, hoạt động như một công cụ lập lịch (scheduler) tự động. Nhiệm vụ của CEP là định kỳ trích xuất số dư từ các Bộ đếm (Counter), sau đó chuyển hóa giá trị này thành các giao dịch ảo trong hệ thống. Các giao dịch ảo này mang theo Mã giao dịch (Transaction Code) được chỉ định để kích hoạt các Campaign Rule khác (như rule tính toán trả thưởng cuối kỳ).
|
|
|
|
## Thuật ngữ liên quan
|
|
|
|
- **CEP (Counter Extract & Process)**: Tiến trình trích xuất giá trị từ Counter và xử lý thành giao dịch.
|
|
- **Run Schedule**: Lịch trình chạy của tiến trình CEP (Hàng ngày, Hàng tháng, Theo kỳ sao kê...).
|
|
- **Counter Bucket**: Nhóm lưu trữ số dư của bộ đếm trong một chu kỳ nhất định (Current, Previous).
|
|
- **State (C, A, E)**: Trạng thái của Bucket (C = Created, A = Awarded/Closed, E = Extracted).
|
|
|
|
## Cấu trúc dữ liệu (Data Schema)
|
|
|
|
### 1. Thông tin chung (General Information)
|
|
| Field | Description | Type |
|
|
|---|---|---|
|
|
| Campaign ID / Rule ID / Name | Mã chiến dịch, mã quy tắc và tên của quy tắc CEP này. | Display / X |
|
|
| Rule Type | Loại quy tắc, mặc định là "Counter Extract & Process [CEP]". | Display |
|
|
| Effective Date From / To | Khoảng thời gian CEP Rule này có hiệu lực hoạt động. | Date |
|
|
|
|
### 2. Cấu hình Trích xuất (Rule Setting)
|
|
| Field | Description | Type |
|
|
|---|---|---|
|
|
| Counter / Bucket to extract | Bộ đếm và Bucket cụ thể sẽ được trích xuất (Current, Previous, Period before Last). Giá trị rút ra sẽ làm "Số tiền giao dịch" (Transaction Amount). | Drop-down |
|
|
| Transaction Code | Mã giao dịch ảo sẽ được gắn cho giao dịch sinh ra từ CEP để kích hoạt các Rule nhận thưởng. | Drop-down |
|
|
| -ve Bal. Adjust. Transaction Code | Nếu giá trị Counter rút ra bị âm, hệ thống sẽ dùng mã giao dịch này để kích hoạt Rule điều chỉnh giảm (Negative Adjustment). | Drop-down |
|
|
| Execution Sequence Number | Thứ tự ưu tiên thực thi nếu có nhiều CEP request cùng chạy. | 9(4) > 0 |
|
|
|
|
### 3. Lịch chạy (Run Schedule)
|
|
Lịch chạy quyết định thời điểm CEP Batch Job quét và xử lý quy tắc này:
|
|
- **Day / Month / Annually**: Chạy lặp lại mỗi N ngày / N tháng (vào ngày cụ thể) / N năm.
|
|
- **Statement Cycle**: Chạy vào ngày chốt sao kê của tài khoản.
|
|
- **N days after AOD**: Chạy sau N ngày kể từ Ngày mở tài khoản (Account Opened Date).
|
|
|
|
## Cách hoạt động (How It Works)
|
|
|
|
- **Trích xuất dữ liệu**: Đến thời điểm chạy đã lên lịch (Run Schedule), CEP Batch Job sẽ tìm Counter được chỉ định và bóc tách Bucket mong muốn (Ví dụ: cuối tháng thì bóc "Previous Bucket" của tháng trước). Giá trị tổng lũy kế trong Bucket đó được lấy ra làm `Transaction Amount`.
|
|
- **Sinh giao dịch ảo**: Dữ liệu vừa lấy được đóng gói thành một giao dịch (dưới dạng Award hoặc Adjustment tùy thuộc giá trị dương hay âm) với `Transaction Code` đã thiết lập.
|
|
- **Kích hoạt Rule đích**: Giao dịch ảo này được đẩy vào hệ thống xử lý giao dịch. Các Campaign Rule khác (đang lắng nghe `Transaction Code` này) sẽ bắt được giao dịch, lấy `Transaction Amount` để đưa vào công thức tính toán và tiến hành trả thưởng.
|
|
- **Cập nhật Trạng thái Bucket**: Để tránh trích xuất trùng lặp vào kỳ chạy sau, trạng thái của Bucket sau khi trích xuất sẽ được cập nhật (phụ thuộc vào cấu hình của Counter Definition):
|
|
- Đổi từ `C` sang `A` nếu giao dịch sinh ra có thỏa mãn điều kiện nhận thưởng (Hit CP Rule).
|
|
- Đổi từ `C` sang `E` nếu chỉ cần trích xuất xong là cập nhật (bất kể có nhận thưởng hay không).
|
|
|
|
## Mối quan hệ với modules khác
|
|
|
|
- **Counter Definition**: CEP lấy dữ liệu đầu vào trực tiếp từ Counter. Không có Counter thì CEP không có dữ liệu để trích xuất.
|
|
- **Transaction Code (TC)**: CEP đóng vai trò là "nguồn phát" giao dịch ảo. Mã TC do CEP gắn vào sẽ quyết định hướng đi của giao dịch.
|
|
- **Campaign Rule**: Các quy tắc trả thưởng thông thường đóng vai trò "người nhận", lắng nghe các giao dịch do CEP tạo ra để hoàn tất khâu tính toán và trả điểm.
|
|
|
|
## Ví dụ thực tế
|
|
|
|
Chiến dịch: "Hoàn tiền 5% tổng chi tiêu tháng trước".
|
|
1. Hệ thống có một Counter tích lũy tổng chi tiêu hàng tháng.
|
|
2. Thiết lập một CEP Request với cấu hình:
|
|
- Counter to extract: Tổng chi tiêu.
|
|
- Bucket to extract: Previous Bucket.
|
|
- Transaction Code: "CALC_CASHBACK".
|
|
- Run Schedule: Monthly, vào ngày 1 hàng tháng.
|
|
3. Ngày 1/5, CEP Batch Job chạy. Nó rút "Previous Bucket" (tổng chi tiêu tháng 4) của Khách hàng A, thấy giá trị là 10,000,000 VND.
|
|
4. CEP tạo một giao dịch ảo với mã "CALC_CASHBACK" và Amount = 10,000,000.
|
|
5. Một Campaign Rule khác nhận giao dịch này, áp dụng công thức 5% * 10,000,000 = 500,000 VND, và cộng thẳng vào Pool hoàn tiền của Khách hàng A.
|