Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Power Fx to język niskokodowy do wyrażania logiki procesów na platformie Microsoft Power Platform. Jest to ogólny, dobrze wpisany, deklaracyjny i funkcjonalny język programowania.
Power Fx jest wyrażany w przyjaznym użytkownikowi formacie tekstowym. Jest to język niskiej zawartości kodu, z którym można pracować bezpośrednio w pasku formuł lub w oknie tekstowym, podobnie jak w programie Visual Studio Code lub w programie Excel. Określenie „niska zawartość kodu” wynika z tego, że jest to prosty i zwięzły język, co ułatwia tworzenie typowych zadań programistycznych zarówno deweloperom, jak i twórcom.
Power Fx umożliwia pełne spektrum programowania, od twórców kodu bez żadnej wiedzy programistycznej po pro-kodowanie dla profesjonalnych programistów. Umożliwia współpracę różnym zespołom, oszczędzając czas i wysiłki.
Power Fx w przepływach pulpitu
Aby używać Power Fx jako języka wyrażeń w przepływie pulpitu, musisz utworzyć przepływ pulpitu i włączyć odpowiedni przycisk przełączania podczas tworzenia przepływu w konsoli aplikacji klasycznej Power Automate.
Różnice we włączonych przepływach Power Fx
Uwaga
Każde wyrażenie Power Fx musi zaczynać się od znaku "=" (równa się).
Jeśli przechodzisz z przepływów, w których Power Fx jest wyłączona, możesz zauważyć pewne różnice. Aby usprawnić środowisko podczas tworzenia nowych przepływów pulpitu, należy pamiętać o następujących kluczowych pojęciach:
Podobnie jak formuły programu Excel, przepływy pulpitu, które używają Power Fx jako języka wyrażeń, używają indeksowania tablic opartego na 1 (jednym) zamiast indeksowania opartego na 0 (zerze). Na przykład wyrażenie
=Index(numbersArray, 1)
zwraca pierwszy element tablicynumbersArray
.W nazwach zmiennych wielkość liter jest uwzględniana w przepływach pulpitu za pomocą Power Fx. Na przykład NewVar różni się od newVar.
Jeśli opcja Power Fx jest włączona w przepływie pulpitu, przed użyciem wymagana jest inicjalizacja zmiennej. Próba użycia niezainicjowanej zmiennej w wyrażeniach Power Fx powoduje błąd.
Akcja If akceptuje pojedyncze wyrażenie warunkowe. Wcześniej zaakceptowano wiele stron.
Podczas gdy przepływy bez włączonej funkcji Power Fx mają termin "Wartość ogólna", aby oznaczyć nieznany typ obiektu, przy włączonej funkcji Power Fx są one bliżej ścisłego systemu typów. W przepływach z włączoną funkcją Power Fx istnieje rozróżnienie między zmiennymi dynamicznymi (zmiennymi, których typ lub wartość można zmienić w czasie wykonywania) i wartościami dynamicznymi (wartościami, których typ lub schemat jest określany w czasie wykonywania). Aby lepiej zrozumieć to rozróżnienie, rozważmy następujący przykład.
dynamicVariable
zmienia typ w czasie wykonywania z wartościNumeric
na wartośćBoolean
, podczas gdydynamicValue
jest określany w czasie wykonywania jako obiekt bez typu, a jego rzeczywistym typem jestCustom object
:Wartości, które są traktowane jako wartości dynamiczne, to:
- Tabele danych
- Obiekty niestandardowe o nieznanym schemacie
- Dane wyjściowe akcji dynamicznej (na przykład akcja "Uruchom skrypt .NET")
- Dane wyjściowe akcji "Uruchom przepływ pulpitu"
- Dowolne dane wyjściowe akcji bez wstępnie zdefiniowanego schematu (na przykład "Odczyt z arkusza programu Excel" lub "Utwórz nową listę")
Wartości dynamiczne są traktowane podobnie do obiektu bez typu Power Fx i zwykle wymagają przekonwertowania funkcji jawnych na wymagany typ (na przykład
Bool()
iText()
). Aby usprawnić środowisko, istnieje niejawna konwersja podczas używania wartości dynamicznej jako danych wejściowych akcji lub jako części wyrażenia Power Fx. Podczas tworzenia nie ma walidacji, ale w zależności od rzeczywistej wartości w czasie wykonywania wystąpi błąd środowiska uruchomieniowego, jeśli konwersja zakończy się niepowodzeniem.Za każdym razem, gdy używana jest zmienna dynamiczna, wyświetlany jest komunikat ostrzegawczy "Podano typ odroczony". Ostrzeżenia te powstają z powodu ścisłego wymagania Power Fx dotyczącego schematów o silnych typach (ściśle zdefiniowane typy). Zmienne dynamiczne nie są dozwolone na listach, w tabelach ani jako właściwość wartości rekordów.
Łącząc akcję Uruchom wyrażenie Power Fx z wyrażeniami używającymi Collect, Clear, ClearCollect i Patch można emulować zachowanie występujące w akcjach Dodaj produkt do listy i Wstaw wiersz do tabeli danych, które wcześniej nie były dostępne dla przepływów pulpitu z włączoną obsługą Power Fx. Chociaż obie akcje są nadal dostępne, użyj funkcji Collect podczas pracy z listami o jednoznacznie określonym typie (na przykład listą plików). Ta funkcja zapewnia, że lista pozostanie wpisana, ponieważ użycie akcji Dodaj element do listy powoduje konwersję listy na obiekt bez typu.
Przykłady
=1
w polu wejściowym odpowiada wartości liczbowej 1= variableName
jest równe wartości zmiennej variableName.- Wyrażenie
= {'prop':"value"}
zwraca wartość rekordu, która jest równoważna obiektowi niestandardowemu. - Wyrażenie
= Table({'prop':"value"})
zwraca tabelę Power Fx, która jest równoważna liście obiektów niestandardowych. - Wyrażenie
= [1,2,3,4]
tworzy listę wartości numerycznych. - Aby uzyskać dostęp do wartości z listy, użyj funkcji
Index(var, number)
, gdzie var to nazwa listy, a liczba to pozycja wartości, która ma zostać pobrana. - Aby uzyskać dostęp do komórki tabeli danych przy użyciu indeksu kolumny, użyj funkcji
Index()
. Funkcja=Index(Index(DataTableVar, 1), 2)
pobiera wartość z komórki w wierszu 1 w kolumnie 2. Funkcja=Index(DataRowVar, 1)
pobiera wartość z komórki w wierszu 1. - Aby dołączyć interpolowaną wartość do danych wejściowych lub selektora elementu interfejsu użytkownika / strony internetowej, należy użyć następującej składni:
Text before ${variable / expression} text after
- Przykład:
The total number is ${Sum(10, 20)}
- Przykład:
Uwaga
Jeśli chcesz użyć znaku dolara ($
), po którym następuje otwierający znak nawiasu klamrowego ({
) w wyrażeniu Power Fx lub w składni selektora elementu UI/Web i aby usługa Power Automate dla komputerów stacjonarnych nie traktowała go jako składni interpolacji ciągów, upewnij się, że postępujesz zgodnie z poniższą składnią: $${
(pierwszy znak dolara będzie działał jako znak ucieczki)
Dostępne funkcje Power Fx
Aby uzyskać pełną listę wszystkich dostępnych funkcji w przepływach aplikacji klasycznej Power Automate, przejdź do Odniesienie do formuły — przepływy pulpitu.
Znane problemy i ograniczenia
- Następujące akcje ze standardowej biblioteki akcji automatyzacji nie są obecnie obsługiwane:
- Switch
- Przypadek
- Domyślny przypadek
- Niektóre funkcje Power Fx przedstawiane za pośrednictwem aplikacji IntelliSense są obecnie obsługiwane w przepływach pulpitu. Te funkcje wyświetlają następujący błąd czasu projektowania, gdy są używane: "Parametr "Wartość": Typ PowerFx "OptionSetValueType" nie jest obsługiwany".
Co nowego
W tej sekcji wymieniono, co zostało zmienione w każdej aktualizacji.
2.48
W wydaniu z września 2024 r.:
- Ponowne włączenie wcześniej nieobsługiwanych akcji manipulowania listami i tabelami danych z kategorii Zmienne..
- Natywna obsługa obiektu bez typu dla obiektów niestandardowych, list i tabel danych. Więcej informacji na temat obiektów bez typu można znaleźć w temacie Typ danych obiektu bez typu.
- Ta zmiana została wprowadzona w celu zmniejszenia liczby ostrzeżeń w czasie projektowania i użycia typów odroczonych. Obiekt bez typu to sposób obsługi typów o nieznanym schemacie w czasie projektowania.
- W poprzednich wersjach zmienne dynamiczne (zmienne, których typ lub wartość można zmienić w czasie wykonywania) i wartości dynamiczne (wartości, których typ lub schemat jest określany w czasie wykonywania) były obsługiwane w ten sam sposób. Gdy w wyrażeniu Power Fx została użyta wartość dynamiczna lub zmienna dynamiczna, zostało wyzwolone ostrzeżenie: "Podano typ odroczony". Te ostrzeżenia wystąpiły, ponieważ Power Fx wymusza ścisłe schematy typów (silnie zdefiniowane typy). Począwszy od tej wersji, rozróżniono te dwa przypadki. Podczas gdy zmienne dynamiczne nadal generują ostrzeżenie "typu odroczonego", wartości dynamiczne są teraz traktowane jako obiekt bez typu.
- Wszystkie zmienne tabeli danych są bez typu, podczas gdy obiekty niestandardowe wynikające z akcji Konwertuj JSON na obiekt niestandardowy są bez typu. Listy staną się obiektami bez typu po zmanipulowaniu ich za pomocą Power Automate na akcje pulpitu z kategorii Zmienne.
- Wcześniej niektóre akcje automatyzacji ze standardowej biblioteki akcji, takie jak Odczyt z programu Excel, Odczyt z pliku CSV, Wyodrębnij dane z sieci Web, Wyodrębnij dane z okna, Wykonaj instrukcję SQL i Konwertuj JSON na obiekt niestandardowy, generowały zmienną dynamiczną wraz z ostrzeżeniem o "odroczonym typie". Zamiast tego tworzą teraz tabelę danych bez typu lub zmienną obiektu niestandardowego bez typu.
- Funkcja Ustawiania w Power Fx jest teraz włączona, ale nie jest jeszcze w pełni obsługiwana. Chociaż nie można jej użyć do bezpośredniego zmodyfikowania wartości zmiennej, można jej użyć z powyższymi strukturami, aby również zaktualizować właściwości obiektów niestandardowych i wartości list w określonych indeksach (na przykład
=Set(Index(Index(DataTable, 1), 1), 42)
lub=Set(customObject.property, 17)
). - Rozwiązano problem z uzyskiwaniem dostępu do właściwości listy zagnieżdżonej obiektu w przepływach z włączoną funkcją Power Fx.
Uwaga
W wersji 2.48 Power Automate dla komputerów stacjonarnych wprowadzono aktualizacje dla przepływów pulpitu z obsługą Power Fx, które mogą mieć wpływ na wykonywanie przepływów pulpitu z obsługą Power Fx utworzonych w poprzednich wersjach. Zaleca się dokładne przetestowanie tej wersji z istniejącymi przepływami Power Fx.
- Dane wyjściowe przepływu podrzędnego: należy zachować ostrożność podczas używania zmiennych wyjściowych z przepływów podrzędnych w przepływach pulpitu z obsługą Power Fx. Obejmuje to zmienne wyjściowe typów lista, obiekt niestandardowy i tabela danych.
- Tablice kolumn jednowartościowych: tablica utworzona przy użyciu wyrażenia, takiego jak
=[1, 2, 3]
jest tablicą kolumn jednowartościowych w przepływach z obsługą Power Fx, której elementy są obiektami z pojedynczą właściwością:{Value: 1}
. Próba uzyskania dostępu do właściwościValue
tego elementu, po zmodyfikowaniu pierwszej tablicy za pomocą akcji, powoduje błąd tworzenia. - Użycie funkcji Power Fx: w niektórych funkcjach Power Fx, takich jak
IsEmpty()
, poprzednie wersje akceptowały zmienną dynamiczną jako argument i nie zgłaszały błędu walidacji. W wersji 2.48 użycie zmiennej, która jest obsługiwana jako zmienna dynamiczna, powoduje błąd walidacji i niepowodzenie wykonywania istniejących przepływów. Rozwiązaniem tego problemu jest zastosowanie odpowiedniego rzutowania na wartość dynamiczną (bez typu). Dowiedz się więcej o funkcjach rzutowania można znaleźć w artykule Typ danych obiektu bez typu. Ten problem może wystąpić podczas edytowania przepływu – zostanie wyświetlony komunikat o błędzie, na przykład „Nieprawidłowy typ argumentu (UntypedObject). Oczekiwana jest wartość tabeli”. Aby rozwiązać ten problem, postępuj zgodnie z komunikatami o błędach, aby przekonwertować wyrażenie na prawidłowe.- Inne przykłady funkcji, które mogą zgłaszać błąd walidacji podczas korzystania z kombinacji zmiennych dynamicznych i typizowanych, to
Sum()
,Filter()
,Concatenate()
i operatory takie jakin
(na przykład,"string" in DynamicValueObject
).
- Inne przykłady funkcji, które mogą zgłaszać błąd walidacji podczas korzystania z kombinacji zmiennych dynamicznych i typizowanych, to
- Porównanie zmiennych: podobnie jak w przypadku wspomnianego wcześniej problemu, mogą wystąpić niezgodności typów podczas stosowania operatorów porównania (
=
,<>
,>
,itp<
.) w wyrażeniach obejmujących wartości dynamiczne. Należy zachować ostrożność i stosować odpowiednie rzutowanie przed porównaniem wartości dynamicznych.
2.43
W wydaniu z kwietnia 2024 r.:
- Uwzględnij wielkość liter. Na przykład NewVar jest zmienną różną od newVar.
- Akcja Uruchom wyrażenie Power Fx jest dostępne w grupie akcji Zmienne. Wyrażenie Run Power Fx umożliwia wykonywanie wyrażeń bezpośrednio na źródłach danych.
- Collect, Clear, ClearCollect – te funkcje Power Fx są obsługiwane w przepływach pulpitu.
- Funkcja Patch Power Fx jest obsługiwana w przepływach pulpitu.
- Zmienne i wyrażenia Power Fx mogą być używane w składni elementów interfejsu użytkownika lub selektorów internetowych.
- Interpolowane wartości mogą być teraz zawarte w składni selektora elementów interfejsu użytkownika/stron internetowych. W przypadku interpolowanych ciągów znaków można użyć tej składni: wyrażenie ${ Power Fx }.
Ważne
W wersji 2.43 Power Automate dla komputerów stacjonarnych wprowadzono aktualizacje dla przepływów pulpitu z obsługą Power Fx, które mogą mieć wpływ na wykonywanie przepływów pulpitu z obsługą Power Fx utworzonych w poprzednich wersjach. Szczególnie:
- Wielkość liter w nazwach zmiennych: wielkość liter w nazwach zmiennych w przepływach pulpitu z włączoną obsługą Power Fx utworzonych za pomocą aplikacji klasycznej Power Automate w wersji 2.43 lub nowszej ma znaczenie. Przepływy pulpitu Power Fx utworzone za pomocą wersji klasycznej Power Automate w wersji 2.42 i wcześniejszych pozwalały na stosowanie nazw zmiennych bez rozróżniania wielkości liter. Na przykład NewVar i newVAR odwołują się do tej samej zmiennej. W przypadku przepływów pulpitu z włączoną obsługą Power Fx utworzonych za pomocą aplikacji klasycznej Power Automate w wersji 2.42 i wcześniejszych należy sprawdzić i zweryfikować, czy wygenerowane zmienne są zgodne z oczekiwaniami.
2.42
Wydanie z marca 2024 roku:
- Możliwości IntelliSense są teraz dostępne dla przepływów pulpitu z włączonym Power Fx.
- Kolorowanie składni
- Funkcja automatycznego zakończenia podczas pisania z sugestiami w czasie rzeczywistym
- Pomoce do podpisu dla funkcji Power Fx
Uwaga
Funkcje IntelliSense są dostępne dla wyrażeń. Aby wprowadzić wyrażenie, użyj znaku równości (= Twoje wyrażenie ) na początku odpowiednich danych wejściowych lub notacji interpolacji ciągu ( ${ Twoje wyrażenie } ).
- Selektor funkcji
- Do wyboru funkcji można uzyskać dostęp przy użyciu przycisku resetu w danej funkcji podczas współpracy z odpowiednimi danymi wejściowymi. Są w tym miejscu dostępne wszystkie funkcje Power Fx obsługiwane obecnie dla przepływów pulpitu.
2.41
W wydaniu z lutego 2024 r.:
- Od tej pory wartości wejściowe, które nie zaczynają się od znaku równa się (=) są traktowane jako wartości typu tekstu. Wartości liczbowe i logiczne muszą zawsze zaczynać się od znaku równa się.
- Wejściowa obsługa teraz wszystkich ciągów. Aby uwzględnić wartość interpolowaną w danych wejściowych, użyj następującej składni:
Text before ${variable/ expression} text after
- Przykład:
The total number is ${Sum(10, 20)}
- Przykład:
Uwaga
Aby użyć składni ciągu interpolowanego, należy pominąć znak równa się (=) na początku wprowadzania.
2.39
W wydaniu z grudnia 2023 r.:
- Jeśli podane dane wejściowe nie zaczynają się od znaku równości, obowiązują następujące zasady:
- Wartości numeryczne bez spacji są interpretowane jako wartości liczbowe.
- True/False jako dane wejściowe, niezależnie od wielkości liter i bez spacji, są interpretowane jako wartości logiczne.
- Wszystkie inne dane wejściowe są traktowane jako wartości typu tekstowego.