- Provider app chọn dữ liệu cần chia sẻ (publish) dưới dạng một dataset (tập record + field cho phép + điều kiện lọc).
- Consumer app sử dụng dữ liệu đã publish khi cấu hình Data source loại Connected app và các field như Data Connection / Lookup / Rollup.
- Chốt ownership và source of truth (nguồn dữ liệu chuẩn) theo từng app
- Cho phép kết nối end-to-end mà vẫn kiểm soát quyền truy cập
- Giảm việc sao chép dữ liệu giữa các app
1) Khi nào cần publish/consume?
Publish/consume phù hợp khi:- Dữ liệu thuộc ownership của một app khác nhưng cần dùng trong app hiện tại
- Cần bàn giao công việc giữa các nhóm (ví dụ: Request → Procurement)
- Cần hiển thị hoặc tổng hợp dữ liệu từ app khác trong dashboard/report
2) “Dataset” trong publish nghĩa là gì?
Dataset (tập dữ liệu publish) thường bao gồm:- Nguồn record: từ một Entity hoặc một tập record theo filter
- Field được phép chia sẻ: chỉ publish các field đủ dùng
- Điều kiện lọc: giới hạn phạm vi record được chia sẻ (theo trạng thái, phòng ban, thời gian…)
- Quyền truy cập: ai/role nào ở consumer được dùng dataset này
Publish/consume không tạo “bảng dữ liệu mới”. Dữ liệu vẫn nằm trong Entity của provider app.
3) Cách publish (provider app)
Thiết lập publish nên theo thứ tự:- Chốt ownership: dataset này do provider chịu trách nhiệm cập nhật
- Chọn Entity và phạm vi record cần chia sẻ (filter)
- Chọn field được phép chia sẻ
- Thiết lập quyền truy cập (ai/role nào được dùng)
- Đặt tên dataset rõ ràng (ví dụ: “Approved Purchase Requests”)
- Publish “đủ dùng”: tránh publish quá rộng
- Đặt tiêu chí rõ: record nào được chia sẻ (ví dụ: Status = Approved)
4) Cách consume (consumer app)
Consumer app sử dụng dữ liệu đã publish thông qua Data source loại Connected app. Điểm quan trọng:- Không cần “làm một bước consume riêng” rồi mới tạo field.
- Trong thực tế, consume xảy ra trong lúc cấu hình Connected app hoặc khi cấu hình field cần dùng dữ liệu (Data Connection/Lookup/Rollup). Hệ thống sẽ yêu cầu chọn dataset đã publish và xác nhận quyền truy cập.
- Kết nối dữ liệu một chiều (Data Connection one-way)
- Kết nối dữ liệu hai chiều (Data Connection two-way)
- Tra cứu (Lookup)
- Tổng hợp (Rollup)
5) Tác động phân quyền (permission implications)
Publish/consume luôn chịu ràng buộc quyền từ cả hai phía:Quyền từ provider (giới hạn tối đa)
- Provider quyết định record nào và field nào được chia sẻ.
- Consumer không thể đọc/ghi vượt quá phạm vi provider đã publish.
Quyền trong consumer (giới hạn theo vai trò người dùng)
- Trong consumer app, từng role vẫn chỉ thấy/được thao tác theo permissions nội bộ.
- Một dataset được consume chỉ nên “lộ” với các role thực sự cần dùng.
- Tách dataset theo mục tiêu nghiệp vụ (ví dụ: “Approved” vs “All”)
- Không publish field nhạy cảm nếu không cần
6) One-way vs two-way (hướng dẫn chọn)
Publish/consume là cơ chế chia sẻ dữ liệu; còn hướng trao đổi thường thể hiện qua Data Connection.One-way (một chiều)
Dùng khi cần bàn giao/submit dữ liệu và chốt ownership rõ:- App A gửi dữ liệu sang App B để App B xử lý
- App B là source of truth cho phần dữ liệu mà B vận hành
- Ownership & chia sẻ dữ liệu (Data ownership & sharing)
- Kết nối dữ liệu một chiều (Data Connection one-way)
Two-way (hai chiều)
Dùng khi cần đồng bộ hai phía và có lý do rõ ràng:- Hai app cùng cần cập nhật và cùng cần thấy thay đổi
- Có guardrail để tránh xung đột và coupling quá chặt
- Trách nhiệm cập nhật đã được định nghĩa rất rõ
- Có quy tắc xử lý xung đột hoặc hạn chế phạm vi field đồng bộ
7) Ví dụ ngắn: Purchase Request → Procurement (bàn giao)
Mục tiêu: Purchase Request bàn giao yêu cầu đã duyệt sang Procurement để thực hiện mua sắm. Thiết lập gợi ý:- Procurement publish/cho phép dataset và kênh nhận (Connected app) theo phạm vi cần thiết
- Purchase Request dùng Data Connection (một chiều) để submit dữ liệu sang Procurement khi Approved
- (Tuỳ chọn) Procurement publish trạng thái để Purchase Request tham chiếu tiến độ
Checklist nhanh
- Provider chốt ownership và publish “đủ dùng”
- Consumer chỉ consume dataset cần thiết cho nghiệp vụ
- Permission được kiểm tra ở cả provider và consumer
- One-way ưu tiên cho bàn giao; two-way chỉ dùng khi có lý do rõ
