Vấn đề :
Chúng ta 1 bảng dữ liệu tổng hợp như thế này dạng Excel, Google Sheet,Sharepoint List nằm trên Onedrive,Google Drive, Sharepoint có các yêu cầu đặt ra
- Lọc theo ngày mình yêu cầu
- Tính tổng giá trị cột Count
- Đếm số dòng lặp lại cho mỗi dữ liệu
- Tự động trích xuất báo báo và gửi mail
Chúng ta phải tự động báo cáo như thế nào ?
Date | Month | Name | ID | Count |
08-Mar-21 | 9 | A | 1 | 4 |
08-Mar-21 | 9 | A | 2 | 5 |
08-Mar-21 | 9 | A | 3 | 6 |
08-Mar-21 | 9 | B | 4 | 7 |
08-Mar-21 | 9 | B | 5 | 8 |
08-Mar-21 | 9 | C | 6 | 9 |
08-Mar-21 | 9 | C | 7 | 9 |
08-Mar-21 | 9 | F | 8 | 3 |
08-Mar-21 | 9 | F | 9 | 7 |
08-Mar-21 | 9 | G | 10 | 8 |
08-Mar-21 | 9 | H | 11 | 9 |
08-Mar-21 | 9 | K | 12 | 4 |
08-Mar-21 | 9 | K | 13 | 2 |
08-Mar-21 | 9 | K | 14 | 6 |
09-Mar-21 | 9 | B | 1 | 4 |
09-Mar-21 | 9 | B | 1 | 3 |
09-Mar-21 | 9 | K | 1 | 7 |
09-Mar-21 | 9 | B | 1 | 8 |
10-Mar-21 | 9 | C | 1 | 9 |
10-Mar-21 | 9 | S | 1 | 4 |
10-Mar-21 | 9 | B | 1 | 2 |
10-Mar-21 | 9 | C | 1 | 6 |
10-Mar-21 | 9 | V | 1 | 4 |
11-Mar-21 | 9 | C | 1 | 7 |
11-Mar-21 | 9 | C | 1 | 8 |
11-Mar-21 | 9 | C | 1 | 9 |
12-Mar-21 | 9 | D | 1 | 4 |
12-Mar-21 | 9 | D | 1 | 2 |
12-Mar-21 | 9 | D | 1 | 6 |
12-Mar-21 | 9 | D | 1 | 4 |
12-Mar-21 | 9 | G | 1 | 7 |
12-Mar-21 | 9 | D | 1 | 8 |
11-Mar-21 | 9 | D | 1 | 9 |
07-Mar-21 | 9 | K | 1 | 4 |
07-Mar-21 | 9 | D | 1 | 2 |
08-Mar-21 | 9 | E | 1 | 6 |
09-Mar-21 | 9 | E | 1 | 4 |
09-Mar-21 | 9 | F | 1 | 7 |
09-Mar-21 | 9 | E | 1 | 8 |
10-Mar-21 | 9 | T | 1 | 9 |
10-Mar-21 | 9 | E | 1 | 4 |
10-Mar-21 | 9 | A | 1 | 2 |
09-Mar-21 | 9 | E | 1 | 6 |
GIẢI PHÁP
Bước 1:
Đầu vào của chúng ta sẽ bằng Nút Bấm (Button) yêu cầu nhập ngày vào Nút Bấm
Giá trị Đầu vào: Trigger Date - Định dạng ngày tháng năm (YYYY-MM-DD)
Cũng như lập trình, ta cũng cần phải khai báo biến sử dụng Variable
Đặt biến Count : Interger (Số nguyên)
Tải File Excel hoặc Sharepoint của bạn vào
Filter Query : DATE eq 'Trigger date'
Mục đích của việc lọc ở bước này sẽ giúp nhanh và giảm tải khả năng xử lý của hệ thống. Tránh chạy vòng lặp Apply to Each sẽ rất nặng
Đặt biến RepeatName : Array (mãng)
Biến dạng dãy bởi vì cột Name dạng một dãy dữ liệu
Bước 5:
Sử dụng vòng lặp
Value : là Value từ Bước 3
Sử dụng Tăng Biến
Biến cần tăng lên đó là cột Name
Nghĩa là qua mỗi vòng lặp các dãy dữ liệu excel dữ liệu sẽ được tạo thành một mãn với nhiều giá trị được cộng dồn lại
Bước 6:
Sử dụng Data Operation --> Compose (Soản thảo)
Expression:
union(variables('RepeatName'),variables('RepeatName'))
Bước 7:
Đặt biến GroupName là Array
Bước 8: Mở ra vòng lặp Apply to each 2
Output : từ Uni-Name
Compose3 : expression =item()
Bước 9:
Lọc dãy Value = Tải file excel ở bước 3 xuống
Giá trị Name = Output ('Compose3')
Bước 10:
Bước này chúng ta sẽ đếm được Mỗi hạng mục có bao nhiêu dòng
Bằng cách tạo một Compose (Soạn)
Expression= length(body('Filter_array'))
Bước 11: Mở vòng lặp thứ 3
Body= Body('Filter_array') ở bên trên
Mở một Tăng biến khác cho giá trị Count khai báo ban đầu
Value = int(items('Apply_to_each_3')['Count'])
Sau đó thoát ra khỏi vòng lặp số 3
Bước 12:
Tăng biến cho GroupName đã tạo ở trên để làm cơ sở để tạo ra một HTML cho việc dễ báo cáo
{
"Product": @{outputs('Compose_3')},
"Total": @{variables('Count')},
"Count": @{outputs('length')}
}
Bước 13:
Thiết lặp biến Count trở về số 0 sau mỗi giá trị Name để tránh cộng dồn.
Dùng Set Available trong Variable
Bước 14:
tạo ra bảng HTML để báo cáo
Style HTML : Phần này chỉ là câu lệnh giúp làm đẹp HTML
Bước 15:
Gửi báo cáo qua mail
Output1= Output('Style HTML')
Output2= Output('Creat HTML table')
Nhận xét