Прочетете на английски

Споделяне чрез


Обект на приложение в Power Apps

Отнася се за: Приложения за платно Приложения, управлявани от модел

Предоставя информация за текущото приложение и контрол върху поведението му.

Описание

Като контрола, на обекта Приложение предоставя свойства, които идентифицират кой екран се показва и които подтикват потребителя да запазва промените, така че да не се загубят. Всяко приложение има обект Приложение.

Можете да напишете формули за някои свойства на обекта Приложение. В горната част на екрана Изглед на дърво, изберете обекта Приложение, както бихте направили всеки друг контрол или екран. Прегледайте и редактирайте едно от свойствата на обекта, като го изберете в падащия списък отляво на лентата с формули.

Обектът на приложението в екрана Дървовиден изглед.

Свойство ActiveScreen

Свойството ActiveScreen идентифицира екрана, който се показва.

Това свойство връща екранен обект. Използвайте го, за да препратите към свойствата на текущо показания екран, като например името с формулата App.ActiveScreen.Name. Можете също да сравните това свойство с друг обект на екрана, като например с формулата за сравнение App.ActiveScreen = Screen2 , за да проверите дали Screen2 е текущо показваният екран.

Използвайте функцията Back или Navigate за промяна на екрана, който се показва.

BackEnabled свойство

Свойството BackEnabled променя начина, по който приложението реагира на жеста назад на устройството (плъзнете или използвайте хардуерния бутон за връщане назад на Android устройствата, плъзнете отляво на iOS устройствата), когато работи на Power Apps мобилно устройство. Когато е активирано, жестът назад на устройството се навигира обратно към екрана, който е бил показан последно, което е подобно на формулата Назад . Когато е забранено, жестът назад на устройството връща потребителя към списъка с приложения.

Свойствата на ConfirmExit

Никой не иска да загуби несъхранени промени. Използвайте ConfirmExit и свойства ConfirmExitMessage, за да предупредят потребителя, преди да затвори приложението ви.

Бележка

  • ConfirmExit не работи в приложения, които са вградени, например, Power BI и SharePoint.
  • Сега тези свойства могат да препращат към контролите само на първия екран, ако функцията за отложен преглед на зареждането е активирана (което е по подразбиране за нови приложения). Ако са направени препратки, Power Apps Studio не показва грешка, но полученото публикувано приложение не се отваря в браузър Power Apps Mobile. Ние активно работим за премахването на това ограничение. Междувременно можете да изключите Забавено натоварване във Настройки>Предстоящи функции (под Преглед).

ConfirmExit

ConfirmExit е булево свойство, което, когато е вярно, отваря диалогов прозорец за потвърждение, преди приложението да бъде затворено. По подразбиране това свойство е невярно и не се появява диалогов прозорец.

В ситуации, в които потребителят може да има незаписани промени в приложението, използвайте това свойство, за да покажете диалогов прозорец за потвърждение, преди да излезете от приложението. Използвайте формула, която може да проверява променливите и да контролира свойствата (например свойството Незаписано на контролата Редактиране на формуляр).

Диалоговият прозорец за потвърждение се появява във всяка ситуация, при която данните могат да бъдат загубени, както в тези примери:

  • Изпълнение на функцията Exit.
  • Ако приложението работи в браузър:
    • Затваряне на браузъра или раздела на браузъра, в който се изпълнява приложението.
    • Избор на бутона за връщане на браузъра.
    • Изпълнение на функцията Launch с LaunchTarget на Self.
  • Ако приложението се изпълнява на Power Apps мобилно устройство (iOS или Android):
    • Прекарайте пръст, за да превключите към друго приложение в Power Apps Mobile.
    • Избиране на бутона за връщане на устройството Android.
    • Изпълнение на функцията Launch за стартиране на друго приложение за платно.

Точният вид на диалоговия прозорец за потвърждение може да варира в различните устройства и версии на Power Apps.

Диалоговият прозорец не се показва в Power Apps Studio.

ConfirmExitMessage

По подразбиране диалоговият прозорец за потвърждение показва общо съобщение, като например „Може да имате незаписани промени.“ на езика на потребителя.

