Hướng dẫn thực hành tạo App đăng ký nghỉ phép với Microsoft Power Platform


Cầm tay chỉ việc – Nhập đơn, xem trạng thái | Chưa cần duyệt tự động


🎯 Mục tiêu thực hành (đọc trước khi làm)

Sau khi hoàn thành bài này, bạn sẽ:

  • Tự tạo được App đăng ký nghỉ phép dùng thật
  • Hiểu vì sao phải làm từng bước như vậy (không làm máy móc)
  • Nắm chắc 3 nền tảng quan trọng nhất của Power Apps:
    1. Dữ liệu (Data)
    2. Form & Gallery
    3. Trạng thái nghiệp vụ (Status)

👉 Bài này KHÔNG làm workflow duyệt, để bạn không bị quá tải.


1️⃣ Chuẩn bị trước khi mở Power Apps (RẤT QUAN TRỌNG)

✅ Bạn cần có:

  • Tài khoản Microsoft 365
  • Quyền tạo:
    • SharePoint List hoặc
    • Excel Online (OneDrive / SharePoint)

👉 Khuyến nghị dùng SharePoint List nếu:

  • Nhiều người dùng
  • Có HR quản lý
  • Muốn mở rộng sau này

2️⃣ Tạo dữ liệu nghỉ phép (làm trước – không vội mở App)

📌 Vì sao phải làm dữ liệu trước?

Power Apps không phải Excel kéo thả,
nó hoạt động tốt nhất khi dữ liệu đã được thiết kế rõ ràng.


🔹 Tạo SharePoint List: LeaveRequests

Tên cộtKiểu dữ liệuGiải thích
LeaveIDSingle line textMã đơn
EmployeeNameSingle line textTên nhân viên
DepartmentChoicePhòng ban
LeaveTypeChoicePhép năm / Nghỉ ốm
StartDateDateNgày bắt đầu
EndDateDateNgày kết thúc
DaysNumberSố ngày nghỉ
ReasonMultiple linesLý do
StatusChoicePending / Approved / Rejected
CreatedByPersonNgười tạo

👉 Status rất quan trọng → là “xương sống” của app HR.


3️⃣ Tạo App mới (Canvas App)

🔹 Bước 1: Tạo App

  • Vào Power Apps
  • Create → Canvas App (Phone layout)
  • Đặt tên: Leave Request App

👉 Chọn Phone layout vì:

  • Nhân viên thường dùng điện thoại
  • HR app nội bộ → mobile-friendly

🔹 Bước 2: Kết nối dữ liệu

  • Data → Add data
  • Chọn SharePoint
  • Kết nối List LeaveRequests

👉 Nếu kết nối lỗi:

  • Kiểm tra quyền SharePoint
  • Kiểm tra tên cột (không dùng ký tự đặc biệt)

4️⃣ Màn hình 1 – Danh sách đơn nghỉ phép (Gallery)

🎯 Mục tiêu màn hình này

  • Nhân viên xem các đơn mình đã gửi
  • Không nhìn thấy đơn của người khác

🔹 Thêm Gallery

  • Insert → Gallery → Vertical
  • Chọn dữ liệu: LeaveRequests

🔹 Lọc theo người đăng nhập

Items =
Filter(
    LeaveRequests,
    CreatedBy.Email = User().Email
)

👉 Giải thích:

  • User().Email = người đang dùng app
  • Không cần phân quyền phức tạp vẫn đảm bảo riêng tư

🔹 Hiển thị thông tin

Trong Gallery:

  • Title: LeaveType
  • Subtitle: StartDate & EndDate
  • Status: Status.Value

5️⃣ Màu trạng thái (rất nên làm)

🎯 Vì sao cần?

  • Người dùng nhìn là hiểu
  • Không cần đọc chữ nhiều
If(
    ThisItem.Status.Value = "Approved", Color.Green,
    ThisItem.Status.Value = "Rejected", Color.Red,
    Color.Orange
)

6️⃣ Màn hình 2 – Tạo đơn nghỉ phép mới (Form)

🔹 Thêm màn hình mới

  • Insert → New screen
  • Insert → Edit Form
  • DataSource: LeaveRequests

🔹 Cấu hình Form

  • DefaultMode: FormMode.New
  • Các field:
    • LeaveType
    • StartDate
    • EndDate
    • Reason

🔹 Tự động điền thông tin (RẤT QUAN TRỌNG)

EmployeeName

Default = User().FullName

CreatedBy

Default = User()

Status

Default = "Pending"

👉 Nhân viên không được chọn Status → tránh gian lận.


7️⃣ Tính số ngày nghỉ tự động

🎯 Tránh nhập tay → tránh sai

Ở field Days:

DateDiff(StartDate.SelectedDate, EndDate.SelectedDate) + 1

👉 +1 vì tính cả ngày đầu & cuối.


8️⃣ Nút Gửi đơn

🔹 Button “Gửi đơn”

SubmitForm(FormLeave);
Notify("Đã gửi đơn nghỉ phép", NotificationType.Success);
Back()

👉 App thân thiện, người dùng biết đã gửi thành công.


9️⃣ Màn hình xem chi tiết đơn (tuỳ chọn)

  • Cho nhân viên:
    • Xem lý do
    • Xem trạng thái
  • Không cho sửa sau khi gửi
DisplayMode = DisplayMode.View

🔟 Phân quyền đơn giản cho HR (giai đoạn đầu)

HR có thể:

  • Vào SharePoint
  • Sửa Status thủ công

👉 Không cần Power Automate ở giai đoạn này.


✅ Kết quả sau bài thực hành

Bạn đã có:

  • App nghỉ phép dùng thật
  • Nhân viên tự gửi đơn
  • Theo dõi trạng thái minh bạch
  • HR có dữ liệu tập trung
  • Nền tảng để làm duyệt tự động ở bài sau

🧠 Vì sao bài này CỐ TÌNH không làm duyệt tự động?

90% người mới học Power Apps fail
là do nhảy vào workflow quá sớm.

👉 Làm tốt bài này = bạn đã đi đúng hướng.


Scroll to Top