Điện tự động phân tích cú pháp bảng html

Trong khi chơi với “bảng HTML” vào đầu ngày hôm nay, tôi đột nhiên nhận ra rằng có vẻ như nó sâu hơn một chút so với tôi mong đợi

Giả sử bạn có Flow này

Và tưởng tượng rằng bạn muốn

  • Thêm tiêu đề có dấu cách
  • Thay đổi giao diện tổng thể của bảng được hiển thị

Hóa ra những điều đó không đơn giản như vậy

Tuy nhiên, để bắt đầu, khi lần đầu tiên tôi thử sử dụng Bảng HTML ngày hôm nay, tôi nhận thấy rằng mình đang gặp sự cố khi thêm các giá trị động. Thay vì màn hình giá trị động thông thường với hộp tìm kiếm và hai tab [“nội dung động” / “biểu thức”]

Tôi đã thấy nó

Bạn đã bao giờ thấy như vậy chưa? . Nó không phải là một tính năng mới

Chỉ cần thử thu nhỏ cửa sổ trình duyệt của bạn xuống. Ngay cả khi bạn hiện ở mức 100%, hãy giảm tỷ lệ xuống 90. Chắc chắn giảm xuống 100 nếu bạn ở mức 130. Khi bạn làm điều đó, có thể bạn sẽ thấy cửa sổ nội dung động thông thường

Tuy nhiên, hãy quay lại Bảng HTML

Việc sử dụng nội dung động cũng đơn giản như bất kỳ nơi nào khác trong Flows, nhưng làm cách nào để chúng tôi thêm màu, đường viền, sửa đổi kích thước văn bản, v.v.?

Ví dụ: nếu tôi thêm thẻ phông chữ HTML vào giá trị

Điều đó sẽ chỉ làm rối đầu ra vì các thẻ đó sẽ được thêm vào đó dưới dạng “văn bản” thay vì dưới dạng html

Vì vậy, có một bài đăng tuyệt vời giải thích khái niệm cơ bản đằng sau các tùy chọn định dạng Bảng HTML

https. //www. sharepointsiren. com/2019/07/formatting-html-tables-in-flow/

Về cơ bản, chúng ta cần lấy đầu ra và xử lý hậu kỳ. Tôi có thể dễ dàng lấy đầu ra bằng cách thêm hành động Soạn thư

Bạn có thể lấy nguồn đó và sử dụng TryIt để xem nó như thế nào

https. //www. w3schools. com/html/thử. asp?filename=tryhtml_intro

Điều gì sẽ xảy ra nếu thay vì làm hỏng HTML đó, chúng ta chỉ tạo kiểu cho bảng đó bằng biểu định kiểu bên ngoài?

Tất nhiên, nếu bạn muốn chơi với CSS, bạn có thể làm cho nó trông đẹp hơn. Tuy nhiên, làm cách nào để thêm CSS đó vào đầu ra của hành động Bảng HTML?