Използвайте ConfirmExitMessage, за да предоставите персонализирано съобщение в диалоговия прозорец за потвърждение. Ако това свойство е празно, използвайте стойността по подразбиране. Персонализираните съобщения са съкратени, колкото е необходимо, за да се поберат в диалоговия прозорец за потвърждение, така че дръжте съобщението най-много до няколко реда.

В браузър диалоговият прозорец за потвърждение може да се появи с общо съобщение от браузъра.

Бележка

Обектът на приложението има още две свойства OnMessage и BackEnabled които са експериментални. Тези свойства в крайна сметка ще бъдат премахнати от обекта на приложението. Препоръчваме ви да не използвате тези свойства в производствената си среда.

Пример

  1. Създайте приложение, което съдържа две формуляри за управление, AccountForm и ContactForm.

  2. Задайте свойството ConfirmExit на обекта Приложение на този израз:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    Този диалогов прозорец се появява, ако потребителят промени данни в която и да е форма и след това се опита да затвори приложението, без да запазва тези промени.

    Диалогов прозорец за общо потвърждение.

  3. Задайте свойството ConfirmExitMessage на обекта Приложение на тази формула:

    If( AccountsForm.Unsaved,
        "Accounts form has unsaved changes.",
        "Contacts form has unsaved changes."
    )
    

    Този диалогов прозорец се появява, ако потребителят промени данни във формуляра за акаунт и след това се опита да затвори приложението, без да запазва тези промени.

    Диалогов прозорец за потвърждение на конкретен формуляр.

Настройте ключ за инструменти за Application Insights

За да експортирате системно генерирани регистрационни Application Insights файлове на приложения, трябва да настроите ключа за инструменти за вашето приложение за платно.

  1. Отворете приложението си за редактиране Power Apps Studio.
  2. Изберете обекта Приложение в левия изглед на навигационното дърво.
  3. Въведете ключа за инструментиране в екрана със свойства.

Ако данните не се изпращат до App Insights, свържете се с администратора си Power Platform и проверете дали App Insights е деактивиран на ниво клиент.

Свойство на формули

Използвайте наименувани формули в свойството Формули, за да дефинирате формула, която може да се използва повторно във вашето приложение.

В Power Apps формулите определят стойността на контролните свойства. Например, за да зададете последователно цвета на фона в едно приложение, можете да зададете свойството Fill за всяко от тях на обща формула:

Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )

С толкова много места, където може да се появи тази формула, става досадно и податливо на грешки да ги актуализирате всички, ако е необходима промяна. Вместо това можете да създадете глобална променлива в OnStart за да зададете цвета веднъж и след това да използвате отново стойността в цялото приложение:

App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

Въпреки че този метод е по-добър, той също зависи от това OnStart да се изпълнява, преди да се установи стойността за BGColor. BGColor може също да бъде манипулиран в някой ъгъл на приложението, за който производителят не знае, промяна, направена от някой друг, и това може да бъде трудно да се проследи.

Именуваните формули предоставят алтернатива. Точно както обикновено пишем control-property = израз, вместо това можем да напишем име = израз и след това да използваме повторно име в нашето приложение за заместване на израз. Дефинициите на тези формули се правят в свойството Formulas:

App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

Предимствата от използването на именувани формули включват:

  • Стойността на формулата е винаги налична. Няма зависимост от времето, няма OnStart, който трябва да се изпълни първо, преди стойността да бъде зададена, няма време, в което стойността на формулата да е неправилна. Именуваните формули могат да препращат една към друга в произволен ред, стига да не създават кръгова препратка. Те могат да се изчисляват паралелно.
  • Стойността на формулата е винаги актуална. Формулата може да извърши изчисление, което зависи от свойствата на контролата или записите в базата данни, и когато те се променят, стойността на формулата се актуализира автоматично. Не е необходимо ръчно да актуализирате стойността, както правите с променлива. А формулите преизчисляват само когато е необходимо.
  • Дефиницията на формулата е неизменна. Дефиницията във Формули е единственият източник на истина и стойността не може да бъде променена някъде другаде в приложението. При променливите е възможно някакъв код неочаквано да промени стойност, но тази трудна за отстраняване на грешки ситуация не е възможна с именувани формули.
  • Изчислението на формулата може да бъде отложено. Тъй като стойността му е неизменна, тя винаги може да бъде изчислена, когато е необходимо, което означава, че не е необходимо да се изчислява, докато не е необходима. Стойностите на формулата, които не се използват, докато не се покаже screen2 на приложение, не е необходимо да се изчисляват, докато screen2 не е видим. Отлагането на тази работа може да подобри времето за зареждане на приложението. Именуваните формули са декларативни и предоставят възможности на системата да оптимизира как и кога се изчисляват.
  • Наименуваните формули са концепция на Excel. Power Fx използва концепции на Excel, където е възможно, тъй като толкова много хора познават Excel добре. Именуваните формули са еквивалентни на именувани клетки и именувани формули в Excel, управлявани с диспечера на имена. Те преизчисляват автоматично, както правят клетките на електронна таблица и свойствата на контролата.

