다음을 통해 공유


데스크톱 흐름의 Power Fx

Power FxMicrosoft Power Platform에서 논리를 표현하기 위한 로우코드 언어입니다. 이는 범용이며 강력한 유형이고 선언적이며 기능적인 프로그래밍 언어입니다.

Power Fx는 인간 친화적인 텍스트로 표현됩니다. 제작자가 Excel과 유사한 수식 입력줄 또는 Visual Studio Code 텍스트 창에서 직접 작업할 수 있는 로우코드 언어입니다. 로우코드의 "low"는 언어의 간결하고 단순한 특성으로 인해 제작자와 개발자 모두에게 일반적인 프로그래밍 작업을 쉽게 만들어줍니다.

Power Fx를 사용하면 프로그래밍 지식이 없는 노코드 제작자부터 전문 개발자를 위한 프로 코딩까지 전체 범위의 개발이 가능합니다. 이를 통해 다양한 팀이 협업하고 시간과 노력을 절약할 수 있습니다.

데스크톱 흐름에서 Power Fx 사용

데스크톱 흐름에서 Power Fx를 표현식 언어로 사용하려면 데스크톱 흐름을 만들고 데스크톱용 Power Automate 콘솔을 통해 흐름을 만들 때 해당 토글 버튼을 활성화해야 합니다.

Power Fx 활성화 버튼의 스크린샷

Power Fx 사용 흐름의 차이점

참고

각 Power Fx 식은 "="(등호 부호)로 시작해야 합니다.

Power Fx가 비활성화된 흐름에서 전환하는 경우 몇 가지 차이점이 있을 수 있습니다. 새 데스크톱 흐름을 만드는 동안 환경을 간소화하려면 다음과 같은 몇 가지 주요 개념을 염두에 두어야 합니다.

  • Excel 수식과 같은 방식으로 Power Fx를 식 언어로 사용하는 데스크톱 흐름은 0 기반 인덱싱 대신 1(일) 기반 배열 인덱싱을 사용합니다. 예를 들어, 식 =Index(numbersArray, 1)numbersArray 배열의 첫 번째 요소를 반환합니다.

  • 변수 이름은 Power Fx를 사용하는 데스크톱 흐름에서 대소문자를 구분합니다. 예를 들어 NewVarnewVar과 다릅니다.

  • 데스크톱 흐름에서 Power Fx를 사용하도록 설정하면 사용하기 전에 변수 초기화가 필요합니다. Power Fx 식에서 초기화되지 않은 변수를 사용하려고 하면 오류가 발생합니다.

  • If 작업은 단일 조건식을 허용합니다. 이전에는 여러 피연산자를 허용했습니다.

  • Power Fx를 사용하도록 설정하지 않은 흐름에는 알 수 없는 개체 유형을 나타내는 "일반 값"이라는 용어가 있지만 Power Fx는 엄격한 형식 시스템을 중심으로 작동합니다. Power Fx가 활성화된 흐름에는 동적 변수(런타임에 유형이나 값을 변경할 수 있는 변수)와 동적 값(런타임에 유형이나 스키마가 결정되는 값)이 구별됩니다. 이 차이를 더 잘 이해하려면 다음 예제를 고려하십시오. dynamicVariable은 런타임 동안 Numeric에서 Boolean 값으로 유형을 변경하는 반면 dynamicValue는 런타임 동안 유형이 지정되지 않은 개체로 결정되며 실제 유형은 Custom object입니다.

    동적 변수 및 동적 값의 설정을 보여주는 스크린샷.

  • 동적 값으로 처리되는 값은 다음과 같습니다.

    • 데이터 테이블
    • 스키마를 알 수 없는 사용자 지정 개체
    • 동적 작업 출력(예: ".NET 스크립트 실행" 작업)
    • "데스크톱 흐름 실행" 작업의 출력
    • 미리 정의된 스키마가 없는 모든 작업 출력(예: "Excel 워크시트에서 읽기" 또는 "새 목록 만들기")
  • 동적 값은 Power Fx 형식화되지 않은 개체와 유사하게 처리되며 일반적으로 필요한 유형으로 변환하기 위해 명시적 함수가 필요합니다(예: Bool()Text()). 환경을 간소화하기 위해 동적 값을 작업 입력 또는 Power Fx 식의 일부로 사용할 때 암시적 변환이 있습니다. 작성 중에는 유효성 검사가 수행되지 않지만 런타임 중 실제 값에 따라 변환이 실패하면 런타임 오류가 발생합니다.

  • 동적 변수를 사용할 때마다 "지연 형식 제공"이라는 경고 메시지가 표시됩니다. 이러한 경고는 강력한 형식의 스키마(엄격하게 정의된 형식)에 대한 Power Fx의 엄격한 요구 사항으로 인해 발생합니다. 동적 변수는 목록, 테이블 또는 레코드 값의 속성으로 허용되지 않습니다.

  • Power Fx 표현식 실행 작업을 Collect, Clear, ClearCollectPatch 함수를 사용하는 식과 결합하면 이전에 Power Fx 지원 데스크톱 흐름에 사용할 수 없었던 목록에 항목 추가데이터 테이블에 행 삽입 작업에서 발견된 동작을 에뮬레이션할 수 있습니다. 두 작업을 모두 사용할 수 있지만 강력한 형식의 목록(예: 파일 목록)으로 작업할 때는 Collect 함수를 사용합니다. 이 함수는 목록에 항목 추가 작업을 사용하면 목록이 형식화되지 않은 개체로 변환되므로 목록이 형식화된 상태로 유지되도록 합니다.

  • 입력 필드의 =1은 숫자 값 1과 같습니다.
  • = variableName은 variableName 변수의 값과 같습니다. 
  • = {'prop':"value"} 식은 사용자 지정 개체와 동일한 레코드 값을 반환합니다.
  • = Table({'prop':"value"}) 식은 사용자 지정 개체 목록과 동일한 Power Fx 테이블을 반환합니다. 
  • 표현식 - = [1,2,3,4]는 숫자 값 목록을 생성합니다.
  • 리스트에서 값에 접근하려면 Index(var, number) 함수를 사용합니다. 여기서 var는 리스트의 이름이고 number는 검색할 값의 위치입니다.
  • 열 인덱스를 사용하여 데이터 테이블 셀에 액세스하려면 Index() 함수를 사용합니다. =Index(Index(DataTableVar, 1), 2)는 행 1의 셀에서 열 2의 값을 검색합니다. =Index(DataRowVar, 1)는 행 1의 셀에서 값을 검색합니다.
  • 입력 또는 UI/웹 요소 선택기에 보간된 값을 포함하려면 Text before ${variable / expression} text after 구문을 사용하세요
    • 예: The total number is ${Sum(10, 20)}

