Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
Honako hauei aplikatzen zaie: Mihise-aplikazioak
Copilot Studio
Mahaigaineko fluxuak
Ereduetan oinarritutako aplikazioak
Power Platform CLI
Dataverse funtzioak
Power Pages
Balioak kalkulatzen ditu eta ekintzak burutzen ditu erregistroak batean taula.
Deskribapenak
Funtzioak ForAll taula bateko erregistro guztien formula ebaluatzen du. Formulak balio bat kalkulatu eta / edo ekintzak burutu ditzake, hala nola, datuak aldatu edo konexio batekin lan egitea. Erabili With Funtzioa erregistro bakarraren formula ebaluatzeko.
Erabili Sekuentzia funtzioa funtzioarekin ForAll , zenbaketa batean oinarrituta iteratzeko.
Une honetan prozesatzen ari den erregistroko eremuak erabilgarri daude formulan. Beste balio bat erabili nahi baduzu, erabili ThisRecord eragilea edo aipatu eremuak beren izenen arabera. As eragilea erabil daiteke prozesatuko den erregistroari izena jartzeko; horri esker, formula errazagoa izango da eta habiaratutako erregistroak erabilerrazagoak izango dira. Informazio gehiago lortzeko, ikusi beheko adibideak eta erregistro-esparruarekin lan egitea.
Itzuli balioa
Formulen ebaluazio bakoitzaren emaitza taula batean itzultzen da, sarrerako taularen ordena berdinean.
Formularen emaitza balio bakarra bada, lortutako taula zutabe bakarreko taula da. Formularen emaitza erregistroa bada, emaitzen taulak emaitza erregistroaren zutabe berdinak dituzten erregistroak ditu.
Formularen emaitza balio hutsa bada, sarrerako erregistro horren emaitzen taulan ez erregistrorik. Kasu honetan, emaitzen taulan iturburu-taulan baino erregistro gutxiago daude.
Neurriak hartzea
Formulak neurriak hartzen dituzten funtzioak izan ditzake, besteak beste, datu-iturburu baten erregistroak aldatzea Patch eta Collect funtzioak. Formulak konexioei metodoak deitu diezaieke. Erregistro bakoitzeko ekintza anitz egin daitezke ; operadorea. Ezin duzu funtzioaren gaia ForAll den taula aldatu.
Formula idazterakoan, gogoan izan erregistroak edozein ordenetan eta, ahal denean, paraleloan prozesatu daitezkeela. Taularen lehenengo erregistroa azken erregistroaren ondoren prozesatu ahal izango da.
Zaindu zaitez mendekotasunak ordenatzeko. Hori dela eta, ezin dituzu UpdateContext, Clear eta ClearCollect funtzioak erabili funtzio baten ForAll barruan, erraz erabil daitezkeelako efektu hori jasaten duten aldagaiak gordetzeko. Erabil dezakezu Bildu, baina erregistroak gehitzeko ordena zehaztu gabe dago.
Datu iturriak aldatzen dituzten hainbat funtzio, besteak beste Collect, Remove, eta Update, itzuli datu-iturburu aldatuak beren itzulera-balio gisa. Itzulitako balio horiek handiak izan daitezke eta baliabide esanguratsuak kontsumitzen dituzte taulako erregistro ForAll bakoitzean itzultzen badira. Baliteke itzulitako balio horiek ez direla espero duzuna, paraleloan funtziona dezaketelako ForAll eta funtzio horien bigarren mailako efektuak emaitza lortzetik bereiz ditzaketelako. Itzulitako ForAll balioa erabiltzen ez bada, datuak aldatzeko funtzioekin maiz gertatzen den bezala, itzulitako balioa ez da sortuko eta ez baliabide edo ordena arazorik. Baina datu-iturri bat itzultzen duen funtzio baten ForAll emaitza eta bat erabiltzen ari bazara, pentsatu arretaz emaitza nola egituratzen duzun eta probatu lehenik eta behin datu multzo txikietan.
Alternatibak
Power Apps-eko funtzio askok balio bat baino gehiago prozesatu ditzakete aldi berean, zutabe bakarreko taula bat erabiliz. Adibidez, Len funtzioak testu-balioen taula bat prozesatu dezake, luzera ForAll taula bat itzuliz. Horrek kasu askotan erabiltzeko ForAll beharra ezabatu dezake, eraginkorragoa izan daiteke eta errazagoa da irakurtzeko.
Beste kontu bat da ez dela ForAll delegagarria, beste funtzio batzuk izan daitezkeen bitartean, hala nola Iragazkia.
Ordezkaritza
Datu-iturburu batekin erabiltzean, funtzioa ezin da ordezkatu. Datu-iturburuaren lehen zatia soilik berreskuratuko da eta, ondoren, funtzioa aplikatuko da. Baliteke emaitzak istorio osoa ez ordeztea. Abisu bat ager daiteke aginte-garaian muga hori gogorarazteko eta, ahal denean, alternatiba ordezkagarrietara aldatzea iradokitzeko. Informazio gehiago eskuratzeko, ikusi ordezkaritzaren informazio orokorra.
Sintaxia
ForAll(Taula, formula)
- Taula - Beharrezkoa. Burutu beharreko taula.
- Formula - Beharrezkoa. Formula ebaluatzeko erregistro guztiak Taula.
Adibideak
Kalkuluak
Hurrengo adibideek: Koadroakdatu-iturburua:
datu-iturburu hau bilduma gisa sortzeko, ezarri hau OnSelect jabetza baten jabetza Botoia kontrolatu formula honi, ireki Aurrebista modua eta, ondoren, hautatu botoia:
ClearCollect( Squares, [ "1", "4", "9" ] )
| Formula | Deskribapenak | Emaitza |
|---|---|---|
|
ForAll( karratuak, sqrt( balioa ) ) Sqrt (karratuak) |
Sarrerako taulako erregistro guztientzat, erroaren karratu kalkulatzen du Balioa zutabea. Sqrt funtzioa zutabe bakarreko taula batekin ere erabil daiteke, adibide ForAllhau egin ahal izateko . |
|
| ForAll( Karratuak, Potentzia ( Balioa, 3 ) ) | Sarrerako taulako erregistro guztientzat, igo egiten du Balioa zutabea hirugarren indarrera. Potentzia funtzioak ez ditu zutabe bakarreko taulak onartzen. Beraz, ForAll kasu honetan erabili behar da. |
|
Erabili konexioa
Hurrengo adibideek: Adierazpenakdatu-iturburua:
datu-iturburu hau bilduma gisa sortzeko, ezarri hau OnSelect jabetza baten jabetza Botoia kontrolatu formula honi, ireki Aurrebista modua eta, ondoren, hautatu botoia:
ClearCollect( Expressions, [ "Hello", "Good morning", "Thank you", "Goodbye" ] )
Adibide honek a Microsoft itzultzailea konexioa. Konexio hau zure aplikazioan gehitzeko, ikusi nola egin artikulua konexioak kudeatu.
| Formula | Deskribapenak | Emaitza |
|---|---|---|
| ForAll(Adierazpenak, MicrosoftTranslator.Translate(Balioa, "es")) | Adierazpen taulan dauden erregistro guztientzako, itzul itzazu edukiaren edukia Balio zutabea gaztelaniaz ("es" laburtua). |
|
| ForAll(Adierazpenak, MicrosoftTranslator.Translate(Value, "fr")) | Adierazpen taulan dauden erregistro guztientzako, itzul itzazu edukiaren edukia Balio zutabea frantsesez ("fr" laburtua). |
|
Taula bat kopiatzea
Batzuetan, datuak iragazi, moldatu, ordenatu eta manipulatu behar dituzu. Power Apps Horretarako funtzio ugari eskaintzen ditu, esate baterako Filter, AddColumns, eta Sort. Power Apps-ek taula bakoitza balio gisa tratatzen du, formuletan zehar igaro eta erraz kontsumitzeko aukera emanez.
Eta batzuetan emaitza horren kopia bat egin nahi duzu gero erabiltzeko, edo informazioa datu-iturburu batetik bestera eraman nahi duzu. Power Apps eskaintzen du Collect datuak kopiatzeko funtzioa.
Baina kopia hori egin aurretik, ondo pentsatu behar bada. Egoera askori aurre egin diezaiokezu eskaeraren datu-iturburu azpian iragazi eta konformatuz formularekin. Kopia bat egitearen alde negatiboetako batzuk honako hauek dira:
- Informazio bereko bi ale esan nahi du horietako bat sinkronizatuta erori daitekeela.
- Kopia bat egiteak ordenagailuaren memoria, sarearen banda zabalera eta / edo denbora asko kontsumitu ditzake.
- Datu-iturri gehienetan, kopiatzea ezin da delegatu, eta horrek mugitu daitekeen datu kopurua mugatzen du.
Hurrengo adibideek: Produktuakdatu-iturburua:
datu-iturburu hau bilduma gisa sortzeko, ezarri hau OnSelect jabetza baten jabetza Botoia kontrolatu formula honi, ireki Aurrebista modua eta, ondoren, hautatu botoia:
ClearCollect( Products,
Table(
{ Product: "Widget", 'Quantity Requested': 6, 'Quantity Available': 3 },
{ Product: "Gadget", 'Quantity Requested': 10, 'Quantity Available': 20 },
{ Product: "Gizmo", 'Quantity Requested': 4, 'Quantity Available': 11 },
{ Product: "Apparatus", 'Quantity Requested': 7, 'Quantity Available': 6 }
)
)
Gure helburua da eskuragarri dagoena baino gehiago eskatu diren elementuak soilik biltzen dituen taula deribagarriarekin lan egitea eta horretarako eskaera egin behar dugu:
Zeregin hau hainbat modutan egin dezakegu, eta guztiek emaitza berdina sortzen dute, hainbat pro eta kontra.
Mahaiaren eskaera
Ez egin kopia hori! Behar dugun lekuan honako formula hau erabil dezakegu:
// Table shaping on demand, no need for a copy of the result
ShowColumns(
AddColumns(
Filter( Products, 'Quantity Requested' > 'Quantity Available' ),
"Quantity To Order", 'Quantity Requested' - 'Quantity Available'
),
"Product",
"Quantity To Order"
)
erregistro-eremua sortzen du Filter eta AddColumns funtzioak konparaketa eta kenketa eragiketak egiteko, hurrenez hurren "Eskatutako kantitatea" eta 'Kantitatea erabilgarri' erregistro bakoitzaren eremuak.
Adibide honetan, Filter funtzioa delegatu daiteke. Garrantzitsua da, izan ere, irizpideak betetzen dituzten produktu guztiak aurki ditzakegu, nahiz eta milioika taulatik kanpo erregistro batzuk soilik izan. Une honetan, ShowColumns eta AddColumns ezin dira delegatu, beraz, eskatu beharreko produktuen benetako kopurua mugatua da. Emaitza honen tamaina beti nahiko txikia dela badakizu, planteamendu hau ondo.
Eta kopia bat egin ez dugunez, ez informazioaren kopia gehigarririk kudeatzeko edo zaharkitzeko.
ForAll Eskariaren arabera
Beste ikuspegi bat funtzioa ForAll erabiltzea da taula moldatzeko funtzioak ordezkatzeko:
ForAll( Products,
If( 'Quantity Requested' > 'Quantity Available',
{
Product: Product,
'Quantity To Order': 'Quantity Requested' - 'Quantity Available'
}
)
)
Formula hau errazagoa izan daiteke batzuek irakurtzeko eta idazteko.
Zati bat ForAll ere ez da delegagarria. Produktuen taularen lehen zatia bakarrik ebaluatzen da, eta hori arazo bat izan daiteke taula hau handia bada. Delako Iragazi aurreko adibidean delegatu liteke, datu multzo handiekin hobeto funtziona lezake.
Bildu emaitza
Zenbait egoeratan, datuen kopia beharrezkoa izan daiteke. Behar izan dezakezu informazioa mugitzea datu-iturburu bat beste batera. Adibide honetan, aginduak a bidez egiten dira NewOrder saltzaileen sistemako taula. Abiadura handiko erabiltzaileen interakzioetarako, taula baten kopia lokal bat cachean jartzea nahi duzu, zerbitzariaren latentziarik ez izateko.
Aurreko bi adibideen taula bera erabiltzen dugu, baina emaitza bilduma batean jasotzen dugu:
ClearCollect( NewOrder,
ShowColumns(
AddColumns(
Filter( Products, 'Quantity Requested' > 'Quantity Available' ),
"Quantity To Order", 'Quantity Requested' - 'Quantity Available'
),
"Product",
"Quantity To Order"
)
)
ClearCollect( NewOrder,
ForAll( Products,
If( 'Quantity Requested' > 'Quantity Available',
{
Product: Product,
'Quantity To Order': 'Quantity Requested' - 'Quantity Available'
}
)
)
)
ClearCollect eta Collect ezin dira eskuordetu. Ondorioz, modu horretan mugi daitekeen datu kopurua mugatua da.
Barruan bildu ForAll
Azkenik, bilketa zuzenean ForAllegin dezakegu:
Clear( NewOrder );
ForAll( Products,
If( 'Quantity Requested' > 'Quantity Available',
Collect( NewOrder,
{
Product: Product,
'Quantity To Order': 'Quantity Requested' - 'Quantity Available'
}
)
)
)
Berriro ere, ForAll une honetan ezin da funtzioa delegatu. Gure produktuen taula handia bada, ForAll lehenengo erregistroei begiratzen diegu eta eskatu beharreko produktu batzuk galdu ditzakegu. Baina ezagutzen ditugun taulak txikiak izaten jarraitzen dutenentzat, planteamendu hau ona da.
Kontuan izan ez dugula emaitza ForAlljasotzen. Barrutik egindako Collect funtzio deiak erregistro guztietarako NewOrder datu-iturria itzultzen du, eta horrek datu ugari gehitu ditzake harrapatuko bagenu.
Esleitu taula osagai batean
Ikusi Esleitu taulak.