Именуваните формули се дефинират една след друга в свойството Formulas, като всяка завършва с точка и запетая. Типът на формулата се извежда от видовете елементи във формулата и как те се използват заедно. Например тези именувани формули извличат полезна информация за текущия потребител от Dataverse:

UserEmail = User().Email;
UserInfo = LookUp( Users, 'Primary Email' = User().Email );
UserTitle = UserInfo.Title;
UserPhone = Switch( UserInfo.'Preferred Phone', 
                    'Preferred Phone (Users)'.'Mobile Phone', UserInfo.'Mobile Phone',
                    UserInfo.'Main Phone' );

Ако формулата за UserTitle трябва да бъде актуализирана, това може да се направи лесно на това едно място. Ако UserPhone не е необходим в приложението, тези повиквания към таблицата Потребители в Dataverse не се извършват. Няма наказание за включване на дефиниция на формула, която не се използва.

Някои ограничения на именувани формули:

  • Те не могат да използват функции за поведение или по друг начин да причиняват странични ефекти в приложението.
  • Те не могат да създадат кръгова препратка. Наличието на a = b; и b = a; в едно и също приложение не е разрешено.

Дефинирани от потребителя функции

Важно

Power Fx включва дълъг списък от вградени функции, като Ако, Текст и Задайте. Дефинираните от потребителя функции ви позволяват да пишете свои собствени функции, които приемат параметри и връщат стойност, точно както правят вградените функции. Можете да мислите за дефинираните от потребителя функции като за разширение на именувани формули, което добавя параметри и поддържа формули за поведение.

Например, можете да дефинирате формула с име, която връща художествени книги от библиотека:

Library = [ { Title: "The Hobbit", Author: "J. R. R. Tolkien", Genre: "Fiction" },
            { Title: "Oxford English Dictionary", Author: "Oxford University", Genre: "Reference" } ];

LibraryFiction = Filter( Library, Genre = "Fiction" );

Без параметри ще трябва да дефинираме отделни именувани формули за всеки жанр. Но вместо това, нека параметризираме формулата с име:

LibraryType := Type( [ { Title: Text, Author: Text, Genre: Text } ] );

LibraryGenre( SelectedGenre: Text ): LibraryType = Filter( Library, Genre = SelectedGenre );

Сега можем да извикаме LibraryGenre( "Fiction" ), LibraryGenre( "Reference" ) или да филтрираме други жанрове с една дефинирана от потребителя функция.

Синтаксисът е:

Име на функция( [ Име на параметър1: Тип на параметър1 [, Име на параметър2: Тип на параметър2 ... ] ] ) : Тип на връщане = Формула;

  • Име на функция – Задължително. Името на дефинираната от потребителя функция.
  • Имена на параметри – По избор. Името на функционален параметър.
  • ParameterTypes – По избор. Името на тип, или вградено име на тип данни, име на източник на данни или тип, дефиниран с тип функция.
  • ReturnType – Задължително. Типът на върнатата стойност от функцията.
  • Формула – Задължително. Формулата, която изчислява стойността на функцията въз основа на параметрите.

Всеки параметър и изходът от дефинираната от потребителя функция трябва да бъдат въведени. В този пример SelectedGenre: Text дефинира първия параметър на нашата функция да бъде от тип Текст и SelectedGenre е името на параметър, който се използва в тялото за Филтър операция. Вижте Типове данни за имената на поддържаните типове. Функцията Type се използва за създаване на обобщен тип за нашата библиотека, така че да можем да върнем таблица с книги от нашата функция.

