Partekatu honen bidez:


ForAll funtzioa

Hauei aplikatzen zaie: Canvas aplikazioak Mahaigaineko fluxuak Modeloetan oinarritutako aplikazioak Power Pages Power Platform CLI

Balioak kalkulatzen ditu eta ekintzak burutzen ditu erregistroak batean taula.

Deskribapenak

ForAll funtzioak 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 Sequence Funtzioa nirekin ForAll funtzioa kontabilizatu zenbaketa batean oinarrituta.

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, lortzen den taula zutabe-taula bakarra izango da. Formularen emaitza erregistroa bada, emaitzen taulak emaitza erregistroaren zutabe berdinak dituzten erregistroak ditu.

Formularen emaitza hutsik balioa ez dago sarrerako erregistro horren emaitza taulan. Kasu honetan, emaitza taulan erregistro gutxiago egongo dira iturburu-taulan baino.

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 aldatu gaiaren gaia ForAll funtzioa.

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 duzu UpdateContext, Clear, eta ClearCollect funtzioak ForAll efektua eragin dezaketen efektuak erraz erabil daitezkeelako. 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. Itzulketa-balio hauek handiak izan daitezke eta baliabide garrantzitsuak kontsumitzen dituzte erregistro bakoitzeko Guztientzat mahaia. Baliteke itzulera-balio horiek ez direla zuk espero duzuna, izan ere Guztientzat paraleloan funtziona dezake eta funtzio horien bigarren mailako efektuak bereizi ditzake emaitza. Itzultze balioa balioa bada Guztientzat ez da erabiltzen, datuen aldaketa funtzioekin gertatzen den bezala, orduan itzuleraren balioa ez da sortuko eta ez dago baliabide edo aginduen inguruko kezkarik. Baina a-ren emaitza erabiltzen ari bazara ForAll eta datu-iturburu bat itzultzen duen funtzioetako bat, pentsatu emaitza nola egituratzen duzun eta saiatu lehenengo datu multzo txikietan.

Alternatibak

Funtzio asko barne Power Apps Aldi berean balio bat baino gehiago prozesatu dezake zutabe bakarreko taula erabiliz. Adibidez, Len funtzioak testu baloreen taula bat prozesatu dezake, luzera taula bat itzultzen duen moduan ForAll gabe. Horrek erabiltzeko beharra ezabatu dezake ForAll kasu askotan, eraginkorragoa izan daiteke eta errazago irakurtzen da.

Beste gogoeta bat da ForAll ez da delegagarria beste funtzio batzuk egon daitezkeenean, adibidez Filter.

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:

Karratuen adibidea.

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( Squares, Sqrt( Value ) )

Sqrt( Squares )
Sarrerako taulako erregistro guztientzat, erroaren karratu kalkulatzen du Balioa zutabea. Sqrt funtzioa zutabe bakarreko taula batekin ere erabil daiteke, adibide hau ForAll erabili gabe egin ahal izateko. Sqrt-en adibidea.
ForAll( Squares, Power( Value, 3 ) ) Sarrerako taulako erregistro guztientzat, igo egiten du Balioa zutabea hirugarren indarrera. Indarra funtzioak ez ditu zutabe bakarreko taulak onartzen. Hori dela eta, Guztientzat kasu honetan erabili behar da. Boterearen adibidea.

Erabili konexioa

Hurrengo adibideek: Adierazpenakdatu-iturburua:

Adierazpenen adibidea.

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( Balioa, "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 taula bakoitza balio gisa tratatu, formulen bidez isuri eta erraz kontsumitu ahal izateko.

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, pentsatu arretaz 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, kopia ezin da eskuordetu, datuak mugi daitezkeen kopurua mugatuz.

Hurrengo adibideek: Produktuakdatu-iturburua:

datu-iturburu produktuen adibidea.

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:

Taula eratorriaren adibidea.

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. Orain, ShowColumns eta AddColumns ezin da eskuordetu, beraz, eskatu behar diren produktuen kopurua mugatua izango da. Emaitza honen tamaina beti txikia izango dela badakizu, ikuspegi hori ondo dago.

Eta kopiarik egin ez dugunez, ez dago informazioaren kopia gehigarririk kudeatzeko edo zaharkituta egoteko.

ForAll eskatu ahala

Beste ikuspegi bat da ForAll funtzioa mahai-itxurako 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.

Ez dago zatirik ForAll delegagarria da. Lehenengo zatiaren bakarrik Produktuak taula ebaluatuko 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 elkarreraginerako, baliteke taula baten kopia lokal bat cachea izatea, zerbitzariaren latentziarik egon ez dadin.

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 Bildu ezin da eskuordetu. Ondorioz, modu horretan mugi daitekeen datu kopurua mugatua da.

Bildu ForAll barruan

Azkenean, egin dezakegu Collect zuzenean barruan ForAll:

Clear( NewOrder );
ForAll( Products,
    If( 'Quantity Requested' > 'Quantity Available',
        Collect( NewOrder,
            {
                Product: Product,
                'Quantity To Order': 'Quantity Requested' - 'Quantity Available'
            }
        )
    )
)

Berriz ere, ForAll une honetan ezin da delegatu. Gurea bada Produktuak taula handia da, Guztientzat lehen erregistro sorta soilik aztertuko dugu eta beharbada eskatu beharko ditugu zenbait produktu eskatzeko. Baina ezagutzen ditugun taulak txikiak izango dira, ikuspegi hori ondo dago.

Kontuan izan ez dugula emaitza lortzen Guztientzat. Collect Funtzioaren deiak bertatik egingo dira NewOrder datu-iturburu erregistro guztientzako, datu ugari gehitu zitzaketenak harrapatuko bagenitu.

Esleitu taula osagai batean

Ikusi Esleitu taulak.