Sự kiện Transaction
Phạm vi áp dụng
✅ Bravo 8 · ✅ Bravo 10
Nhóm sự kiện chạy quanh transaction lưu dữ liệu.
Toàn cảnh
flowchart TD A["BeforeTransaction / ServerUpdating<br/>CLIENT · evaluator"] --> B["Gửi lên backend"] B --> C["INSERT / UPDATE / DELETE"] C --> D["ServerUpdated<br/>evaluator sau khi lưu"] D --> E["BeforeCommit<br/>BACKEND · thủ tục"] E --> F["COMMIT"] F --> G["AfterCommit<br/>BACKEND · evaluator/thủ tục"] G --> H["AfterTransaction<br/>CLIENT · evaluator"]
| Sự kiện | Chạy ở | Chứa gì | B8 | B10 |
|---|---|---|---|---|
| ServerUpdating | Client | Evaluator | ✅ | ❌ |
| BeforeTransaction | Client | Evaluator | ❌ | ✅ |
BeforeCommit | Backend | Thủ tục | ✅ | ✅ |
AfterCommit | Backend | Evaluator / thủ tục | ✅ | ✅ |
AfterTransaction | Client | Evaluator | ❌ | ✅ |
BeforeCommit
Khai báo thủ tục được thực thi cùng transaction với việc lưu dữ liệu vào bảng chi tiết.
Ràng buộc
- Chỉ áp dụng cho bảng mẹ
- Chỉ được 1 thủ tục
- Hỗ trợ khai báo Parameters như BravoServerConstraint
<ServerCommand>
<BeforeCommit>
<Command>usp_B30AccDoc_Post</Command>
<Parameters>BranchCode,Stt,DocDate,DocCode,DocStatus</Parameters>
</BeforeCommit>
</ServerCommand>Vì sao quan trọng?
Việc đưa các sự kiện trong quá trình lưu vào cùng một transaction đảm bảo tính toàn vẹn dữ liệu, tránh dữ liệu lưu không đồng bộ khi gặp sự cố.
Bravo 10: “Danh sách các thủ tục được kích hoạt tại backend sau khi dữ liệu đã được cập nhật thành công nhưng trước khi commit transaction.”
AfterCommit
Khai báo các Evaluator được thực thi sau khi lưu dữ liệu.
Chỉ áp dụng cho bảng mẹ.
<ServerCommand>
<AfterCommit>
<Eval_AutoPrintVoucher>
<ClassName>BravoCommandKey</ClassName>
<CommandKey>AccDocViewer_PX
AutoRun=True;StartupCommandKey=QuickPrint;PrimaryKeyValue={=Id};</CommandKey>
<commandFormState>Minimized</commandFormState>
<Expr>ISNULL(AutoPrintVoucher,False)=True</Expr>
</Eval_AutoPrintVoucher>
</AfterCommit>
</ServerCommand>Bravo 10: “Danh sách các thủ tục được kích hoạt tại backend sau khi transaction được committed thành công.”
Bị bỏ qua khi import
Các evaluator trong
AfterCommitsẽ bị bỏ qua khi import → Chức năng Import
Ở các màn hình khác
| Màn hình | Vai trò của AfterCommit |
|---|---|
| Reporter | Evaluator chạy sau khi thủ tục báo cáo xong và transaction committed |
| Dashboard | Evaluator chạy sau khi thủ tục Dashboard thực hiện xong |
AfterTransaction
❌ Bravo 8 · ✅ Bravo 10
Danh sách các evaluator được kích hoạt tại client, sau khi quá trình cập nhật dữ liệu tại backend thành công.
<AfterTransaction>
<!-- Danh sách Evaluator -->
</AfterTransaction>Khác
AfterCommitở chỗ nào?
AfterCommitAfterTransactionChạy ở Backend Client Dùng để Xử lý dữ liệu phía server Cập nhật giao diện, mở form, thông báo
Liên quan
ServerCommand · BeforeTransaction · ServerUpdating · ServerUpdated · Vòng đời sự kiện Editor · BravoCommandKey