Ние дефинирахме LibraryType като множествена таблица от тип записи. Ако искаме да предадем една книга към функция, можем да извлечем типа на записа за тази таблица с RecordOf функцията:

BookType := Type( RecordOf( LibraryType ) );

IsGenre( Book: BookType, SelectedGenre: Text ): Boolean = (Book.Genre = SelectedGenre);

Съвпадението на записите за функционалните параметри е по-строго, отколкото в други части на Power Fx. Полетата на стойност на запис трябва да бъдат подходящо подмножество на дефиницията на типа и не могат да включват допълнителни полета. Например IsGenre( { Title: "My Book", Published: 2001 }, "Fiction" ) ще доведе до грешка.

Имайте предвид, че рекурсията все още не се поддържа от потребителски дефинирани функции.

Поведение, дефинирани от потребителя функции

Наименуваните формули и повечето дефинирани от потребителя функции не поддържат поведенчески функции със странични ефекти, като например Set или Notify. Като цяло, най-добре е да избягвате актуализирането на състоянието, ако можете, вместо това да разчитате на модели на функционално програмиране и да позволите на Power Fx автоматично преизчисляване на формули според нуждите. Но има случаи, когато това е неизбежно. За да включите логика на поведение в дефинирана от потребителя функция, увийте тялото във фигурни скоби:

Spend( Amount: Number ) : Void = {
    If( Amount > Savings, 
        Error( $"{Amount} is more than available savings" ),
        Set( Savings, Savings - Amount );
        Set( Spent, Spent + Amount) 
    );
}

Сега можем да извикаме Spend( 12 ) за да проверим дали имаме 12 в спестяванията си и ако е така, да ги дебитираме с 12 и да добавим 12 към променливата Spend. Типът връщане на тази функция е Void тъй като не връща стойност.

Синтаксисът на дефинирана от потребителя функция за поведение е:

FunctionName( [ ParameterName1: ParameterType1 [, ParameterName2: ParameterType2 ... ] ] ) : ReturnType = { Формула1 [ ; Формула2 ... ] };

  • Име на функция – Задължително. Името на дефинираната от потребителя функция.
  • Имена на параметри – По избор. Името на функционален параметър.
  • ParameterTypes – По избор. Името на тип, вградено име на тип данни, име на източник на данни или тип, дефиниран с функцията Тип.
  • ReturnType – Задължително. Типът на върнатата стойност от функцията. Използвайте Void , ако функцията не връща стойност.
  • Формули – Задължително. Формулата, която изчислява стойността на функцията въз основа на параметрите.

Както при всички Power Fx формули, изпълнението не приключва при възникване на грешка. След като функцията Грешка бъде извикана, функцията Ако предотвратява промените в Спестявания и Изразходвани . Функцията IfError може да се използва и за предотвратяване на по-нататъшно изпълнение след грешка. Въпреки че връща Void, формулата все още може да върне грешка, ако има проблем.

Дефинирани от потребителя типове

Важно

Именуваните формули могат да се използват с функцията Type за създаване на дефинирани от потребителя типове. Използвайте := вместо = , за да дефинирате дефиниран от потребителя тип, например Book := Type( { Title: Text, Author: Text } ). Вижте функцията Type за повече информация и примери.

Свойство OnError

Използвайте OnError , за да предприемете действия, когато възникне грешка някъде в приложението. Той предоставя глобална възможност за прихващане на банер за грешка, преди да бъде показан на крайния потребител. Може също да се използва за регистриране на грешка с функцията Trace или запис в база данни или уеб услуга.

В приложенията за платно резултатът от всяка оценка на формула се проверява за грешка. Ако възникне грешка, OnError се оценява със същите променливи на обхвата FirstError и AllErrors , които биха били използвани, ако цялата формула беше обвита във функция IfError.

Ако OnError е празно, се показва банер за грешка по подразбиране с FirstError.Message на грешката. Дефинирането на формула OnError заменя това поведение, позволявайки на създателя да обработва докладването за грешки, както намери за добре. Поведението по подразбиране може да бъде поискано в OnError, като се хвърли отново грешката с функцията Error. Използвайте подхода на повторно хвърляне, ако някои грешки трябва да бъдат филтрирани или обработени по различен начин, докато други трябва да бъдат прехвърлени.