Trước tiên, hãy tải tệp CSS đó lên một số máy chủ web sẽ có sẵn từ bất kỳ đâu mà bảng cuối cùng sẽ được xem. Có thể đến Azure ở đâu đó [ví dụ. https. // tài liệu. Microsoft. com/en-us/azure/storage/blobs/storage-blob-static-website]

Trong trường hợp của tôi, tôi đang sử dụng tên lớp “styledtable”, vì vậy tôi chỉ cần thêm tên lớp đó vào thẻ bảng và tôi cũng cần thêm thẻ “link” vào đầu ra để liên kết tệp css của mình với . Đây là một hành động soạn thảo để làm điều đó

Và đây là chức năng thay thế [chắc chắn bạn sẽ cần điều chỉnh nó cho phù hợp với nhu cầu của mình]

replace[body[‘Create_HTML_table’],'

’,'
’]

Tất cả những gì còn lại là kiểm tra kết quả, vì vậy hãy thêm đầu ra vào email

Và vui vẻ với kết quả

Và một lưu ý cuối cùng… thông thường, bạn không được phép thêm dấu cách vào các trường tiêu đề. Tuy nhiên, tất nhiên, bạn luôn có thể sử dụng tác vụ Soạn thư để soạn nội dung nào đó có dấu cách, sau đó, sử dụng đầu ra của tác vụ đó cho các trường tiêu đề

Power Automate có nhiều lựa chọn kết nối tích hợp giúp dễ dàng kết nối dữ liệu từ các nguồn khác nhau mà không cần biết cách thực hiện lệnh gọi API. Đôi khi một trình kết nối không tồn tại trong trường hợp đó cần sử dụng hành động HTTP. Ở đây, chúng tôi có dữ liệu từ Dynamics Business Central được truy xuất bằng API được ghi lại với một thay đổi nhỏ đối với điểm cuối API


Điều chỉnh điểm cuối API của bạn để phản ánh những điều sau

//api.businesscentral.dynamics.com/v2.0///api/v1.0

where the is the guid for your tenant and the environment name is something like Production, Sandbox, etc.


Bài viết hướng dẫn bạn cách thiết lập xác thực một cách chính xác


Bây giờ chúng tôi có thể lấy dữ liệu, tôi sẽ sử dụng Dòng đơn đặt hàng bán hàng từ BC, chúng tôi có thể phân tích cú pháp, lọc và cắt bớt dữ liệu trước khi đưa dữ liệu vào bảng HTML để gửi email. Chúng tôi muốn gửi cho khách hàng của mình một email chứa các mặt hàng từ các đơn đặt hàng mở của họ chưa được vận chuyển. Bắt đầu nào


Làm thế nào

Đầu tiên, chúng ta cần phân tích dữ liệu để chỉ lấy những gì chúng ta cần. Trong trường hợp này, chúng tôi muốn lấy các mặt hàng chưa được vận chuyển hoàn toàn. Trường đó trong BC được tính theo cách này, mà chúng ta sẽ thấy trong hành động lọc. Bằng cách sử dụng tác vụ Phân tích cú pháp JSON trong Power Automate, chúng tôi bao gồm Nội dung từ tác vụ HTTP và tải trọng mẫu của chúng tôi như sau

{

"loại" . "đối tượng" ,

"thuộc tính" . {

"@@odata. ngữ cảnh" . {

"loại" . "chuỗi"

},

"giá trị" . {

"loại" . "mảng" ,

"mặt hàng" . {

"loại" . "đối tượng" ,

"thuộc tính" . {

"Document_Type" . {

"loại" . "chuỗi"

},

"Document_No" . {

"loại" . "chuỗi"

},

"Loại" . {

"loại" . "chuỗi"

},

"Không" . {

"loại" . "chuỗi"

},

"Mô tả" . {

"loại" . "chuỗi"

},

"Số lượng" . {

"loại" . "số nguyên"

},

"Số lượng_vượt trội" . {

"loại" . "số nguyên"

}

}

}

}

}

}


Bạn có thể bao gồm nhiều lĩnh vực hơn nếu bạn muốn


Sau đó, chúng tôi lọc dữ liệu bằng cách sử dụng tác vụ Lọc mảng và bao gồm giá trị từ bước Phân tích cú pháp JSON cùng với bộ lọc chế độ nâng cao này

@or[bằng[item[]?['Quantity'], 0],not[bằng[item[]?['Outstanding_Quantity'],0]]]


Thao tác này lấy dữ liệu từ API và lọc nó để chỉ bao gồm các mục nổi bật nhưng vẫn giữ nguyên định dạng JSON


Hành động Chọn cho phép chúng tôi chỉ chọn các cột mà chúng tôi muốn;


Sau đó, chúng tôi sử dụng bảng Tạo HTML với đầu ra từ hành động Chọn làm đầu vào. Sau đó, bạn có thể đưa đầu ra từ bảng Tạo HTML vào email và xem kết quả


Một đại diện trực quan của dòng chảy dưới đây




Phần kết luận

Bạn có thể muốn sử dụng một biến mảng làm đầu vào cho hành động Tạo bảng HTML, nhưng điều đó sẽ hạn chế đáng kể bảng của bạn và bạn sẽ gặp phải vấn đề về định nghĩa cột. Hành động Chọn cho phép bạn sử dụng định nghĩa cột tự động trong bảng Tạo HTML trong khi sử dụng định nghĩa cột tùy chỉnh có lỗi và không được duy trì sau khi bạn lưu và chạy quy trình

Làm cách nào để phân tích cú pháp bảng HTML trong Power Automate?

Để chỉ trích xuất bảng, hãy lấy đầu ra đầu tiên từ 'Mảng lọc'. Sử dụng một biểu thức split[…] khác, lần này chia tách bằng thẻ đóng bảng '
' và lấy mọi thứ trước đó. Trả lại các thẻ mở và thẻ đóng đã bị xóa bằng dấu tách [...]

Bạn có thể sử dụng HTML trong Power Automate không?

Tùy chọn 1. Viết HTML trực tiếp vào luồng . Nhập bất kỳ nội dung HTML nào vào phần nội dung của email.

Làm cách nào để trích xuất bảng từ HTML Python?

Điều này có thể đạt được thông qua hàm read_html[] , rất đơn giản và nhanh chóng. Trong hầu hết các trường hợp, các bảng cạo cần một số quy trình làm sạch. Hàm read_html[] cũng cung cấp một tham số đầu vào thú vị, được gọi là match, có thể được khai thác để trích xuất các bảng rất cụ thể trong một trang HTML phức tạp.

Chủ Đề