Microsoft Power Fx 개요

Power Fx는 Microsoft Power Platform 사용하는 하위 코드 언어입니다. 범용, 강력한 형식의 선언적 및 기능적 프로그래밍 언어입니다.

Power Fx는 인간 친화적인 텍스트로 표현됩니다. 제작자가 Excel과 유사한 수식 입력줄 또는 Visual Studio Code 텍스트 창에서 직접 작업할 수 있는 로우코드 언어입니다. 낮은 코드의 "낮음"은 언어의 간결하고 간단한 특성에서 비롯되며, 이를 통해 제작자와 개발자 모두에게 일반적인 프로그래밍 작업을 쉽게 수행할 수 있습니다. 그것은 학습이나 그 사이에 절벽을 다시 작성하지 않고, 노련한 전문가를위한 "프로 코드"에 전에 프로그래밍되지 않은 사람들을위한 노 코드에서 개발의 전체 스펙트럼을 가능하게한다. 다양한 팀이 공동 작업하고 시간과 비용을 절약할 수 있습니다.

노트

  • Microsoft Power Fx은 Power Apps의 캔버스 앱용 수식 언어의 새 이름입니다. 이 개요 및 관련 문서는 캔버스 앱에서 언어를 추출하고, 다른 Microsoft Power Platform 제품과 통합하고, 오픈 소스 사용할 수 있도록 Microsoft 진행 중인 작업입니다. 오늘 언어에 대해 자세히 알아보고 경험하려면 Power Apps 설명서의 캔버스 앱에서 수식 시작하기로 시작하고 무료 Power Apps 평가판에 등록하십시오.
  • 이 문서에서 제작자 는 프로그래밍 기술 스펙트럼의 양쪽 끝에서 기능을 사용할 수 있는 사용자를 참조합니다. 개발자는 기능이 고급이며 일반적인 Excel 사용자의 범위를 벗어나는 경우 사용자를 참조합니다.

Power Fx은 선언적 스프레드시트와 같은 수식을 사용하여 개체를 결합합니다. 예를 들어 UI 컨트롤의 가시적 속성을 다른 컨트롤의 속성을 기반으로 값을 계산하는 관련 수식이 있는 Excel 워크시트의 셀로 간주합니다. 수식 논리는 스프레드시트가 수행하는 방식과 유사하게 값을 자동으로 다시 계산하여 컨트롤의 가시성에 영향을 줍니다.

또한, Power Fx은 필요할 때 명령형 논리를 제공합니다. 워크시트에는 일반적으로 데이터베이스에 변경 사항을 제출할 수 있는 버튼이 없지만 앱에는 있는 경우가 많습니다. 선언적 논리와 명령적 논리 모두에 동일한 식 언어가 사용됩니다.

Microsoft Power Fx를 오픈 소스 소프트웨어로 사용할 수 있도록 합니다. 현재 캔버스 앱에 통합되어 있으며, Microsoft 다른 Microsoft Power Platform 제품 및 오픈 소스 사용하기 위해 Power Apps 추출하는 중입니다. 추가 정보: GitHub의 Microsoft Power Fx

이 문서는 언어와 언어의 설계 원칙에 대한 개요입니다. Power Fx에 대한 자세한 내용은 다음 문서를 참조하십시오.

스프레드시트처럼 생각하기

Excel에서 워크시트를 작성하는 것처럼 쉽게 앱을 빌드할 수 있다면 어떨까요?

기존 스프레드시트 지식을 활용할 수 있다면 어떨까요?

이러한 질문은 Power Apps 및 Power Fx를 만드는 데 영감을 했습니다. 수억 명의 사람들이 매일 Excel 워크시트를 만듭니다. 쉽고 이미 알고 있는 Excel 개념을 사용하는 앱을 만들어 보겠습니다. Power Apps에서 Power Fx을 분리하여 자동화, 가상 에이전트 또는 기타 도메인 구축에 대한 이러한 질문에 답할 것입니다.

Power Fx을 포함한 모든 프로그래밍 언어에는 숫자, 문자열 또는 기타 데이터 유형에 대한 계산을 나타내는 방법인 표현식이 있습니다. 예를 들어 대부분의 언어에서 mass * accelerationmassacceleration의 곱하기를 표현하는 것입니다. 식의 결과를 변수에 넣거나 프로시저의 인수로 사용하거나 더 큰 식에 중첩할 수 있습니다.

Power Fx는 이를 한 단계 더 발전시킵니다. 식 자체로 무엇을 계산하는지 설명할 수는 없습니다. 변수에 사용할지 함수에 사용할지는 제작자에게 달려 있습니다. Power Fx에서는 특별한 의미가 없는 표현식만 작성하는 대신 표현식을 식별자에 바인딩하는 수식을 작성합니다. force = mass * acceleration를 계산하는 수식으로 force을 작성합니다. 변경 내용 accelerationforce 에 따라 mass 새 값으로 자동으로 업데이트됩니다. 식은 계산을 설명하고, 수식은 해당 계산에 이름을 부여하며 이를 레시피로 사용합니다. 이것이 우리가 Power Fx를 수식 언어라고 지칭하는 이유입니다.

예를 들어, 이 Stack Overflow의 수식은 역순으로 문자열을 검색합니다. Excel에서는 다음 이미지와 같습니다.

역방향 검색

수식이 있는 Excel의 수식 입력줄 스크린샷: =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) Cell A1 contains the text "안녕하세요! It is great to meet you!" 셀 A2에는 "you!"라는 텍스트가 포함되어 있습니다.

Power Fx는 셀 참조가 컨트롤 속성 참조로 대체된 동일한 공식으로 작동합니다.

Power Fx 역방향 검색.

Power Apps의 Power Fx 수식 입력줄 스크린샷입니다. 공식은 =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) 수식 아래의 입력 상자에 "안녕하세요! It is great to meet you!"라는 메시지가 한 글자씩 나타납니다. 동시에 레이블 상자에 마지막 단어의 문자가 나타납니다. 입력란에 전체 텍스트가 나타나면 "you!" 레이블 상자에 나타납니다.

컨트롤 값이 Input 변경되면 컨트롤은 Label 수식을 자동으로 다시 계산하고 새 값을 표시합니다. 다른 언어에서는 흔한 요소인 OnChange 이벤트 처리기가 여기에는 없습니다.

또 다른 예제에서는 화면 색에 Fill 수식을 사용합니다. 빨강, 녹색 및 파랑을 제어하는 슬라이더가 변경되면 배경색이 다시 계산될 때 자동으로 변경됩니다.

색상 슬라이더.

다른 언어에서 흔히 볼 수 있는 슬라이더 컨트롤에 대한 OnChange 이벤트가 없습니다. Fill 속성 값을 명시적으로 설정할 수 있는 방법은 없습니다. 색상이 예상대로 작동하지 않는 경우 이 하나의 수식을 보고 작동하지 않는 이유를 알아내야 합니다. 시간 요소가 없어 예상치 못한 시간에 속성을 설정하는 코드 조각을 찾기 위해 앱을 검색할 필요가 없습니다. 올바른 수식 값은 항상 유지됩니다.

슬라이더가 어두운 색으로 설정되면 Red, Green, Blue의 레이블이 흰색으로 변경되어 이를 보정합니다. 이 변경은 각 레이블 컨트롤의 속성에 Color 대한 간단한 수식을 통해 수행됩니다.

Power Fx 색상 슬라이더.

이 수식의 좋은 점은 색에 대해 Fill 발생하는 작업과 격리되어 있다는 것입니다. 이는 완전히 다른 두 가지 계산입니다. 대규모 모놀리식 절차 대신, Power Fx 논리는 일반적으로 독립적인 많은 작은 수식으로 구성됩니다. 이 구조를 사용하면 기존 논리를 방해하지 않고도 더 쉽게 이해할 수 있고 향상된 기능을 사용할 수 있습니다.

Power Fx는 Excel과 마찬가지로 선언적 언어입니다. 제작자는 원하는 동작을 정의하지만 이를 달성하는 방법과 시기를 결정하고 최적화하는 것은 시스템에 달려 있습니다. 이를 실용적으로 만들기 위해 대부분의 작업은 부작용이 없는 순수 기능을 통해 수행되므로 Power Fx는 기능적 언어(Excel과 마찬가지임)이기도 합니다.

언제나 라이브

워크시트의 정의적인 측면은 항상 라이브 상태이며 변경 사항이 즉시 반영됩니다. 워크시트에 컴파일 또는 실행 모드가 없습니다. 수식을 수정하거나 값을 입력하면 워크시트가 변경 내용을 반영하도록 즉시 다시 계산됩니다. 검색된 오류는 즉시 표시되며 워크시트의 나머지 부분을 방해하지 않습니다.

Power Fx는 동일한 작업을 구현합니다. 증분 컴파일러를 사용하여 프로그램이 작동하는 데이터와 지속적으로 동기화된 상태를 유지합니다. 변경 내용은 프로그램의 그래프를 통해 자동으로 전파되며 종속 계산 결과에 영향을 줍니다. 이러한 계산은 색 또는 위치와 같은 컨트롤의 속성을 구동할 수 있습니다. 증분 컴파일러는 IntelliSense, 제안, 자동 완성, 형식 검사와 함께 풍부한 수식 편집 환경도 제공합니다.

다음 애니메이션에서는 아래 레이블에 두 개의 오류가 있더라도 순서 번호가 슬라이더 컨트롤에 종속된 레이블 컨트롤에 표시됩니다. 이 앱은 라이브 상태이며 상호 작용적입니다. .InvalidName을 입력하여 수식을 수정하려는 첫 번째 시도는 즉시 빨간색 선과 오류가 표시되지만 앱은 계속 실행됩니다.

언제나 라이브.

입력 .Employee하면 창에서 Data Employees 테이블을 추가하고, 이 테이블에 대한 메타데이터를 검색하고, 열에 대한 제안을 즉시 제공합니다. 방금 한 테이블에서 다른 테이블로의 관계를 가로지른 후 시스템에서 앱의 참조를 조정해야 했습니다. .Customer을 추가할 때도 마찬가지입니다.

각 변경 후 슬라이더는 마지막 값으로 계속되고 모든 변수는 해당 값을 유지합니다. 전체에서 주문 번호는 예상대로 맨 위 레이블에 계속 표시됩니다. 앱은 라이브 상태이며, 전체 시간 동안 실제 데이터를 처리합니다. 당신은 그것을 저장하고, 걸어 갈 수 있으며, 다른 사람들은 Excel 것처럼 열고 사용할 수 있습니다. 빌드 단계도 없고, 컴파일도 없고, 사용자에게 준비된 앱 버전을 결정하는 게시 단계만 있습니다.

로우 코드

Power Fx는 비즈니스 로직을 간결하면서도 강력한 수식으로 설명합니다. 대부분의 논리는 더 복잡한 요구 사항에 대한 표현력과 제어를 많이 사용하여 한 줄로 줄어듭니다. 목표는 제작자가 이해해야 하는 개념의 수를 최소한으로 유지하는 것입니다. 이상적으로는 Excel 사용자가 이미 알고 있는 것 이상입니다.

예를 들어, 주문에 대한 직원의 이름을 조회하려면 다음 애니메이션과 같이 Power Fx를 작성합니다. Excel 개념 외에도 여기에 사용한 유일한 추가 개념은 데이터 구조로 드릴링하기 위한 점 "." 표기법입니다(이 경우 .Employee.'First Name'). 애니메이션은 Power Fx 수식의 일부와 동등한 JavaScript에서 명시적으로 코딩해야 하는 개념 간의 매핑을 보여줍니다.

로우 코드 JavaScript.

Power Fx가 우리를 위해 하는 모든 일과 수식이 선언적이기 때문에 최적화해야 하는 자유에 대해 자세히 살펴보겠습니다.

  • 비동기 : 모든 데이터 작업 Power Fx 비동기적입니다. 제작자는 이것을 지정할 필요가 없으며, 호출이 끝난 후 제작자는 작업을 동기화할 필요도 없습니다. 작성자는 이 개념을 전혀 알 필요가 없으며 promise 또는 lambda 함수가 무엇인지 알 필요가 없습니다.

  • 로컬 및 원격 : Power Fx 로컬 메모리에 있는 데이터와 원격으로 데이터베이스나 서비스에 연결하는 데 동일한 구문과 함수를 사용합니다. 사용자는 이 구분에 대해 생각할 필요가 없습니다. Power Fx는 서버에 자동으로 위임하여 필터를 처리하고 서버에서 보다 효율적으로 정렬합니다.

  • 관계형 데이터 : 주문과 고객은 서로 다른 두 테이블이며, 다대일 관계를 갖습니다. OData 쿼리에는 SQL의 Join과 유사하게 외래 키를 알고 있는 "$expand"가 필요합니다. 이 수식에는 이러한 것들이 없으며 사실 데이터베이스 키는 작성자가 알아야 할 필요가 없는 또 다른 개념입니다. 작성자는 간단한 점 표기법을 사용하여 레코드에서 관계의 전체 그래프에 액세스할 수 있습니다.

  • 투사 : 쿼리를 작성할 때 많은 개발자들이 다음과 같이 작성합니다. select * from table 이는 모든 데이터 열을 다시 가져옵니다. Power Fx는 수식 종속성을 포함하여 전체 앱에서 사용되는 모든 열을 분석합니다. 프로젝션은 자동으로 최적화되며 제작자는 "프로젝션"이 무엇을 의미하는지 알 필요가 없습니다.

  • 필요한 것만 검색하세요 : 이 예에서는 LookUp 이 함수는 단 하나의 레코드만 검색해야 하며 그것이 반환되는 전부임을 의미합니다. Filter 함수를 사용하여 더 많은 레코드를 요청하면(수천 개의 레코드가 자격이 될 수 있음) 페이지당 100개의 레코드 순서로 한 번에 한 페이지의 데이터만 반환됩니다. 사용자는 갤러리 또는 데이터 테이블을 통해 제스처를 통해 더 많은 데이터를 볼 수 있어야 하며, 자동으로 더 많은 데이터를 가져옵니다. 제작자는 데이터 요청을 관리 가능한 청크로 제한하는 것에 대해 생각할 필요 없이 대규모 데이터 집합에 대해 추론할 수 있습니다.

  • 필요한 경우에만 실행: 레이블 컨트롤의 속성에 Text 대한 수식을 정의합니다. 선택된 변수가 변경되면 LookUp이 자동으로 다시 계산되고 레이블이 업데이트됩니다. 제작자는 Selection에 대한 OnChange 처리기를 작성할 필요가 없었으며 이 레이블이 그것에 의존한다는 것을 생각할 필요가 없었습니다. 이것은 앞에서 논의한 선언적 프로그래밍이며, 작성자는 레이블에 가지고 있으려는 것을 지정했습니다. 언제 또는 어떻게 가져오는 지는 고려하지 않았습니다. 이 레이블이 화면에 표시되지 않거나 해당 Visible 속성이 false이기 때문에 표시되지 않는 경우 레이블이 표시될 때까지 이 계산을 연기하고 거의 발생하지 않는 경우 효과적으로 제거할 수 있습니다.

  • Excel 구문 변환: 많은 사용자가 앰퍼샌드(&)가 Excel 문자열 연결에 사용된다는 것을 알고 있습니다. JavaScript는 더하기 기호(+)를 사용하고 다른 언어는 점(.)을 사용합니다.

  • 표시 이름 및 현지화 : First Name 에서 사용됩니다 Power Fx 공식 동안 nwind_firstname JavaScript에서도 사용됩니다. Microsoft Dataverse 및 SharePoint에는 고유한 논리적 이름 외에도 열 및 테이블의 표시 이름이 있습니다. 표시 이름은 이 경우와 같이 훨씬 더 사용자 친화적인 경우가 많지만 현지화할 수 있다는 점에서 또 다른 중요한 특성이 있습니다. 다국어 팀이 있는 경우 각 팀 구성원은 자신의 언어로 된 테이블 및 필드 이름을 볼 수 있습니다. 모든 사용 사례에서 Power Fx는 올바른 논리적 이름이 데이터베이스에 자동으로 전송되는지 확인합니다.

코드 없음

논리 표현을 시작하기 위해 Power Fx를 읽거나 쓸 필요가 없습니다. 간단한 스위치 및 UI 작성기에서 많은 사용자 지정 및 논리를 표현할 수 있습니다. 이러한 코드 없는 도구는 Power Fx를 읽고 쓰도록 빌드되었기 때문에 누군가가 더 많은 헤드룸을 사용할 수 있습니다. 그러나 코드 없는 도구는 전체 언어의 모든 표현을 제공하지 않습니다. 코드가 없는 작성기를 사용하는 경우에도 수식 입력줄은 power Fx를 배우기 시작할 수 있도록 제조업체를 대신하여 수행되는 작업을 교육하기 위해 Power Apps 앞과 가운데에 있습니다.

몇 가지 예를 살펴보겠습니다. Power Apps에서, 속성 패널은 컨트롤 속성에 대한 노 코드 스위치와 노브를 제공합니다. 실제로 대부분의 속성 값은 정적입니다. 색상 빌더를 사용하여 Gallery의 배경색을 변경할 수 있습니다. 수식 표시 줄에 이 변경 사항이 반영되어 수식이 다른 RGBA 호출로 업데이트됩니다. 언제든지 수식 입력줄로 이동하여 이 변경 내용을 한 단계 더 진행할 수 있습니다. 이 예제에서는 색을 조정하는 데 사용합니다 ColorFade . 색상 속성은 속성 패널에 계속 나타나지만 마우스를 올리면 fx 아이콘이 나타나고 수식 입력줄로 이동합니다. 이것은 두 가지 방식으로 완전히 작동합니다: ColorFade 호출을 제거하면 색상이 속성 패널이 이해할 수 있는 것으로 반환되고 다시 사용하여 색상을 설정할 수 있습니다.

코드 없는 색상.

다음은 더 복잡한 예입니다. Dataverse 갤러리에는 Dataverse의 직원 목록이 표시됩니다. Dataverse는 테이블 데이터에 대한 보기를 제공합니다. 이러한 보기 중 하나를 선택할 수 있으며 수식이 변경되어 이 뷰 이름과 함께 함수를 Filter 사용할 수 있습니다. 두 개의 드롭다운 메뉴를 사용하여 수식 입력줄을 건드리지 않고도 올바른 테이블과 보기로 전화를 걸 수 있습니다. 하지만 더 나아가서 정렬을 추가하려 한다고 가정해 보겠습니다. 수식 입력줄에서 해당 함수를 추가할 수 있으며, 속성 패널에 fx 아이콘이 다시 표시되고 수정 사항이 수식 입력줄로 전달됩니다. 또한 수식을 속성 패널에서 읽고 쓸 수 있는 수식으로 단순화하면 사용할 수 있습니다.

코드 없는 정렬.

이러한 예제는 간단합니다. Power Fx는 코드 없는 상호 작용을 설명하는 데 유용한 언어를 만듭니다. 간결하고 강력하며 구문 분석하기 쉽습니다. "절벽 없음"에서 낮은 코드까지 자주 필요한 헤드룸을 제공합니다.

프로 코드

낮은 코드 작성자는 경우에 따라 전문가의 도움이 필요하거나 전문 개발자가 유지 관리하고 향상시키기 위해 인수하는 솔루션을 빌드합니다. 전문가들은 또한 로우 코드 개발이 전문 도구를 구축하는 것보다 쉽고 빠르며 비용이 적게 든다는 점을 높이 평가합니다. 모든 상황이 Visual Studio의 모든 기능을 요구하는 것은 아닙니다.

전문가는 전문 도구를 사용하여 생산성을 높이기를 원합니다. POWER Fx 수식을 YAML 원본 파일에 저장할 수 있습니다. 이 파일은 Visual Studio Code, Visual Studio 또는 다른 텍스트 편집기를 사용하여 쉽게 편집할 수 있습니다. YAML 파일에 수식을 저장하면 GitHub, Azure DevOps 또는 기타 소스 코드 제어 시스템을 사용하여 Power Fx를 소스 제어에 배치할 수 있습니다.

Pro 코드 Visual Studio Code.

Pro 코드 GitHub.

Power Fx는 공유 및 재사용을 위한 공식 기반 구성 요소를 지원합니다. 구성 요소 속성에 대한 매개 변수를 지원하므로 더 향상된 기능을 통해 순수 사용자 정의 함수를 만들 수 있습니다.

또한, Power Fx는 전문가가 구축한 구성 요소와 서비스를 결합하는 데 탁월합니다. 기본 제공 커넥터는 수백 개의 데이터 원본 및 웹 서비스에 대한 액세스를 제공합니다. 사용자 지정 커넥터를 사용하면 Power Fx에서 REST 웹 서비스와 통신할 수 있습니다. 코드 구성 요소를 사용하면 Power Fx가 화면 및 페이지에서 완전히 사용자 지정 JavaScript와 상호 작용할 수 있습니다.

설계 원칙

단순함

Power Fx는 멤버가 개발자로 학습되지 않은 제작자 대상을 대상으로 하도록 설계되었습니다. 가능하면 언어는 이 청중이 이미 알고 있거나 빠르게 선택할 수 있는 지식을 사용합니다. 성공적으로 사용하는 데 필요한 개념의 수가 최소한으로 유지됩니다.

단순함은 개발자에게도 좋습니다. 개발자 대상에게 Power Fx는 솔루션을 빌드하는 데 필요한 시간을 줄이는 로우 코드 언어를 목표로 합니다.

Excel과의 일관성

Microsoft Power Fx 언어는 Excel 공식 언어에서 많이 차용됩니다. Excel 사용하는 많은 제조업체의 Excel 지식과 경험을 활용합니다. 형식, 연산자 및 함수 의미 체계는 최대한 Excel에 가깝습니다.

Excel 답변이 없으면 Power Fx는 다음으로 SQL을 찾습니다. SQL은 Excel 다음으로 가장 일반적으로 사용되는 선언적 언어이며 Excel에서 제공하지 않는 데이터 작업 및 강력한 입력에 대한 지침을 제공할 수 있습니다.

선언적

제작자는 자신의 논리가 어떻게 또는 언제가 아니라 무엇을 수행하기를 원하는지 설명합니다. 이 방법을 사용하면 컴파일러가 병렬로 작업을 수행하고, 필요할 때까지 작업을 지연하고, 캐시된 데이터를 프리페치하고 다시 사용하여 최적화할 수 있습니다.

예를 들어 Excel 워크시트에서 작성자가 셀 간의 관계를 정의하지만 Excel 수식을 평가할 시기와 순서를 결정합니다. 마찬가지로 앱의 수식은 사용자 작업, 데이터베이스 변경 또는 타이머 이벤트에 따라 필요에 따라 "recalc-ing"으로 간주할 수 있습니다.

기능

부작용이 없는 순수 함수를 사용합니다. 이 방법을 사용하면 이해하기 쉬운 논리가 생성되고 컴파일러에서 최적화할 수 있는 가장 자유가 있습니다.

Excel 달리, 기본적으로 앱은 상태를 변경합니다. 예를 들어 앱에는 데이터베이스의 레코드 변경 내용을 저장하는 단추가 있습니다. 일부 함수, 따라서, 부작용이, 비록 이러한 부작용을 제한 하는 만큼 실용적인.

작성

가능한 경우 기존 기능을 잘 구성하는 기능을 추가합니다. 더 쉽게 독립적으로 사용할 수 있는 더 작은 부분으로 강력한 함수를 분해할 수 있습니다.

예를 들어 갤러리 컨트롤에는 별도의 SortFilter 속성이 없습니다. 대신 단일 속성으로 함께 구성하고 Filter 함수를 Items 작성 Sort 합니다. 이 속성에 양방향 편집기를 Sort 사용하여 속성 위에 Items 표현 및 Filter 동작을 위한 UI를 계층화합니다.

강력한 입력

모든 값의 형식은 컴파일 시간에 알려져 있습니다. 이 방법을 사용하면 작성하는 동안 오류 및 다양한 제안을 조기에 검색할 수 있습니다.

다형 형식은 지원되지만 사용하려면 먼저 해당 형식을 정적 형식에 고정해야 하며 해당 형식은 컴파일 시간에 알려야 합니다. IsTypeAsType 함수는 형식의 테스트 및 캐스팅을 위해 제공됩니다.

형식 유추

형식은 선언되지 않고 사용에서 파생됩니다. 예를 들어 변수를 숫자로 설정하면 변수 유형이 숫자로 설정됩니다.

형식 사용이 충돌하면 컴파일 시간 오류가 발생합니다.

지역 구분 소수점 구분 기호

세계의 일부 지역에서는 점(.)을 소수 구분 기호로 사용하지만, 다른 지역에서는 콤마(,)를 사용합니다. Excel 이 지역 규칙을 따릅니다. 다른 프로그래밍 언어는 일반적으로 전 세계 모든 사용자의 10진수 구분 기호로 정식 점(.)을 사용합니다. 모든 수준의 메이커들이 최대한 접근하기 위해서는 평생 이 구문을 사용해 온 프랑스인에게 3,14가 소수라는 것이 중요합니다.

소수점 구분 기호의 선택은 함수 호출 인수 및 연결 연산자에 사용되는 목록 구분 기호에 계단식 영향을 미칩니다.

작성자 언어의 소수 구분 기호 Power Fx 소수 구분 기호 Power Fx 목록 구분 기호 Power Fx 연결 연산자
페이지를 참조하세요. (점) 페이지를 참조하세요. (점) ,(쉼표) ; (세미콜론)
,(쉼표) ,(쉼표) ; (세미콜론) ;; (이중 세미콜론)

추가 정보: 글로벌 지원

객체 지향이 아닙니다

Excel은 개체 지향적이 아니며 Power Fx도 마찬가지입니다. 예를 들어, 일부 언어에서 문자열의 길이는 JavaScript에서의 "헬로 월드".length와 같은 문자열의 속성으로 표현됩니다. 대신 Excel 및 Power Fx에서는 이것을 Len( "헬로 월드" )로 표현하여 함수를 대신합니다.

속성 및 메서드가 있는 구성 요소는 개체 지향적이며 Power Fx는 이러한 구성 요소와 쉽게 작동합니다. 그러나 가능한 경우 기능적 접근 방식을 선호합니다.

확장 가능

제작자는 Power Fx 자체를 사용하여 구성 요소와 기능을 만들 수 있습니다. 개발자는 JavaScript를 작성하여 구성 요소와 기능을 만들 수 있습니다.

개발자 친화적

제조업체가 주요 목표이지만 가능한 한 개발자 친화적인 방법을 시도해 보세요. 앞에서 설명한 디자인 원칙과 충돌하지 않는 경우 개발자가 인정하는 방식으로 작업을 수행합니다. 예를 들어 Excel 주석을 추가하는 기능이 없으므로 C와 유사한 줄 및 인라인 주석을 사용합니다.

언어 발전

프로그래밍 언어를 발전시키는 것은 필수적이면서도 까다롭습니다. 모든 사람은 의도가 아무리 좋더라도 변경으로 인해 기존 코드가 손상될 수 있고 사용자가 새로운 패턴을 배워야 한다고 우려합니다. Power Fx는 이전 버전과의 호환성을 중요하게 생각하지만, Power Fx 팀은 항상 처음에 제대로 작동하지는 않으며 커뮤니티가 가장 좋은 것을 공동으로 배울 수 있다고 강력히 믿습니다. 프로그래밍 언어는 진화해야 하며 Power Fx는 처음부터 언어 진화를 지원하도록 설계되었습니다.

저장된 모든 Power Fx 문서에는 언어 버전 스탬프가 포함됩니다. Power Fx 팀이 호환되지 않는 변경을 원하는 경우 다음에 편집할 때 수식을 자동으로 다시 작성하는 "백 콤파트 변환기"라고 부르는 내용을 작성합니다. 변경 내용이 팀에서 사용자에게 교육해야 하는 중요한 사항인 경우 앱은 문서에 대한 링크가 포함된 메시지를 표시합니다. 이 기능을 사용하여 Power Fx는 그 이후로 발생한 모든 변경에도 불구하고 몇 년 전의 Power Apps 미리 보기 버전으로 빌드된 앱을 로드할 수 있습니다.

예를 들어 Power Fx 팀은 빨간색 배경이 있는 오류 배너를 표시하는 함수를 도입 ShowError 했습니다.

오류 표시.

사용자는 이를 좋아했지만 성공 배너(녹색 배경) 또는 정보 배너(파란색 배경)를 표시하는 방법도 요청했습니다. 따라서 팀은 알림 종류에 대해 두 번째 인수를 사용하는 보다 일반적인 Notify 함수를 마련했습니다. 팀은 방금 추가하고 Notify 그대로 유지할 ShowError 수 있었지만 대신 .로 Notify대체했습니다ShowError. 이전에 프로덕션에 있던 함수를 제거하고 다른 함수로 대체했습니다. 동일한 작업을 수행하는 두 가지 방법이 있었기 때문에 이러한 변경으로 인해 특히 새 사용자에게 혼동이 생겼을 것이며, 가장 중요한 것은 복잡성을 더했을 것입니다. 누구도 불만을 제기하지 않았고 변경 사항에 감사하였으며 새로운 알림 기능을 사용하기 시작했습니다.

이것은 동일한 앱이 최신 버전의 Power Apps에 로드되었을 때의 모습입니다. 사용자가 이 변환을 수행하기 위해 필요한 조치는 없으며 앱을 열 때 자동으로 수행되었습니다.

알림 기능이 ShowError를 대체.

이 기능을 사용하면 Power Fx가 대부분의 프로그래밍 언어보다 더 빠르고 적극적으로 진화할 수 있습니다.

정의되지 않은 값 없음

JavaScript와 같은 일부 언어는 초기화되지 않은 변수나 누락된 속성에 대해 정의되지 않은 값의 개념을 사용합니다. 간단히 하기 위해 Power Fx는 이 개념을 피합니다. 다른 언어로 정의되지 않은 오류 또는 공백 값으로 처리됩니다. 예를 들어, 초기화되지 않은 모든 변수는 공백 값으로 시작합니다. 모든 데이터 형식은 공백 값을 가질 수 있습니다.

데이터 유형
연산자 및 식별자
테이블
변수
명령형 논리
글로벌 지원
표현 문법
YAML 수식 문법
캔버스 앱의 수식