참고

Power Fx 식 또는 UI/웹 요소 선택기의 구문에서 달러 기호($) 뒤에 여는 중괄호 기호({)를 사용하고 데스크톱용 Power Automate가 이를 문자열 보간 구문을 사용하려면 $${ 구문을 따라야 합니다(첫 번째 달러 기호는 이스케이프 문자)

사용 가능한 Power Fx 함수

데스크톱 흐름용 Power Automate에서 사용 가능한 모든 기능의 전체 목록을 보려면 수식 참조 - 데스크톱 흐름으로 이동하세요.

알려진 문제 및 제한 사항

  • 표준 자동화 작업 라이브러리의 다음 작업은 현재 지원되지 않습니다.
    • Switch
    • 케이스
    • 기본 케이스
  • IntelliSense를 통해 제공되는 일부 Power Fx 함수는 현재 데스크톱 흐름에서 지원되지 않습니다. 이러한 함수를 사용하면 "매개 변수 '값': PowerFx 형식 'OptionSetValueType'이 지원되지 않습니다."와 같은 디자인 타임 오류가 표시됩니다.

새로운 기능

이 섹션에는 각 업데이트에서 변경된 내용이 나열되어 있습니다.

2.48

2024년 9월 릴리스:

  • 변수 범주에서 이전에 지원되지 않았던 목록 및 데이터 테이블 조작 작업을 다시 활성화합니다.
  • 사용자 지정 개체, 목록 및 데이터 테이블에 대한 기본 형식화되지 않은 개체를 지원합니다. 형식이 지정되지 않은 개체에 대한 자세한 내용은 형식화되지 않은 개체 데이터 형식을 참조하십시오.
    • 이 변경 내용은 디자인 타임 경고 및 지연된 형식의 사용을 줄이기 위해 도입되었습니다. 형식화되지 않은 개체는 디자인 타임에 알 수 없는 스키마가 있는 형식을 처리하는 방법입니다.
    • 이전 버전에서는 동적 변수(런타임에 유형이나 값이 변경될 수 있는 변수)와 동적 값(런타임에 유형이나 스키마가 결정되는 값)이 같은 방식으로 처리되었습니다. Power Fx 식에서 동적 값이나 동적 변수가 사용되면 "지연된 유형이 제공되었습니다."라는 경고가 트리거되었습니다. 이러한 경고는 Power Fx가 엄격한 유형 스키마(강력하게 정의된 유형)를 적용하기 때문에 발생했습니다. 이 버전부터는 이 두 가지 경우를 구분했습니다. 동적 변수는 "지연된 형식" 경고를 계속 생성하지만 동적 값은 이제 형식화되지 않은 개체로 처리됩니다.
    • 모든 데이터 테이블 변수는 유형이 지정되지 않고, JSON을 사용자 지정 개체로 변환 작업으로 인해 생성된 사용자 지정 개체는 유형이 지정되지 않습니다. 변수 범주의 데스크톱 작업에 대해 Power Automate를 사용하여 목록을 조작한 후에는 목록의 유형이 지정되지 않습니다.
    • 이전에는 Excel에서 읽기, CSV에서 읽기, 웹에서 데이터 추출, 창에서 데이터 추출, SQL 문 실행, JSON을 사용자 지정 개체로 변환과 같은 표준 작업 라이브러리의 특정 자동화 작업을 수행하면 "지연된 유형" 경고와 함께 동적 변수가 생성되었습니다. 이제 형식화되지 않은 데이터 테이블 또는 형식화되지 않은 사용자 지정 개체 변수를 대신 생성합니다.
  • Set Power Fx 함수는 현재 활성화되어 있지만 아직 완전히 지원되지는 않습니다. 변수의 값을 직접 수정하는 데 사용할 수는 없지만 위의 구조와 함께 사용하여 특정 인덱스(예: =Set(Index(Index(DataTable, 1), 1), 42) 또는 =Set(customObject.property, 17))에 있는 목록의 사용자 지정 개체 속성 및 값을 업데이트할 수도 있습니다.
  • Power Fx 사용 흐름에서 개체의 중첩된 목록 속성에 액세스할 때 발생하는 문제를 해결했습니다.

주의

데스크톱용 Power Automate 버전 2.48에는 이전 버전으로 만든 Power Fx 지원 흐름의 실행에 영향을 줄 수 있는 Power Fx 지원 데스크톱 흐름에 대한 업데이트가 있습니다. 기존 Power Fx 흐름으로 이 버전을 철저히 테스트하는 것이 좋습니다.

  • 하위 흐름 출력: Power Fx 지원 데스크톱 흐름에서 하위 흐름의 출력 변수를 사용할 때는 주의하세요. 여기에는 list, custom object 및 data table 유형의 출력 변수가 포함됩니다.
  • 단일 값 열 배열: =[1, 2, 3]과 같은 식을 사용하여 생성된 배열은 Power Fx가 지원하는 흐름에서 단일 값 열 배열을 생성하며, 해당 항목은 단일 속성 {Value: 1}을 갖는 개체입니다. 작업을 사용하여 첫 번째 배열을 수정한 후 이 항목의 Value 속성에 액세스하려고 하면 작성 오류가 발생합니다.
  • Power Fx 함수 사용법: IsEmpty()와 같은 특정 Power Fx 함수의 경우 이전 버전에서는 동적 변수를 인수로 허용하고 유효성 검사 오류를 발생시키지 않았습니다. 2.48 버전에서는 동적 변수로 처리되는 변수를 사용하면 유효성 검사 오류가 발생하고 기존 흐름을 실행하지 못합니다. 이에 대한 해결 방법은 동적(형식화되지 않은) 값에 적절한 캐스팅을 적용하는 것입니다. 형식화되지 않은 개체 데이터 형식에서 캐스팅 함수에 대해 자세히 알아보세요. 흐름을 편집할 때 이 문제가 발생하고 "잘못된 인수 형식(UntypedObject)". 대신 Table 값을 기대합니다."와 같은 오류 메시지가 표시될 수 있습니다. 이 문제를 해결하려면 오류 메시지에 따라 식을 유효한 식으로 변환하십시오.
    • 동적 변수와 형식화된 변수를 조합하여 사용할 때 유효성 검사 오류를 발생시킬 수 있는 함수의 다른 예로는 Sum(), Filter(), Concatenate()in과 같은 연산자(예: "string" in DynamicValueObject)가 있습니다.
  • 변수 비교: 앞서 언급한 문제와 유사하게, 동적 값을 포함하는 식에 비교 연산자(=, <>, >, < 등)를 적용할 때 유형 비호환성이 발생할 수 있습니다. 동적 값을 비교하기 전에 주의를 기울이고 적절한 캐스팅을 적용하십시오.

2.43

2024년 4월 릴리스:

  • 대/소문자 구분. 예를 들어, NewVarnewVar과 다른 변수입니다.
  • Power Fx 표현식 실행 작업은 변수 작업 그룹에서 사용할 수 있습니다. Power Fx 표현식 실행을 사용하면 데이터 원본에서 직접 표현식을 실행할 수 있습니다.
  • Collect, Clear, ClearCollect Power Fx 함수는 데스크톱 흐름에서 지원됩니다.
  • Patch Power Fx 함수는 데스크톱 흐름에서 지원됩니다.
  • 변수 및 Power Fx 표현식은 UI 요소 또는 웹 선택기 구문에 사용될 수 있습니다.
  • 이제 보간된 값을 UI/웹 요소 선택기의 구문에 포함할 수 있습니다. 보간된 문자열의 경우 ${ Power Fx 표현식 } 구문을 사용할 수 있습니다.

중요

데스크톱용 Power Automate 버전 2.43에는 이전 버전으로 만든 Power Fx 지원 데스크톱 흐름의 실행에 영향을 줄 수 있는 Power Fx 지원 데스크톱 흐름에 대한 업데이트가 있습니다. 특별한 사항

  • 대소문자 구분 변수 이름: 데스크톱용 Power Automate 버전 2.43 이상으로 만든 Power Fx 지원 데스크톱 흐름 내의 변수 이름은 대/소문자를 구분합니다. 데스크톱용 Power Automate 버전 2.42 이하를 사용하여 생성된 Power Fx 데스크톱 흐름에서는 대/소문자를 구분하지 않는 변수 이름이 허용됩니다. 예를 들어, NewVarnewVAR은 동일한 변수를 참조합니다. 데스크톱용 Power Automate 버전 2.42 이하를 사용하여 생성된 Power Fx 지원 데스크톱 흐름의 경우 생성된 변수가 예상한 것과 같은지 검토하고 확인하십시오.

2.42

2024년 3월 릴리스:

  • 이제 Power Fx 지원 데스크톱 흐름에 IntelliSense 기능을 사용할 수 있습니다.
    • 구문 색상화
    • 실시간 제안을 사용하는 입력 중 자동 완성 기능
    • Power Fx 함수에 대한 서명 도우미

참고

식에 IntelliSense 기능을 사용할 수 있습니다. 표현식을 입력하려면 각 입력 시작 부분에 등호(= 표현식 )를 사용하거나 문자열 보간 표기법( ${ 표현식 } )을 사용하세요.

  • 함수 선택기
    • 각 입력과 상호 작용할 때 스키틀의 fx 버튼을 사용하여 기능 선택기에 액세스할 수 있습니다. 현재 데스크톱 흐름에 지원되는 모든 Power Fx 함수를 여기에서 사용할 수 있습니다.

2.41

2024년 2월 릴리스:

  • 이제부터 등호(=)로 시작하지 않는 입력은 텍스트 유형 값으로 간주됩니다. 숫자 및 부울 입력은 항상 등호로 시작해야 합니다.
  • 이제 입력이 보간된 문자열을 지원합니다. 입력에 보간된 값을 포함하려면 Text before ${variable/ expression} text after 구문을 사용하세요.
    • 예: The total number is ${Sum(10, 20)}

참고

보간된 문자열 구문을 사용하려면 입력 시작 부분에서 등호(=)를 생략하세요.

2.39

2023년 12월 릴리스:

  • 제공된 입력이 등호로 시작하지 않으면 다음 규칙이 적용됩니다.
    • 공백이 없는 숫자 값은 숫자 값으로 해석됩니다.
    • True/ False 입력은 대소문자에 관계없이 공백 없이 부울 값으로 해석됩니다.
    • 다른 모든 입력은 텍스트 유형 값으로 간주됩니다.