(Lưu thông tin chuyến đi → Quản lý duyệt)

✈️ Công cụ sử dụng:
- Microsoft Power Apps
- Microsoft Power Automate
- Microsoft SharePoint
🎯 MỤC TIÊU BUỔI HỌC
Sau khi hoàn thành bài này, học viên sẽ tự làm được:
✅ Nhân viên đăng ký công tác trên App
✅ Lưu đầy đủ thông tin chuyến đi
✅ Quản lý nhận thông báo duyệt
✅ Duyệt / từ chối trực tiếp trên App
✅ Theo dõi trạng thái xử lý
✅ Hiểu quy trình công tác thực tế trong doanh nghiệp
📌 PHẦN 1 — HIỂU BÀI TOÁN THỰC TẾ
❗ Tình huống doanh nghiệp thật
Rất nhiều công ty hiện nay xử lý đăng ký công tác bằng:
- giấy đề nghị công tác
- Excel
- Email thủ công
- nhắn Zalo cho quản lý
👉 Hậu quả thường gặp:
❌ thất lạc hồ sơ
❌ quản lý quên duyệt
❌ không biết đã được duyệt chưa
❌ không theo dõi được lịch sử đi công tác
❌ khó tổng hợp chi phí công tác
💡 Giải pháp bằng Power Platform
Nhân viên
→ mở App
→ đăng ký chuyến công tác
Hệ thống
→ tự lưu dữ liệu vào SharePoint
Quản lý
→ nhận Email thông báo
→ duyệt hoặc từ chối
Công ty
→ theo dõi tập trung
👉 Đây chính là:
SỐ HÓA QUY TRÌNH CÔNG TÁC
🏗 PHẦN 2 — TẠO SHAREPOINT LIST
BƯỚC 1: MỞ SHAREPOINT
Thực hiện như sau
Bước 1
Mở trình duyệt Chrome
Bước 2
Truy cập:
office.com
Bước 3
Đăng nhập tài khoản Microsoft 365
Bước 4
Chọn:
SharePoint
📌 Nếu không thấy:
→ bấm “All Apps”
🎯 Giải thích
SharePoint là nơi:
lưu toàn bộ dữ liệu công tác
Giống như:
database cho dân văn phòng
Power Apps sẽ lấy dữ liệu từ đây.
BƯỚC 2: TẠO LIST MỚI
Thực hiện
New
↓
List
↓
Blank List
Điền tên List
BusinessTripRequests
⚠ Viết đúng chính tả
⚠ Không thêm khoảng trắng thừa
Bấm:
Create
🎉 Hoàn tất
🎯 Giải thích
Tên này cực kỳ quan trọng.
Power Apps và Power Automate sẽ kết nối đúng tên này.
Nếu sai:
❌ App không chạy
❌ Flow không hoạt động
BƯỚC 3: TẠO CÁC CỘT DỮ LIỆU
Danh sách cột cần tạo
| Tên cột | Kiểu dữ liệu |
|---|---|
| EmployeeName | Single line |
| EmployeeEmail | Single line |
| Department | Single line |
| Destination | Single line |
| Purpose | Multiple lines |
| FromDate | Date |
| ToDate | Date |
| Transportation | Choice |
| EstimatedCost | Currency |
| Status | Choice |
| ManagerEmail | Single line |
🎯 Ví dụ tạo cột EmployeeName
Bước 1
Bấm:
+ Add column
Bước 2
Chọn:
Single line of text
Bước 3
Nhập:
EmployeeName
Bước 4
Bấm:
Save
🎉 Hoàn tất
💡 Lưu ý cực quan trọng
Không đặt tên tiếng Việt
❌ Tên nhân viên
✅ EmployeeName
Vì:
Power Apps xử lý tiếng Anh ổn định hơn rất nhiều
BƯỚC 4: TẠO CHOICE CHO Transportation
Các lựa chọn
- Máy bay
- Xe khách
- Tàu hỏa
- Xe công ty
- Tự túc
🎯 Vì sao dùng Choice?
Nếu dùng Text:
❌ máy bay
❌ may bay
❌ mb
→ dữ liệu rất loạn
Nếu dùng Choice:
✅ đồng nhất dữ liệu
✅ dễ báo cáo
✅ chuyên nghiệp hơn
BƯỚC 5: TẠO CHOICE CHO Status
Các giá trị
- Pending
- Approved
- Rejected
- Completed
🎯 Ý nghĩa
🟡 Pending
→ chờ duyệt
🟢 Approved
→ đã duyệt
🔴 Rejected
→ bị từ chối
🔵 Completed
→ hoàn thành chuyến đi
📥 PHẦN 3 — NHẬP DỮ LIỆU MẪU
BƯỚC 6: NHẬP DỮ LIỆU
Bấm:
Edit in grid view
🎯 Giải thích
Grid View giống như:
Excel trong SharePoint
👉 copy paste cực nhanh
Dữ liệu mẫu
| Title | EmployeeName | Destination | Status |
|---|---|---|---|
| BT-001 | Nguyễn Văn A | Hà Nội | Pending |
| BT-002 | Trần Thị B | Đà Nẵng | Approved |
| BT-003 | Lê Văn C | Cần Thơ | Pending |
🎯 Vì sao phải có dữ liệu mẫu?
Nếu không có dữ liệu:
❌ khó test App
❌ khó test Flow
❌ khó demo cho học viên
Cho nên:
luôn nhập dữ liệu mẫu trước
📱 PHẦN 4 — TẠO APP POWER APPS
BƯỚC 7: MỞ POWER APPS
Truy cập
make.powerapps.com
BƯỚC 8: TẠO APP MỚI
Thực hiện
Create
↓
Blank App
↓
Canvas App
Cấu hình
Name
App Đăng Ký Công Tác
Format
Phone
📱 vì nhân viên thường thao tác trên điện thoại
BƯỚC 9: KẾT NỐI SHAREPOINT
Data
↓
Add Data
↓
SharePoint
↓
chọn List:
BusinessTripRequests
🎯 Giải thích
Đây là bước:
nối App với dữ liệu
Nếu chưa kết nối:
❌ App không lưu được gì cả
👨💼 PHẦN 5 — MÀN HÌNH NHÂN VIÊN
BƯỚC 10: TẠO SCREEN
Tên:
scrCreateTrip
🎯 Vì sao phải đặt tên rõ?
❌ Screen1
❌ Screen2
rất dễ loạn
✅ scrCreateTrip
→ nhìn là biết chức năng
BƯỚC 11: THÊM CONTROL
| Control | Name |
|---|---|
| Text Input | txtName |
| Text Input | txtEmail |
| Text Input | txtDepartment |
| Text Input | txtDestination |
| Text Input Multiline | txtPurpose |
| Date Picker | dpFrom |
| Date Picker | dpTo |
| Dropdown | ddTransport |
| Text Input | txtCost |
💡 Quy tắc đặt tên chuyên nghiệp
txt = Text Input
dp = Date Picker
dd = Dropdown
scr = Screen
👉 đây là thói quen rất quan trọng khi đi làm thực tế
BƯỚC 12: NÚT “GỬI ĐĂNG KÝ”
Tạo Button
Text:
GỬI ĐĂNG KÝ
Thuộc tính:
OnSelect
Patch(
BusinessTripRequests,
Defaults(BusinessTripRequests),
{
Title: "BT-" & Text(Now(),"yyyymmddhhmm"),
EmployeeName: txtName.Text,
EmployeeEmail: txtEmail.Text,
Department: txtDepartment.Text,
Destination: txtDestination.Text,
Purpose: txtPurpose.Text,
FromDate: dpFrom.SelectedDate,
ToDate: dpTo.SelectedDate,
Transportation: ddTransport.Selected.Value,
EstimatedCost: Value(txtCost.Text),
Status: "Pending",
ManagerEmail: "manager@contoso.com"
}
);
Notify(
"Đã gửi đăng ký công tác!",
NotificationType.Success
)
🎯 Giải thích cực quan trọng
Patch()
= ghi dữ liệu
👉 giống nút SAVE
Defaults()
= tạo bản ghi mới
👉 giống INSERT
Value()
= chuyển chữ thành số
Ví dụ:
“5000000”
→
5000000
Notify()
= hiện thông báo thành công
🎉 giúp người dùng yên tâm đã gửi thành công
📧 PHẦN 6 — POWER AUTOMATE GỬI EMAIL TỰ ĐỘNG
(Nhân viên đăng ký → Quản lý nhận thông báo duyệt)
Đây là phần học viên rất thích vì:
“APP TỰ GỬI EMAIL THẬT”
👉 cực chuyên nghiệp
👉 rất giống hệ thống doanh nghiệp thật
👉 áp dụng ngay cho công ty
🎯 MỤC TIÊU PHẦN NÀY
Sau phần này, học viên sẽ làm được:
✅ Khi nhân viên bấm “GỬI ĐĂNG KÝ”
→ hệ thống tự gửi Email cho quản lý
✅ Quản lý không cần chờ nhân viên nhắn Zalo
✅ Không bị quên duyệt hồ sơ công tác
💡 Giải thích dễ hiểu
Power Apps giống như:
người tạo đơn
Power Automate giống như:
nhân viên tự động chạy việc
SharePoint giống như:
nơi lưu hồ sơ
Ba công cụ kết hợp lại tạo thành:
HỆ THỐNG CÔNG TÁC DOANH NGHIỆP THẬT
🚀 BƯỚC 13: MỞ POWER AUTOMATE
Thực hiện
Bước 1
Mở trình duyệt Chrome
Bước 2
Truy cập:
make.powerautomate.com
Bước 3
Đăng nhập cùng tài khoản Microsoft 365
⚠ Phải dùng cùng tài khoản với Power Apps
Nếu khác tài khoản:
❌ không nhìn thấy SharePoint List
🎯 Giải thích
Đây là lỗi học viên gặp rất nhiều:
Power Apps dùng tài khoản A
nhưng
Power Automate dùng tài khoản B
→ hệ thống không kết nối được
Cho nên:
bắt buộc cùng 1 tài khoản
🏗 BƯỚC 14: TẠO FLOW MỚI
Thực hiện
Chọn:
Create
↓
Automated Cloud Flow
🎯 Vì sao chọn Automated?
Vì chúng ta muốn:
khi có đăng ký mới
→ hệ thống tự chạy
không cần bấm tay
👉 đây mới là tự động hóa thật
BƯỚC 15: ĐẶT TÊN FLOW
Tên nên đặt:
Notify Manager Business Trip Request
💡 nghĩa là:
Thông báo quản lý khi có đăng ký công tác mới
🎯 Lưu ý
Tên càng rõ:
→ càng dễ quản lý sau này
❌ Flow1
❌ TestTrip
✅ Notify Manager Business Trip Request
BƯỚC 16: CHỌN TRIGGER
Trigger là gì?
Trigger nghĩa là:
điều kiện để Flow bắt đầu chạy
Ví dụ:
- có email mới
- có người nghỉ phép
- có đơn mua hàng mới
- có đăng ký công tác mới
Trigger cần chọn:
When an item is created
thuộc nhóm:
SharePoint
🎯 Giải thích
Nghĩa là:
Khi SharePoint có bản ghi mới
→ Flow tự chạy
👉 đúng chính xác nhu cầu bài này
⚙ BƯỚC 17: CẤU HÌNH TRIGGER
Điền thông tin như sau
Site Address
→ chọn đúng Site SharePoint của bạn
Ví dụ:
Training Team Site
List Name
→ chọn:
BusinessTripRequests
🎯 Kiểm tra cực quan trọng
Nếu chọn sai List:
❌ Flow không chạy
Cho nên phải kiểm tra kỹ:
đúng List = BusinessTripRequests
📩 BƯỚC 18: THÊM ACTION GỬI EMAIL
Thực hiện
Bấm:
+ New Step
↓
Tìm:
Send an email (V2)
🎯 Giải thích
Đây là bước:
gửi Email thật
ra ngoài hộp thư
không phải giả lập
👉 học viên thường rất thích phần này
✉ BƯỚC 19: CẤU HÌNH EMAIL
Mục TO
Điền:
ManagerEmail
🎯 Giải thích
Không gõ email cố định bằng tay
Ví dụ:
Mà dùng:
✅ ManagerEmail
Vì:
email sẽ tự lấy từ SharePoint
→ chuyên nghiệp hơn rất nhiều
Mục SUBJECT
Điền:
[Yêu cầu công tác mới] từ EmployeeName
Ví dụ Email thật sẽ là:
[Yêu cầu công tác mới] từ Nguyễn Văn A
👉 quản lý nhìn phát hiểu ngay
Mục BODY
Nội dung Email
Có đăng ký công tác mới cần phê duyệt
Người gửi: EmployeeName
Phòng ban: Department
Nơi đến: Destination
Mục đích: Purpose
Ngày đi: FromDate
Ngày về: ToDate
Phương tiện: Transportation
Chi phí dự kiến: EstimatedCost
Vui lòng kiểm tra hệ thống.
🎯 Vì sao phải viết rõ?
Nếu email quá ngắn:
❌ quản lý không hiểu nội dung
Nếu email đủ thông tin:
✅ xử lý nhanh hơn
✅ giảm hỏi qua hỏi lại
✅ chuyên nghiệp hơn
💾 BƯỚC 20: SAVE FLOW
Thực hiện
Bấm nút:
Save
ở góc trên bên phải
⚠ Lỗi học viên gặp nhiều nhất
Tạo xong nhưng:
quên bấm SAVE
→ test mãi không chạy
👉 đây là lỗi cực phổ biến
👨💼 PHẦN 7 — MÀN HÌNH QUẢN LÝ DUYỆT
BƯỚC 21: TẠO SCREEN MỚI
Tên:
scrManagerApprove
🎯 Mục đích
Đây là màn hình dành cho:
quản lý duyệt hồ sơ công tác
Không dùng cho nhân viên
BƯỚC 22: TẠO GALLERY CHỜ DUYỆT
Items
Filter(
BusinessTripRequests,
Status = "Pending"
)
🎯 Giải thích
Chỉ hiển thị:
các đơn đang chờ duyệt
Không hiện:
❌ Approved
❌ Rejected
→ giúp quản lý xử lý nhanh hơn
BƯỚC 23: NÚT DUYỆT
Tạo Button
Text:
DUYỆT
OnSelect
Patch(
BusinessTripRequests,
ThisItem,
{
Status: "Approved"
}
);
Notify(
"Đã duyệt chuyến công tác!",
NotificationType.Success
)
🎯 Giải thích
ThisItem nghĩa là:
dòng đang được chọn
Khi quản lý bấm DUYỆT:
→ chỉ đúng dòng đó được cập nhật
BƯỚC 24: NÚT TỪ CHỐI
Text:
TỪ CHỐI
OnSelect
Patch(
BusinessTripRequests,
ThisItem,
{
Status: "Rejected"
}
);
Notify(
"Đã từ chối yêu cầu!",
NotificationType.Warning
)
🎯 Giải thích
Quản lý có quyền:
✅ duyệt
hoặc
❌ từ chối
Đây là đúng logic doanh nghiệp thật
🧪 PHẦN 8 — KIỂM THỬ (BẮT BUỘC)
TEST 1 — NHÂN VIÊN GỬI ĐĂNG KÝ
Kết quả cần thấy
✅ SharePoint có dòng mới
✅ Status = Pending
TEST 2 — EMAIL QUẢN LÝ
Kết quả cần thấy
📩 Quản lý nhận Email mới
Ví dụ:
[Yêu cầu công tác mới] từ Nguyễn Văn A
TEST 3 — QUẢN LÝ DUYỆT
Kết quả cần thấy
Khi bấm:
DUYỆT
→ Status đổi thành:
Approved
và biến mất khỏi danh sách Pending
TEST 4 — QUẢN LÝ TỪ CHỐI
Kết quả cần thấy
Khi bấm:
TỪ CHỐI
→ Status đổi thành:
Rejected
Nếu Flow không chạy thì sao?
Kiểm tra:
1. Đã Save Flow chưa?
2. Trigger đúng List chưa?
3. Email đúng chưa?
4. Có dùng cùng tài khoản không?
5. Flow có báo Failed không?
🏁 KẾT QUẢ CUỐI BUỔI
Sau buổi này bạn đã xây dựng được:
APP ĐĂNG KÝ CÔNG TÁC HOÀN CHỈNH
bao gồm:
✅ App đăng ký
✅ SharePoint lưu dữ liệu
✅ Email tự động
✅ Quản lý duyệt
✅ Theo dõi trạng thái
✅ Quy trình doanh nghiệp thật
🧠 BÀI TẬP NÂNG CAO
Hãy tự làm thêm:
Bài 1
Tự động tính số ngày công tác
Bài 2
Gửi Email khi duyệt thành công
Bài 3
Dashboard tổng chi phí công tác theo tháng
Bài 4
Phân quyền:
- Nhân viên
- Quản lý
- Kế toán
LỜI NHẮN QUAN TRỌNG
❌ Đừng học Power Apps bằng cách học hết nút bấm
✅ Hãy học bằng bài toán thật của công ty
vì đó mới là: