Power Fx: Low-code Language for Collaboration Tools

. The paper provides an overview of the first impression of the language for implementation low code of approach. About a month has passed since the release date. at the level of data structures, what algorithms are used for selection, sorting, and how computations are parallelized. Main objective: Implementation of the business requirement by creating a process state diagram. From a business point of view, this


Introduction
The IT market is now experiencing a new round of its rapid development. The demand for specialists in this area remains at least high [1]. According to the rules of the market, the cost of projects and services is growing following demand. Numerous platforms operating on the principles of low-code and zero-code have become one of the options for solving problems for automation and digitalization [2]. The general approach in such solutions is that most of the processes can be represented in the form of a graphical designer that works in accordance with UML/BPMN. The main feature is that the developer does not need to think about how interactions occur at the level of data structures, what algorithms are used for selection, sorting, and how computations are parallelized. Main objective: Implementation of the business requirement by creating a process state diagram. From a business point of view, this Voronkov I.A., Saradgishvili S.E. Power Fx: Low-code language for collaboration tools. Trudy ISP RAN/Proc. ISP RAS, vol. 33, issue 3, 2021, pp. 101-108 102 paradigm is the most effective way to solve a problem, since business users are accustomed to thinking precisely by the tasks that a particular system must solve. Unfortunately, at this stage of technology development, we are not able to completely switch to such technological solutions. The reasons may be different: the inability to completely solve the problem using only design tools, the lack of specialists with modeling, programming and business experience, the presence of a large layer of legacy code. Nevertheless, it is worth noting the growth of such decisions not only in business, but also in the scientific community [3,4]. Along with the development of technologies, the question of the place of these solutions in the future is becoming more acute. Many owners of large IT companies are promoting the idea that programming and software development should cease to be a highly specialized area [5]. The main idea is that in the future, people will use software tools to solve their personalized tasks. To do this, you do not have to get an education, take special courses. All you need to know is what you want to achieve with the program and how it can make your life easier. Of course, such ideas may seem utopian and unrealizable on the horizon of the next 10-20 years but looking back at the history of the development of the IT industry, we begin to think that all this may happen in the near future [6]. In this article, we provide an overview of an intermediate: a language that can empower people who are familiar with Excel syntax to develop software.

Description
At the beginning, we emphasize that this language is part of the Power platform. This is a relatively new vision of Microsoft corporation about the business data warehouse as a single point of connection and storage of data and tools. Together with the Power platform, the Power automate product demonstrates its development -a workflow designer, partly the successor to SSIS, SharePoint workflow engine. Together, these tools are able to close most of the tasks of automating enterprise activities. To enhance the ability to develop using third-party technologies and programming languages, Microsoft introduced the Microsoft Graph API [7]. Microsoft Graph is the gateway to data and intelligence in Microsoft 365. It provides a unified programmability model that you can use to access the tremendous amount of data in Microsoft 365, Windows 10, and Enterprise Mobility + Security. Use the wealth of data in Microsoft Graph to build apps for organizations and consumers that interact with millions of users. The Microsoft Graph API offers a single endpoint, https://graph.microsoft.com, to provide access to rich, people-centric data and insights in the Microsoft cloud, including Microsoft 365, Windows 10, and Enterprise Mobility + Security. You can use REST APIs or SDKs to access the endpoint and build apps that support Microsoft 365 scenarios, spanning across productivity, collaboration, education, people and workplace intelligence, and much more. Microsoft Graph also includes a powerful set of services that manage user and device identity, access, compliance, security, and help protect organizations from data leakage or loss. Microsoft Graph connectors (preview) work in the incoming direction, delivering data external to the Microsoft cloud into Microsoft Graph services and applications, to enhance Microsoft 365 experiences such as Microsoft Search. Connectors exist for many commonly used data sources such as Box, Google Drive, Jira, and Salesforce. Microsoft Graph data connect provides a set of tools to streamline secure and scalable delivery of Microsoft Graph data to popular Azure data stores. The cached data serves as data sources for Azure development tools that you can use to build intelligent applications.
Three key traits of Power Fx:  Power Fx is based on Microsoft Excel. Using formulas that are already familiar to hundreds of millions of users, Power Fx allows a broad range of people to bring skills they already know to low code solutions. Power Fx becomes a common ground for business users and professional developers alike to express logic and solve problems.  Power Fx is built for low code. Power Fx is already the foundation of the Microsoft Power Apps canvas.

Working with datasets
Power Fx supports the If / else construct, but first-time users of this tool may be confused by the lack of a For loop. We tend to attribute this semantic idea to the fast-paced idea of promoting LINQ expressions [9]. Working with sets is based on the following commands: 104 selectively remove records.Clear has no return value. It can only be used in a behavior formula. Example: Clear(DataSource).  ClearCollect. The ClearCollect function deletes all the records from a collection. And then adds a different set of records to the same collection. With a single function, ClearCollect offers the combination of Clear and then Collect.  Delegation. When used with a data source, these functions can't be delegated. Only the first portion of the data source will be retrieved and then the function applied. The result may not represent the complete story. A warning may appear at authoring time to remind you of this limitation and to suggest switching to delegable alternatives where possible. Nevertheless, if it is necessary to organize a For loop to iterate over the data, we can use the extension mechanism. . The most common use case for this mechanism can be represented in the form of interaction with the Microsoft Teams component, where the message acts as a triggering event. Fig. 1 demonstrates a step for triggering an event with receiving/ sending a message to a special channel.

Interim results of the research
In this paper, we have described the main features of the language and ways to expand the functionality. To automate tasks in enterprises, this language is well used, and there is also a practice of reusing components: connectors, XML code. To compare the speed of delivery development, we plan to implement an experiment on the implementation of typical tasks using this language. On a specific example of updating the structure of a multiple field with users and their profiles, the language, as well as the low-code approach, showed excellent results.