Жіктелмеген және динамикалық нысандармен жұмыс істеу
Power Apps ішіндегі әрекеттермен жұмыс істегенде, кейбір әрекеттер үшін типтелмеген қайтару мәндерін немесе кіріс мәндерін кездестіруге болады. Бұрын Power Apps типсіз немесе динамикалық енгізу өрістерін елемейтін және олар PowerFX өрнектерінде көрінбейтін еді, бірақ енді осы өрістермен тікелей жұмыс істей аласыз. Бұрын қайтару түрі жазылмаған кезде, Power Apps логикалық мәнді қайтаратын еді. Енді оның орнына жіктелмеген нысан қайтарады.
Ескерім
Сіздің Power Fx өрнектеріңіз осы функциялардың логикалық қайтару мәніне сүйенеді делік. Бұл жағдайда формуланы қайта жазуға және жіктелмеген нысан мәнін логикалық мәнге нақты түрде шығаруға тура келеді. "ЕгерҚате" сияқты белгілі бір функциялар әлі терілмеген нысандарға толық қолдау көрсетпейді. Өрнегіңізде осындай функция болса, уақытша шешімдер үшін осы мақаланың соңындағы ескертуді қараңыз.
Параметрлер ретінде типтелмеген нысандарға өту
Кейбір әрекеттер параметр мәні ретінде жіктелмеген нысан қажет етеді. Егер сізде Power Fx жазба болса, оны әрекетке өтуге қолайлы етіп, жіктелмеген нысан түрлендіруге болады.
Төмендегі мысалда Dataverse Тіркелгі кестесінде қолжетімді біріктіру әрекеті бірнеше терілмеген аргументтерді қажет етеді. Дайындау үшін біз TargetObject, SubordinateObject және UpdateContextObject мәндерін ұстайтын үш айнымалы мәнді анықтаймыз. Мысал бойынша қайта пайдаланылатын айнымалыға Microsoft.Dynamics.CRM.account мәтіндік жолын тағайындаудан бастаймыз.
Set (OdataType, “Microsoft.Dynamics.CRM.account”);
Содан кейін TargetObject атауы, есептік жазба және Power Fx сипаттары бар @odata.type жазба тағайындалады. Біз де сол сияқты Power Fx жазбаларды Subordinate және UpdateContext нысандарына тағайындаймыз.
Set (TargetObject, {name: "Test 2", accountid: "145dc2ba-85a2-ed11-aado-0022482d76a5", '@odata.type': OdataType});
Set (SubordinateObject, {name: FirstRecord.’Account name’, accountid: FirstRecord.Account, ‘@odata.type’ : OdataType });
Set (UpdateContextObject, {telephone1: FirstRecord.’Main Phone’, address1_city: FirstRecord.’Address 1 : City’, ‘@odata.type’ : OdataType });
Әрі қарай, түрлендіруден кейін жазылмаған жазбаларды сақтау үшін тағы үш айнымалы мән жасаймыз: TargetUntypedObject, SubordinateUntypedObject және UpdateContextUntypedObject. Түрлендіруді орындау үшін бастапқы айнымалылардағы ParseJSON(JSON()) функциясын қолданамыз. Бұл әрекет Power Fx жазбаларды терілмеген нысандарға түрлендіреді.
Set (TargetUntypedObject, ParseJSON(JSON(TargetObject)));
Set (SubordinateUntypedObject, ParseJSON(JSON(SubordinateObject)));
Set (UpdateContextUntypedObject, ParseJSON(JSON(UpdateContextObject)));
Соңында, қажетті параметрлерді енгізу арқылы біріктіру әрекетін атаймыз, оның ішінде терілмеген және терілген үшін:
Environment.Merge({Target: TargetUntypedObject, Subordinate: SubordinateUntypedObject, UpdateContent: UpdateContextUntypedObject, PerformParentingChecks: false });
жіктелмеген нысан пайдалану әрекет арқылы қайтарылды
Егер Action негізделген қосқыш нысанды қайтарса, оның сипаттарына түр тағайындалғанына қарамастан тікелей қатынасуға болады. Дегенмен, сипатты Power Apps ішінде белгілі бір мақсатта, мысалы, таңбалау үшін пайдаланғыңыз келсе, алдымен оны трансляциялауыңыз керек.
Келесі мысалда httpRequest функциясы бұрын логикалық мән ретінде шығарылған жіктелмеген нысан қайтарады.
Set (response, Office365Groups.HttpRequest("/v1.0/me", "GET", ""));
жауап ішіндегі сипаттардың бірі - displayName. Оған келесідей Power Fx өрнекпен кіруге және трансляциялауға болады:
Text(response.displayName)
Мәтін оны Power Apps белгі басқаруында пайдалану үшін нысанға трансляциялаңыз.
Динамикалық өрістермен жұмыс
Әрекет жауаптары енді динамикалық нәтижені түсіреді және осы сипаттарға қол жеткізу үшін жоғарыда сипатталған әдісті пайдалана аласыз. Сонымен қатар, динамикалық енгізу өрістерімен жұмыс істеу де мүмкін.
Динамикалық кіріс негізгі параметрі бар Microsoft Teams ішіндегі "GetMessageDetails" әрекетін қарастырыңыз. Бұрын бұл параметрді қарау немесе көрсету мүмкін емес еді. Соңғы жаңартумен сәйкес Power Fx жазба құрылымы бар "дене" деп аталатын айнымалы мәнді орнатуға болады.
Set ( body, ParseJSON(JSON( {recipient: { groupID: “7f733b36-7c7f-4f4c-9699-0a7b7a2b3897”, channelID: “19: 085d522328fb4a439220641006f7f25@thread.tacv2”}}));
Содан кейін GetMessageDetails әрекетін шақырып, teamsResponse айнымалысына жауап тағайындай аламыз.
Set (teamsResponse, MicrosoftTeams.GetMessageDetails ( 1661365068558, “channel”, body ));
Бұрын логикалық мәнін қайтаратын типтелмеген нысандарды қайтаратын формулаларды түрлендіру.
Power Fx типтелмеген нысандардың шектеулі санын қабылдайды, сондықтан формулаңызға нақты түрлендіру қажет болуы мүмкін. Атап айтқанда, формулаңыз логикалық жауап түріне тәуелді болса, түрлендіру қажет болады. Қатенің бар-жоғын білу қажет болса, IsError функциясын пайдалануға болады:
If(
IsError(Office365Outlook.CalendarDeleteItemV2("Calendar", 1)),
Notify("An Outlook appointment could not be found or could not be deleted")
)
IfError арқылы ғана қолжетімді қате туралы ақпаратқа қол жеткізу үшін жіктелмеген нысан файлын логикалық, мәтін немесе мән сияқты түрлендіру функциясын пайдаланып жарамды түрге түрлендіру керек. Бұл функциялар берілген болса, қате шығарады. Келесі мысал мұны көрсетеді:
With({result: Office365Outlook.CalendarDeleteItemV2("Calendar", 1)},
If( IsError(result),
IfError(
Boolean(result), // any conversion function would do, such as Text, Value, …
Notify("An Outlook appointment could not be found or could not be deleted: " & FirstError.Message)
) ) )