Lưu ý
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử đăng nhập hoặc thay đổi thư mục.
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử thay đổi thư mục.
Power Fx là ngôn ngữ mã thấp để diễn đạt logic Microsoft Power Platform. Đó là một ngôn ngữ lập trình đa dụng, kiểu mạnh, khai báo và chức năng.
Power Fx được thể hiện bằng văn bản thân thiện với con người. Đó là một ngôn ngữ ít dùng mã mà các nhà sản xuất có thể làm việc trực tiếp trong thanh công thức giống như Excel hoặc cửa sổ văn bản Visual Studio Code. "Ít dùng mã" là do do tính chất ngắn gọn và đơn giản của ngôn ngữ này, làm cho các nhiệm vụ lập trình thông thường trở nên dễ dàng cho cả nhà sản xuất và nhà phát triển.
Power Fx cho phép phát triển toàn diện từ những người không cần viết code, không có bất kỳ kiến thức lập trình nào cho đến những người viết code chuyên nghiệp. Nó cho phép nhiều nhóm khác nhau cộng tác và tiết kiệm thời gian và công sức.
Sử dụng Power Fx trong luồng máy tính để bàn
Để sử dụng Power Fx như một ngôn ngữ biểu thức trong luồng máy tính để bàn, bạn phải tạo một luồng máy tính để bàn và bật nút chuyển đổi tương ứng khi tạo luồng thông qua Power Automate cho bảng điều khiển của máy tính để bàn.
Sự khác biệt trong các luồng được kích hoạt Power Fx
Lưu ý
Mỗi biểu thức phải bắt đầu bằng dấu "=" (dấu bằng). Power Fx
Nếu bạn đang chuyển đổi từ luồng bị vô hiệu hóa, bạn có thể nhận thấy một số khác biệt. Power Fx Để đơn giản hóa trải nghiệm của bạn khi tạo luồng máy tính để bàn mới, sau đây là một số khái niệm chính cần ghi nhớ:
Tương tự như công thức Excel, các luồng máy tính để bàn sử dụng Power Fx làm ngôn ngữ biểu thức của chúng sẽ sử dụng chỉ mục mảng dựa trên 1 (một) thay vì chỉ mục dựa trên 0 (không). Ví dụ, biểu thức
=Index(numbersArray, 1)
trả về phần tử đầu tiên của mảngnumbersArray
.Tên biến phân biệt chữ hoa chữ thường trong luồng máy tính để bàn với Power Fx. Ví dụ, NewVar khác với newVar.
Khi được bật trong luồng máy tính để bàn, cần phải khởi tạo biến trước khi sử dụng. Power Fx Cố gắng sử dụng một biến chưa được khởi tạo trong Power Fx biểu thức sẽ dẫn đến lỗi.
Hành động Nếu chấp nhận một biểu thức điều kiện duy nhất. Trước đây, nó chấp nhận nhiều toán hạng.
Trong khi các luồng không được Power Fx kích hoạt có thuật ngữ "Giá trị chung" để biểu thị một loại đối tượng không xác định, Power Fx xoay quanh một hệ thống loại nghiêm ngặt. Trong các luồng được kích hoạt, có sự phân biệt giữa các biến động (biến có kiểu hoặc giá trị có thể thay đổi trong thời gian chạy) và các giá trị động (giá trị có kiểu hoặc lược đồ được xác định trong thời gian chạy). Power Fx Để hiểu rõ hơn sự khác biệt này, hãy xem xét ví dụ sau.
dynamicVariable
thay đổi kiểu của nó trong thời gian chạy từ aNumeric
thành aBoolean
giá trị, trong khidynamicValue
được xác định trong thời gian chạy là một đối tượng không có kiểu, với kiểu thực tế của nó là aCustom object
:Các giá trị được coi là giá trị động là:
- Bảng dữ liệu
- Đối tượng tùy chỉnh với lược đồ không xác định
- Đầu ra hành động động (ví dụ: hành động "Chạy tập lệnh .NET")
- Đầu ra từ hành động "Chạy luồng máy tính để bàn"
- Bất kỳ hành động nào đầu ra không có lược đồ được xác định trước (ví dụ: "Đọc từ bảng tính Excel" hoặc "Tạo danh sách mới")
Các giá trị động được xử lý tương tự như Power Fx Đối tượng không có kiểu và thường yêu cầu các hàm rõ ràng được chuyển đổi thành kiểu cần thiết (ví dụ:
Bool()
vàText()
). Để đơn giản hóa trải nghiệm của bạn, có một chuyển đổi ngầm định khi sử dụng giá trị động làm đầu vào hành động hoặc làm một phần của biểu thức. Power Fx Không có xác thực trong quá trình biên soạn, nhưng tùy thuộc vào giá trị thực tế trong thời gian chạy, lỗi thời gian chạy sẽ xảy ra nếu quá trình chuyển đổi không thành công.Bất cứ khi nào một biến động được sử dụng, một thông báo cảnh báo có nội dung "Đã cung cấp loại bị trì hoãn" sẽ được hiển thị. Những cảnh báo này phát sinh do yêu cầu nghiêm ngặt của Power Fx đối với các lược đồ có kiểu mạnh (kiểu được xác định nghiêm ngặt). Biến động không được phép sử dụng trong danh sách, bảng hoặc làm thuộc tính cho giá trị Bản ghi.
Bằng cách kết hợp hành động Run Power Fx expression với các biểu thức sử dụng các hàm Collect, Clear, ClearCollect và Patch , bạn có thể mô phỏng hành vi được tìm thấy trong các hành động Add item to list and Insert row into data table trước đây không khả dụng đối với các luồng máy tính để bàn được kích hoạt Power Fx . Trong khi cả hai hành động vẫn khả dụng, hãy sử dụng hàm Collect khi làm việc với các danh sách có kiểu dữ liệu mạnh (ví dụ: danh sách tệp). Hàm này đảm bảo danh sách vẫn được nhập, vì khi sử dụng hành động Thêm mục vào danh sách sẽ chuyển đổi danh sách thành một đối tượng không được nhập.
Ví dụ
-
=1
trong trường nhập liệu tương đương với giá trị số 1. -
= variableName
bằng giá trị của biến variableName. - Biểu thức
= {'prop':"value"}
trả về một giá trị bản ghi tương đương với một đối tượng tùy chỉnh. - Biểu thức
= Table({'prop':"value"})
trả về một Power Fx bảng tương đương với danh sách các đối tượng tùy chỉnh. - Biểu thức -
= [1,2,3,4]
tạo ra một danh sách các giá trị số. - Để truy cập giá trị từ một Danh sách, hãy sử dụng hàm
Index(var, number)
, trong đó var là tên của Danh sách và number là vị trí của giá trị cần lấy. - Để truy cập vào ô trong bảng dữ liệu bằng chỉ mục cột, hãy sử dụng hàm
Index()
.=Index(Index(DataTableVar, 1), 2)
lấy giá trị từ ô ở hàng 1 trong cột 2.=Index(DataRowVar, 1)
lấy giá trị từ ô ở hàng 1. - Để đưa giá trị nội suy vào đầu vào hoặc bộ chọn phần tử UI/web, hãy sử dụng cú pháp sau:
Text before ${variable / expression} text after
- Ví dụ:
The total number is ${Sum(10, 20)}
- Ví dụ:
Lưu ý
Nếu bạn muốn sử dụng dấu đô la ($
) theo sau là dấu ngoặc nhọn mở ({
) trong biểu thức Power Fx hoặc trong cú pháp của bộ chọn thành phần UI/Web và muốn Power Automate máy tính để bàn không coi đó là cú pháp nội suy chuỗi, hãy đảm bảo tuân theo cú pháp này: $${
(dấu đô la đầu tiên sẽ đóng vai trò là ký tự thoát)
Các chức năng có sẵn Power Fx
Để biết danh sách đầy đủ tất cả các hàm có sẵn trong Power Automate cho luồng máy tính để bàn, hãy truy cập Tham chiếu công thức - luồng máy tính để bàn.
Các sự cố và giới hạn đã biết
- Các hành động sau đây từ thư viện chuẩn của hành động tự động hóa hiện không được hỗ trợ:
- Chuyển
- Case
- Default case
- Một số chức năng được trình bày thông qua IntelliSense hiện không được hỗ trợ trong luồng máy tính để bàn. Power Fx Các hàm đó hiển thị lỗi thời gian thiết kế sau khi sử dụng: "Tham số 'Giá trị': Loại PowerFx 'OptionSetValueType' không được hỗ trợ."
Có gì mới
Phần này liệt kê những thay đổi trong mỗi bản cập nhật.
2.48
Bản phát hành tháng 9 năm 2024:
- Bật lại các hành động thao tác danh sách và bảng dữ liệu trước đây không được hỗ trợ từ danh mục Biến .
- Hỗ trợ đối tượng không được gõ gốc cho các đối tượng tùy chỉnh, danh sách và bảng dữ liệu. Tìm hiểu thêm về các đối tượng không được gõ tại Kiểu dữ liệu đối tượng không được gõ.
- Thay đổi này được đưa ra nhằm mục đích giảm các cảnh báo về thời gian thiết kế và việc sử dụng các kiểu bị trì hoãn. Đối tượng không có kiểu là một cách xử lý các kiểu có lược đồ không xác định tại thời điểm thiết kế.
- Trong các phiên bản trước, biến động (các biến có kiểu hoặc giá trị có thể thay đổi trong thời gian chạy) và giá trị động (các giá trị có kiểu hoặc lược đồ được xác định trong thời gian chạy) được xử lý theo cùng một cách. Khi giá trị động hoặc biến động được sử dụng trong Power Fx biểu thức, cảnh báo sẽ được kích hoạt: "Đã cung cấp loại bị trì hoãn". Những cảnh báo này xảy ra vì Power Fx áp dụng lược đồ loại nghiêm ngặt (các loại được xác định rõ ràng). Bắt đầu từ phiên bản này, chúng ta phân biệt hai trường hợp này. Trong khi các biến động tiếp tục tạo cảnh báo "kiểu bị trì hoãn", các giá trị động hiện được coi là các đối tượng không có kiểu.
- Tất cả các biến trong bảng dữ liệu đều không được gán kiểu, trong khi các đối tượng tùy chỉnh thu được từ hành động Chuyển đổi JSON thành đối tượng tùy chỉnh đều không được gán kiểu. Danh sách sẽ không được định kiểu sau khi thao tác chúng bằng Power Automate đối với các hành động trên máy tính từ danh mục Biến .
- Trước đây, một số hành động tự động hóa nhất định từ thư viện hành động chuẩn, chẳng hạn như Đọc từ Excel, Đọc từ CSV, Trích xuất dữ liệu từ trang web, Trích xuất dữ liệu từ cửa sổ, Thực thi câu lệnh SQL và Chuyển đổi JSON thành đối tượng tùy chỉnh sẽ tạo ra một biến động cùng với cảnh báo "kiểu bị trì hoãn". Thay vào đó, chúng tạo ra một bảng dữ liệu không có kiểu hoặc biến đối tượng tùy chỉnh không có kiểu.
-
Chức năng Set Power Fx hiện đã được bật nhưng chưa được hỗ trợ đầy đủ. Mặc dù không thể sử dụng để sửa đổi giá trị của biến trực tiếp, nhưng có thể sử dụng với các cấu trúc trên để cập nhật các thuộc tính đối tượng tùy chỉnh và giá trị của danh sách trong các chỉ mục cụ thể (ví dụ:
=Set(Index(Index(DataTable, 1), 1), 42)
hoặc=Set(customObject.property, 17)
). - Đã khắc phục sự cố liên quan đến việc truy cập các thuộc tính danh sách lồng nhau của một đối tượng trong các luồng được kích hoạt. Power Fx
Thận trọng
Trong phiên bản 2.48 của Power Automate dành cho máy tính để bàn, đã có các bản cập nhật cho Power Fx các luồng máy tính để bàn được kích hoạt có thể ảnh hưởng đến việc thực hiện Power Fx các luồng được kích hoạt được tạo bằng các phiên bản trước đó. Bạn nên kiểm tra kỹ lưỡng phiên bản này với các luồng hiện có của mình. Power Fx
- Đầu ra luồng con: Hãy thận trọng khi sử dụng các biến đầu ra từ luồng con trong luồng máy tính để bàn được Power Fx kích hoạt. Điều này liên quan đến các biến đầu ra có kiểu danh sách, đối tượng tùy chỉnh và bảng dữ liệu.
-
Mảng cột giá trị đơn: Mảng được tạo bằng biểu thức như
=[1, 2, 3]
sẽ tạo ra mảng cột giá trị đơn trong Power Fx các luồng được kích hoạt, trong đó các mục là đối tượng có một thuộc tính duy nhất:{Value: 1}
. Cố gắng truy cập thuộc tínhValue
của mục này, sau khi sửa đổi mảng đầu tiên bằng một hành động, sẽ dẫn đến lỗi biên soạn. -
Power Fx sử dụng hàm: Trong một số Power Fx hàm nhất định, chẳng hạn như
IsEmpty()
, các phiên bản trước chấp nhận biến động làm đối số và không đưa ra lỗi xác thực. Với phiên bản 2.48, việc sử dụng biến được xử lý như biến động sẽ dẫn đến lỗi xác thực và không thực thi được các luồng hiện có. Giải pháp cho vấn đề này là áp dụng phép ép kiểu thích hợp cho giá trị động (không có kiểu). Tìm hiểu thêm về các hàm ép kiểu trong Kiểu dữ liệu đối tượng không có kiểu. Bạn có thể gặp phải sự cố này khi chỉnh sửa luồng và nhận được thông báo lỗi như "Kiểu đối số không hợp lệ (UntypedObject). Thay vào đó, mong đợi giá trị Bảng." Để giải quyết vấn đề này, hãy làm theo thông báo lỗi để chuyển đổi biểu thức của bạn thành biểu thức hợp lệ.- Các ví dụ khác về hàm có thể gây ra lỗi xác thực khi sử dụng kết hợp các biến động và biến có kiểu là
Sum()
,Filter()
,Concatenate()
và các toán tử nhưin
(ví dụ:"string" in DynamicValueObject
).
- Các ví dụ khác về hàm có thể gây ra lỗi xác thực khi sử dụng kết hợp các biến động và biến có kiểu là
-
So sánh biến: Tương tự như vấn đề đã đề cập trước đó, có thể có sự không tương thích về kiểu khi bạn áp dụng các toán tử so sánh (
=
,<>
,>
,<
v.v.) trên các biểu thức liên quan đến các giá trị động. Hãy thận trọng và áp dụng phép biến đổi thích hợp trước khi so sánh các giá trị động.
2.43
Bản phát hành tháng 4 năm 2024:
- Phân biệt chữ hoa và chữ thường. Ví dụ, NewVar là một biến khác với newVar.
- Hành động chạy Power Fx biểu thức có sẵn trong nhóm hành động Biến . Biểu thức Run Power Fx cho phép bạn thực thi biểu thức trực tiếp trên nguồn dữ liệu.
- Các chức năng Collect, Clear, ClearCollect Power Fx được hỗ trợ trong các luồng máy tính để bàn.
- Các chức năng vá Power Fx được hỗ trợ trong luồng máy tính để bàn.
- Biến và biểu thức có thể được sử dụng trong cú pháp của phần tử UI hoặc bộ chọn web. Power Fx
- Giờ đây, các giá trị nội suy có thể được đưa vào cú pháp của bộ chọn thành phần UI/web. Đối với các chuỗi nội suy, bạn có thể sử dụng cú pháp này: ${ Power Fx biểu thức }.
Quan trọng
Trong phiên bản 2.43 của Power Automate dành cho máy tính để bàn, đã có các bản cập nhật cho Power Fx các luồng máy tính để bàn được kích hoạt có thể ảnh hưởng đến việc thực thi Power Fx các luồng máy tính để bàn được kích hoạt được tạo bằng các phiên bản trước đó. Đặc biệt:
- Tên biến phân biệt chữ hoa chữ thường: Tên biến trong Power Fx các luồng máy tính để bàn được kích hoạt được tạo bằng Power Automate cho máy tính để bàn phiên bản 2.43 trở lên phân biệt chữ hoa chữ thường. Power Fx luồng máy tính để bàn được tạo bằng Power Automate cho phiên bản máy tính để bàn 2.42 trở về trước cho phép sử dụng tên biến không phân biệt chữ hoa chữ thường. Ví dụ: NewVar và newVAR đều tham chiếu đến cùng một biến. Đối với Power Fx các luồng máy tính để bàn được kích hoạt được tạo bằng Power Automate phiên bản máy tính để bàn 2.42 trở về trước , hãy đảm bảo xem xét và xác minh rằng các biến được tạo ra là như mong đợi.
2.42
Bản phát hành tháng 3 năm 2024:
- Tính năng IntelliSense hiện khả dụng cho các luồng máy tính để bàn được kích hoạt. Power Fx
- Tô màu cú pháp
- Chức năng tự động hoàn thành trong khi nhập với các gợi ý theo thời gian thực
- Trợ lý chữ ký cho các hàm Power Fx
Lưu ý
Khả năng IntelliSense có sẵn cho các biểu thức. Để nhập một biểu thức, hãy sử dụng dấu bằng (= biểu thức của bạn ) ở đầu phần nhập tương ứng hoặc ký hiệu nội suy chuỗi ( ${ biểu thức của bạn } ).
- Bộ chọn chức năng
- Bạn có thể truy cập vào trình chọn chức năng bằng cách sử dụng nút fx trên skittle khi tương tác với các đầu vào tương ứng. Tất cả Power Fx chức năng hiện được hỗ trợ cho luồng máy tính để bàn đều có sẵn tại đây.
2.41
Bản phát hành tháng 2 năm 2024:
- Từ bây giờ, các dữ liệu đầu vào không bắt đầu bằng dấu bằng (=) sẽ được coi là giá trị kiểu văn bản. Đầu vào số và boolean phải luôn bắt đầu bằng dấu bằng.
- Đầu vào hiện hỗ trợ chuỗi nội suy. Để đưa giá trị nội suy vào đầu vào, hãy sử dụng cú pháp sau:
Text before ${variable/ expression} text after
.- Ví dụ:
The total number is ${Sum(10, 20)}
- Ví dụ:
Lưu ý
Để sử dụng cú pháp chuỗi nội suy, hãy bỏ dấu bằng (=) ở đầu dữ liệu nhập.
2.39
Bản phát hành tháng 12 năm 2023:
- Nếu dữ liệu đầu vào không bắt đầu bằng dấu bằng thì các quy tắc sau sẽ được áp dụng:
- Các giá trị số không có khoảng trắng được hiểu là giá trị số.
- Đúng/Sai là giá trị đầu vào, bất kể chữ hoa chữ thường và không có khoảng trắng đều được hiểu là giá trị boolean.
- Tất cả các dữ liệu đầu vào khác đều được coi là giá trị kiểu văn bản.