OnError не може да замени грешка в изчисленията по начина, по който IfError може. Ако се извика OnError , грешката вече е възникнала и вече е обработена чрез изчисления на формули като IfError; OnError контролира само докладването на грешки.

Формулите на OnError се оценяват едновременно и е възможно тяхната оценка да се припокрива с обработката на други грешки. Например, ако зададете глобална променлива в началото на OnError и я прочетете по-късно в същата формула, стойността може да се е променила. Използвайте функцията With за създаване на именувана стойност, която е локална за формулата.

Въпреки че всяка грешка се обработва индивидуално от OnError, банерът за грешка по подразбиране може да не се появи за всяка грешка поотделно. За да избегнете показването на твърде много банери за грешка по едно и също време, същият банер за грешка няма да се показва отново, ако е бил показван наскоро.

Пример

Помислете за Label контрола и Slider контрола, които са свързани заедно чрез формулата:

Label1.Text = 1/Slider1.Value

Етикет и контрола на плъзгача, обвързани чрез формулата Label1.Text = 1/Slider1.Value.

Плъзгачът по подразбиране е 50. Ако плъзгачът се премести на 0, Label1 няма да показва стойност и се показва банер за грешка:

Контролът на плъзгача е преместен на 0, което води до грешка при деление на нула и банер за грешка.

Нека да разгледаме какво се случи в детайли:

  1. Потребителят премести слайда наляво и свойството Slide1.Value се промени на 0.
  2. Label1.Text бе автоматично преоценен. Възникна деление на нула, което генерира грешка.
  3. В тази формула няма IfError. Грешката при деление на нула се връща от оценката на формулата.
  4. Label1.Text не може да покаже нищо за тази грешка, така че показва празно състояние.
  5. Извиква се OnError . Тъй като няма манипулатор, стандартният банер за грешка се показва с информация за грешка.

Ако е необходимо, можем също така да променим формулата на Label1.Text = IfError( 1/Slider1.Value, 0 ). Използването на IfError няма да доведе до грешка или банер за грешка. Не можем да променим стойността на грешка от OnError тъй като в този момент грешката вече се е случила, въпрос е само как ще бъде докладвана.

Ако добавим манипулатор OnError , той няма въздействие преди стъпка 5, но може да повлияе на това как се докладва грешката:

Trace( $"Error {FirstError.Message} in {FirstError.Source}" )

Формула App.OnError, зададена за генериране на Trace.

С този OnError манипулатор на място, от гледна точка на потребителя на приложението, няма да има грешка. Но грешката ще бъде добавена към проследяването на монитора, заедно с източника на информация за грешка от FirstError:

Контролът на плъзгача е преместен на 0, което води до грешка при деление на нула, но без банер за грешка.

Ако също така искаме да имаме същия банер за грешка по подразбиране, показан в допълнение към проследяването, можем да хвърлим отново грешката с функцията Error след Извикване на Trace точно както беше, ако Trace не беше там:

Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )

Свойство OnStart

Бележка

Използването на OnStart свойството може да причини проблеми с производителността при зареждане на приложение. Ние сме в процес на създаване на алтернативи за първите две причини за използване на свойство-кеширане на данни и настройка на глобални променливи. Вече създадохме алтернатива за дефиниране на първия екран, с който да се показва Navigate. В зависимост от вашия контекст това свойство може да бъде деактивирано по подразбиране. Ако не го виждате и трябва да го използвате, проверете разширените настройки на приложението за превключвател, за да го активирате. Свойството OnVisible на екран може също да се използва. По подразбиране, когато неблокиращото OnStart правило е активирано, то позволява функцията OnStart да работи едновременно с други правила на приложението. Така че, ако променливите, посочени в други правила на приложението, са инициализирани във функцията OnStart , те може все още да не са напълно инициализирани. Освен това има възможност екранът да се визуализира и да стане интерактивен преди или Screen.OnVisible или App.OnStart функциите завършват с изпълнението си, особено ако отнемат много време за изпълнение.

Свойството OnStart се стартира, когато потребителят стартира приложението. Това свойство често се използва за изпълнение на следните задачи:

  • Извличане и кеширане на данни в колекциите с помощта на функцията Collect.
  • Настройте глобални променливи с помощта на функция Set.

