
📘 BÀI GIẢNG THỰC HÀNH
Tạo App ghi nhận sự cố IT (Power Apps + SharePoint)
Kịch bản
- Nhân viên tạo “phiếu báo lỗi” (ticket)
- IT xem danh sách ticket và cập nhật trạng thái xử lý
Mục tiêu sau buổi học
Học viên có thể:
- Tạo SharePoint List làm “cơ sở dữ liệu ticket”
- Tạo Power Apps gồm 3 màn hình:
- Nhân viên báo sự cố
- IT xem danh sách
- IT cập nhật trạng thái
- Chạy thử theo các kịch bản kiểm thử thực tế
🧰 Chuẩn bị trước khi thực hành
- Có tài khoản Microsoft 365 (có SharePoint + Power Apps)
- Quyền tạo SharePoint List trong site của công ty/lớp học
PHẦN A — TẠO “CƠ SỞ DỮ LIỆU” BẰNG SHAREPOINT LIST
A1. Tạo SharePoint List
- Vào SharePoint site (ví dụ: Team site)
- Chọn New → List
- Chọn Blank list
- Đặt tên List: IT_SuCo
- Bấm Create
✅ Giải thích: SharePoint List đóng vai trò như “database” lưu ticket. Power Apps sẽ đọc/ghi dữ liệu vào đây.
A2. Tạo các cột dữ liệu (Columns)
Mặc định SharePoint có cột Title. Bạn thêm các cột sau:
1) Cột MoTa (Mô tả)
- Type: Multiple lines of text
- Name:
MoTa
✅ Giải thích: mô tả chi tiết lỗi (nhân viên nhập).
2) Cột PhongBan
- Type: Choice
- Name:
PhongBan - Choices:
- Kế toán
- Kinh doanh
- IT
- Hành chính
✅ Giải thích: giúp IT ưu tiên theo phòng ban và lọc dữ liệu.
3) Cột MucDo
- Type: Choice
- Name:
MucDo - Choices:
- Thấp
- Trung bình
- Cao
- Khẩn cấp
✅ Giải thích: mức độ khẩn cấp của sự cố.
4) Cột TrangThai
- Type: Choice
- Name:
TrangThai - Choices:
- Mới tạo
- Đang xử lý
- Hoàn thành
✅ Giải thích: cột quan trọng để IT quản lý tiến độ.
5) Cột NgayBao
- Type: Date and Time
- Name:
NgayBao - Chọn Date only (khuyến nghị) hoặc Date & Time tùy bạn
✅ Giải thích: ngày tạo ticket để thống kê, lọc theo thời gian.
6) Cột NguoiBao
- Type: Person or Group
- Name:
NguoiBao
✅ Giải thích: lưu người báo lỗi; có thể tự động lấy từ tài khoản đăng nhập Power Apps.
PHẦN B — DỮ LIỆU MẪU (≥ 15 DÒNG) ĐỂ COPY-PASTE
B1. Bảng dữ liệu mẫu
👉 Cách dùng nhanh cho giảng viên/học viên:
Copy bảng này sang Excel, sau đó nhập vào SharePoint (Import).
Lưu ý:
NguoiBaolà Person nên khi import Excel có thể khó khớp nếu không đúng email. Bạn có 2 cách:
- Cách 1 (dễ nhất): import trước các cột không có NguoiBao, sau đó khi chạy app sẽ tự điền
NguoiBao = User().- Cách 2: nếu lớp học có danh sách email mẫu, mình sẽ viết phiên bản bảng có email chuẩn theo tenant của bạn.
Bảng mẫu (không gồm NguoiBao để import dễ):
| Title | MoTa | PhongBan | MucDo | TrangThai | NgayBao |
|---|---|---|---|---|---|
| Máy không lên nguồn | Bấm nút không khởi động | Kế toán | Cao | Mới tạo | 01/02/2026 |
| Không in được | Máy in báo lỗi kẹt giấy | Hành chính | Trung bình | Đang xử lý | 02/02/2026 |
| Mạng chậm | Internet lag, vào web lâu | Kinh doanh | Thấp | Hoàn thành | 02/02/2026 |
| Outlook không gửi mail | Báo lỗi kết nối server | IT | Cao | Mới tạo | 03/02/2026 |
| Màn hình nhấp nháy | Nhấp nháy liên tục khi mở máy | Kế toán | Trung bình | Đang xử lý | 03/02/2026 |
| Không đăng nhập được | Sai mật khẩu/khóa tài khoản | Kinh doanh | Thấp | Hoàn thành | 04/02/2026 |
| Laptop nóng | Quạt kêu to, máy nóng | IT | Trung bình | Mới tạo | 04/02/2026 |
| Chuột không hoạt động | Chuột không di chuyển | Hành chính | Thấp | Hoàn thành | 05/02/2026 |
| Máy treo liên tục | Mở phần mềm là đứng máy | Kế toán | Cao | Đang xử lý | 05/02/2026 |
| Không vào wifi | Báo “Limited” | Kinh doanh | Trung bình | Mới tạo | 06/02/2026 |
| Phần mềm lỗi | Không mở được phần mềm kế toán | IT | Cao | Mới tạo | 06/02/2026 |
| Webcam không nhận | Họp online không thấy camera | Hành chính | Trung bình | Đang xử lý | 07/02/2026 |
| Loa không có tiếng | Không nghe âm thanh | Kế toán | Thấp | Hoàn thành | 07/02/2026 |
| Máy khởi động chậm | Khởi động mất 5 phút | Kinh doanh | Trung bình | Mới tạo | 08/02/2026 |
| Bàn phím liệt phím | Một số phím không gõ được | IT | Cao | Đang xử lý | 08/02/2026 |
B2. Import dữ liệu vào SharePoint
- Mở List IT_SuCo
- Chọn New → Excel hoặc Integrate → Import data (tùy giao diện)
- Dán dữ liệu vào Excel, lưu file
- Import file Excel vào SharePoint, map đúng cột
✅ Kiểm tra: Sau khi import, SharePoint phải có ít nhất 15 dòng.
PHẦN C — TẠO POWER APPS
C1. Tạo Canvas App
- Power Apps → Create
- Chọn Canvas app
- Đặt tên: App_IT_HoTro
- Chọn layout: Tablet (khuyến nghị)
✅ Giải thích: Tablet bố cục rộng, dễ bố trí Gallery + Form khi dạy.
C2. Kết nối dữ liệu SharePoint List
- Vào tab Data
- Add data
- Chọn SharePoint
- Chọn site → chọn list IT_SuCo
- Add
✅ Giải thích: App muốn hiển thị/ghi ticket thì phải kết nối đúng datasource.
PHẦN D — MÀN HÌNH 1: NHÂN VIÊN BÁO SỰ CỐ
D1. Tạo màn hình “Báo sự cố”
- Insert → New screen → Form
- Đổi tên Screen:
scrBaoSuCo - Chọn EditForm (ví dụ tên form:
frmBaoSuCo) - DataSource của form:
IT_SuCo
Chọn các trường hiển thị
Trong form, chọn Edit fields và thêm:
- Title
- MoTa
- PhongBan
- MucDo
✅ Giải thích: nhân viên chỉ cần nhập 4 thông tin chính.
D2. Tự động điền NguoiBao, NgayBao, TrangThai
Ta không cho nhân viên tự chọn để tránh sai.
(1) Tự điền Người báo
Chọn DataCard của NguoiBao → Unlock (nếu bị khóa)
Trong Default của input, đặt:
User()
Và đặt DisplayMode của card thành:
DisplayMode.View
✅ Giải thích: User() lấy thông tin người đăng nhập app, đảm bảo đúng.
(2) Tự điền Ngày báo
DataCard NgayBao → Default:
Now()
DisplayMode:
DisplayMode.View
✅ Giải thích: Now() giúp auto timestamp khi tạo ticket.
(3) Tự đặt Trạng thái ban đầu = “Mới tạo”
DataCard TrangThai → Default:
{Value:"Mới tạo"}
DisplayMode:
DisplayMode.View
✅ Giải thích: ticket mới phải vào trạng thái “Mới tạo” để IT xử lý.
D3. Nút “Gửi yêu cầu”
Insert → Button, Text: Gửi yêu cầu
OnSelect:
SubmitForm(frmBaoSuCo);
Notify("Đã gửi yêu cầu thành công!", NotificationType.Success);
NewForm(frmBaoSuCo)
✅ Giải thích:
- SubmitForm: lưu dữ liệu
- Notify: thông báo cho người dùng
- NewForm: reset form để gửi ticket mới
PHẦN E — MÀN HÌNH 2: IT XEM DANH SÁCH TICKET
E1. Tạo màn hình “Danh sách”
Insert → New screen → Blank
Đổi tên: scrDanhSachIT
Insert → Vertical gallery
Đặt tên gallery: galTickets
Items của Gallery:
SortByColumns(IT_SuCo, "NgayBao", Descending)
✅ Giải thích: sắp xếp ticket mới nhất lên đầu.
E2. Hiển thị thông tin trong Gallery
Trong mỗi item của gallery, hiển thị:
- Title
- PhongBan
- MucDo
- TrangThai
- NgayBao
✅ Mẹo dạy học: dùng layout “Title, subtitle, body” để nhìn rõ.
E3. Lọc theo Trạng thái (Dropdown)
Insert → Dropdown, tên: ddTrangThai
Items:
["Tất cả","Mới tạo","Đang xử lý","Hoàn thành"]
Sửa Items của Gallery thành:
If(
ddTrangThai.Selected.Value = "Tất cả",
SortByColumns(IT_SuCo, "NgayBao", Descending),
SortByColumns(
Filter(IT_SuCo, TrangThai.Value = ddTrangThai.Selected.Value),
"NgayBao",
Descending
)
)
✅ Giải thích: IT chọn trạng thái để lọc nhanh.
PHẦN F — MÀN HÌNH 3: IT CẬP NHẬT TRẠNG THÁI
F1. Tạo màn hình “Chi tiết & xử lý”
Insert → New screen → Form screen
Đổi tên: scrXuLy
Tạo Edit form tên: frmXuLy
DataSource: IT_SuCo
Item:
galTickets.Selected
Chọn fields:
- Title (view)
- MoTa (view)
- PhongBan (view)
- MucDo (view)
- TrangThai (edit)
- (NguoiBao, NgayBao nếu muốn view)
✅ Giải thích: IT chỉ cần chỉnh TrangThai là chính.
F2. Chuyển màn hình khi IT bấm vào ticket
Trong galTickets, đặt OnSelect:
Navigate(scrXuLy, ScreenTransition.Fade)
F3. Nút “Cập nhật”
Insert → Button Text: Cập nhật trạng thái
OnSelect:
SubmitForm(frmXuLy);
Notify("Đã cập nhật trạng thái!", NotificationType.Success);
Back()
✅ Giải thích: lưu và quay lại danh sách.
PHẦN G — HƯỚNG DẪN CHẠY THỬ & KIỂM THỬ SAU KHI CHẠY (BẮT BUỘC)
G1. Chạy thử lần 1 (nhân viên tạo ticket)
- Bấm Play (▶) trên Power Apps
- Vào màn hình Báo sự cố
- Nhập:
- Title:
Không mở được file Excel - MoTa:
File báo corrupted, cần hỗ trợ - PhongBan:
Kế toán - MucDo:
Cao
- Title:
- Bấm Gửi yêu cầu
✅ Kết quả đúng:
- Có thông báo “Đã gửi yêu cầu thành công”
- SharePoint List xuất hiện dòng mới (TrangThai = Mới tạo)
G2. Chạy thử lần 2 (IT lọc và xem danh sách)
- Vào màn hình Danh sách IT
- Ở dropdown chọn Mới tạo
✅ Kết quả đúng:
- Ticket vừa tạo xuất hiện trong danh sách
- Các ticket mẫu import trước đó cũng hiển thị đúng theo lọc
G3. Chạy thử lần 3 (IT cập nhật trạng thái)
- Chọn ticket vừa tạo
- Chuyển sang màn hình xử lý
- Đổi
TrangThai:Mới tạo→Đang xử lý→ bấm Cập nhật
- Quay lại danh sách, lọc
Đang xử lýđể kiểm tra - Sau đó đổi tiếp
Hoàn thành
✅ Kết quả đúng:
- Trạng thái cập nhật ngay trong SharePoint
- Bộ lọc hoạt động chuẩn, ticket “chạy” qua các trạng thái
G4. Checklist lỗi thường gặp (để học viên tự sửa)
- Không thấy dữ liệu → kiểm tra DataSource đã Add đúng list chưa
- SubmitForm không lưu → kiểm tra Form.DataSource + Required fields
- TrangThai không đúng giá trị → phải đúng Choice (Mới tạo/Đang xử lý/Hoàn thành)
- galTickets.Selected bị rỗng → đảm bảo OnSelect của item gallery có Navigate
PHẦN H — BÀI TẬP THỰC HÀNH TRÊN LỚP
Bài tập 1 (bắt buộc)
Tạo thêm 2 ticket mới, mỗi ticket thuộc phòng ban khác nhau.
Bài tập 2 (lọc nâng cao)
Hiển thị chỉ các ticket chưa hoàn thành:
Gợi ý Items Gallery:
Filter(IT_SuCo, TrangThai.Value <> "Hoàn thành")
Bài tập 3 (thống kê nhanh)
Đếm số ticket “Đang xử lý”:
CountRows(Filter(IT_SuCo, TrangThai.Value = "Đang xử lý"))
✅ TỔNG KẾT
Học viên đã hoàn thành:
- SharePoint List quản lý ticket
- Power Apps 3 màn hình: báo lỗi → danh sách IT → cập nhật
- Dữ liệu mẫu ≥ 15 dòng
- Quy trình chạy thử & kiểm thử sau khi chạy