Тази формула се оценява преди появата на първия екран. Не се зарежда екран, така че не можете да задавате контекстни променливи с функцията UpdateContext. Можете обаче да предавате контекстни променливи с функцията Navigate.

След като смените OnStart свойство, тествайте го, като задържите курсора на мишката върху Приложение обект в Изглед на дърво панел, избиране на многоточие (...) и след това избиране Стартирайте OnStart. За разлика от това, когато приложението се зарежда за първи път, съществуващите колекции и променливи вече ще бъдат зададени. За да започнете с празни колекции, използвайте функцията ClearCollect вместо функцията Collect.

Меню за пряко меню за приложение за „Изпълнение на OnStart”

Бележка

  • Използването Navigate функция в свойство OnStart е оттеглено. Съществуващите приложения ще продължат да работят. За ограничен период от време все още можете да го активирате в настройките на приложението (достъпно под пенсиониран). Въпреки това, използвайки Navigate по този начин може да доведе до забавяне на зареждането на приложението, тъй като принуждава системата да завърши оценка на OnStart преди показване на първия екран. Използвайте StartScreen свойство вместо това да изчисли първия показан екран.
  • Оттегленият превключвател ще бъде изключен за приложения, създадени преди март 2021 г., където сте добавили Навигация към OnStart между март 2021 г. и сега. Когато редактирате такива приложения в Power Apps Studio, може да видите грешка. Включете оттегления превключвател, за да изчистите тази грешка.

Свойство StartScreen

Свойството StartScreen определя кой екран ще бъде показан първи. Той се оценява веднъж, когато приложението се зареди и връща екранния обект, който да бъде показан. По подразбиране това свойство е празно и първият екран в изгледа Studio Tree се показва първи.

StartScreen е свойство на поток от данни, което не може да съдържа функции за поведение. Всички функции за поток от данни са налични, по-специално използвайте тези функции и сигнали, за да определите кой екран да се покаже първи:

  • Param функция за четене на параметри, използвани за стартиране на приложението.
  • Потребител функция за четене на информация за текущия потребител.
  • LookUp, Filter, CountRows, Max и други функции, които четат от източник на данни.
  • Всяко API извикване през конектор, но внимавайте да се връща бързо.
  • Сигнали като Връзка, Компас, и Приложение.

Бележка

Глобални променливи и колекции, включително тези, създадени в OnStart, не са налични в StartScreen. Именуваните формули са налични и често са по-добра алтернатива за повторно използване на формули в приложението.

Ако StartScreen връща грешка, първият екран в изгледа Studio Tree ще се покаже сякаш StartScreen не беше зададено. Използвайте IfError функция за улавяне на грешки и пренасочване към подходящ екран за грешки.

След като промените StartScreen в Студио, тествайте го, като задържите курсора на мишката върху Приложение обект в Изглед на дърво панел, избиране на многоточие (...) и след това избиране Навигиране до StartScreen. Екранът ще се промени, сякаш приложението току-що е било заредено.

Преминаване към StartScreen

Примери

Screen9

Показва, че Screen9 трябва да се показва първо при стартиране на приложението.

If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )

Проверява дали параметърът "admin-mode" е зададен от потребителя и го използва, за да реши дали HomeScreen или AdminScreen трябва да се покаже първо.

If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )

Проверява дали присъстващият на конференция е член на персонала и го насочва към правилния екран при стартиране.

IfError( If( CustomConnector.APICall() = "Forest", 
             ForestScreen, 
             OceanScreen 
         ), 
         ErrorScreen 
)

Насочва приложението въз основа на извикване на API към едното от тях ForestScreen или OceanScreen. Ако API не успее по някаква причина, ErrorScreen се използва вместо това.

Свойство StudioVersion

Използвайте свойството StudioVersion за показване или регистриране на версията на Power Apps Studio която е използвана за публикуване на приложение. Това може да бъде полезно при отстраняване на грешки и за да се уверите, че приложението ви е публикувано отново със скорошна версия на Power Apps Studio.

StudioVersion се връща като текст. Форматът на текста може да се промени с времето и трябва да се третира като цяло; избягвайте извличането на отделни порции.