Ustvarjanje ali posodobitev množičnih zapisov v storitvi Power Apps

Posodabljanje ali ustvarjanje zapisov v velikem obsegu vam omogoča, da delate na več zapisih hkrati. Tu je nekaj scenarijev, v katerih bi želeli množično posodobiti zapise:

  • Imate veliko fotografij in jih želite naložiti naenkrat.
  • Naenkrat želite oddati časovni list s tedenskimi podatki.

Morda boste tudi želeli množično ustvariti nove zapise. Če mora na primer vaša aplikacija izbrati veliko slik, jih boste morda želeli naložiti vse hkrati.

V tem članku je razloženo, kako množično posodobiti ali ustvariti zapise, odvisno od vašega scenarija.

Formule za množično posodabljanje zapisov

Formule v tem razdelku lahko uporabite za množično posodabljanje zapisov v aplikacijah s platnom.

  • Funkcija Patch() – to funkcijo uporabite, kadar se zbirka ujema z virom podatkov.

    Patch( DataSource, Collection )
    
  • Funkcija ForAll() + ugnezden popravek + operater za pojasnitev dvoma – uporabite to funkcijo, kadar imajo viri podatkov različne stolpce, ki jih morate združiti.

    ForAll( Collection,
        Patch( DataSource, 
            LookUp( DataSource, Id = Collection[@Id] ),
            { Column: Value }
        )
    )
    
  • Funkcija AddColumns() – to funkcijo lahko uporabite za zagotavljanje reference za iskanje v zbirki, ki vsebuje posodobitve DataSource, če nima polj, ki se zlahka sklicujejo na tabelo.

Za celoten seznam formul za posodobitev množičnih zapisov prenesite povezane datoteke.

Primer kontrolnega seznama

Ta primer uporablja kontrolni seznam opravil. Ko končate z nekaj opravili, jih lahko označite kot dokončane. Ta scenarij lahko razširite na kontrolni seznam za zagon izdelka, kontrolni seznam za pregled doma ali na druge sezname.

Naslednji posnetek zaslona prikazuje elemente kontrolnega seznama v datoteki Microsoft Excel. V tem primeru lahko označite opravila, povezana z vašim spletnim dnevnikom ali objavami v družabnih omrežjih. Tabela v Excelu se imenuje ChecklistItems. Tukaj je primer v Excelu.

Primer uporablja zbirke za predstavitev tega vedenja. Pristop deluje za kateri koli zaledni sistem v obliki tabele po vaši izbiri.

Nadomestno besedilo.

Podatki programa Excel se v aplikacijo uvozijo kot statični podatki. Pri lastnosti App.OnStart izberite možnost Collect() za podatke Excel ChecklistItems v zbirki ChecklistItemsSource. Zbirka ChecklistItemsSource se bo uporabljalo kot izvirni podatki v aplikaciji.

Ta primer uporablja aplikacijo z dvema zaslonoma:

  • Zaslon 1 – uporablja se za pregled elementov kontrolnega seznama in njihovo označevanje kot dokončane.
  • Zaslon 2– uporablja se za ustvarjanje novega elementa kontrolnega seznama. Nov element bo dodan v zbirko ChecklistItemsSource.

Zaslon 1. Zaslon 2

Vsakič ko preverite element kontrolnega seznama, se doda v zbirko z imenom CheckedItems. Uporablja spodnjo formulo pri lastnosti dogodka OnCheck za kontrolnik potrditvenega polja. Če je element že preverjen in je del zbirke, se ga odstrani. V nasprotnem primeru se doda potrjeni element.

Stanje lahko preklapljate med možnostma Končano in V teku ali pa uporabite dogodka Oncheck in OnUncheck:

If( !IsBlank( 
        LookUp( CheckedItems, Id = ThisItem.Id )
    ),
    Remove( CheckedItems, ThisItem ),
    Collect( CheckedItems, ThisItem )
)

Ustvarjanje več zapisov hkrati

Obstajajo različni načini množičnega posodabljanja zapisov, odvisno od scenarija. V tem razdelku je razloženo, kako v aplikacijah s platnom ustvariti več zapisov hkrati.

Ko uporabnik izbere Končano v zgornjem primeru, morate posodobiti ChecklistItemsSource s spremembami iz zbirke CheckedItems.

Za stolpce z istim imenom

Če imata izvor in cilj enaka imena stolpcev, lahko uporabite izjavo za popravek. Na primer, zbirki ChecklistItemsSource in CheckedItems imata enaki imeni stolpcev. S spodnjo formulo lahko hkrati posodobite vir z vsemi spremembami.

Patch( ChecklistItemsSource, CheckedItems )

Za stolpce z različnimi imeni

Če se stolpci v izvorni in ciljni tabeli razlikujejo, raje uporabite ForAll s popravkom.

Z možnostjo ForAll() se morate skozi posamezen zapis z uporabo pogoja. Pogoj je primerjava med podobnimi stolpci (na primer stolpec Id) različnih tabel. Ta primerjava se zaplete, če imata izvorna in ciljna tabela enaka imena stolpcev (na primer če je ProjectId bil stolpec tako v tabeli Project kot PurchaseOrder).

Alternative:

Uporaba z operaterjem za pojasnitev dvoma

Če želite posodobiti Status za CheckedItems na »Končano«, ko sta imeni stolpcev izvorne in ciljne tabele enaki, uporabite to formulo:

ForAll( CheckedItems,
    Patch( ChecklistItemsSource, 
        LookUp( ChecklistItemsSource, Id = CheckedItems[@Id] ),
        { Status: "Done" }
    )
)

Za vsak element v zbirki CheckedItems se ID (ki ga predstavlja operater za pojasnitev dvoma CheckedItems[@Id]) primerja s stolpcem ID v zbirki ChecklistItemsSource. Nato se vsak ujemajoč se zapis posodobi s statusom »Končano«. Operator za pojasnitev dvoma se uporablja, kadar imata dva stolpca, ki pripadata različnim tabelam, isto ime. Če ne uporabite operatorja za pojasnitev dvoma, boste videli, da se posodobi samo prvi zapis.

Če za shranjevanje potrjenih elementov ne želite uporabiti dodatne zbirke, lahko poskusite z naslednjimi koraki:

  1. Ustvarite dodatno oznako v predlogi galerije.

    1. Vežite to na stolpec ID.
    2. Oznako preimenujte v IdText.
  2. Odstranite kodo pri OnCheck pri kontrolniku potrditvenega polja, omenjeno zgoraj.

  3. Za dogodek OnSelect gumba Končano napišite naslednjo formulo:

    ForAll(
        Filter( ChecklistGallery.AllItems,
          StatusCheckbox.Value = true
        ),
        Patch( ChecklistItemsSource,
          LookUp( ChecklistItemsSource, Id = IdText.Text ),
          { Status: "Done" }
        )
    )
    

Tu neposredno uporabljate filter na elementih galerije, da najdete potrjene elemente. Za vsak zapis v filtriranih elementih najdete ujemanje v tabeli ChecklistItemsSource s primerjavo možnosti ID z vrednostjo, shranjeno v oznaki IdText.

Stanje je posodobljeno na »Končano«.

Operaterja za pojasnitev dvoma ni mogoče uporabiti za elemente galerije. Namesto tega lahko oznako shranite v galerijo in se sklicujete nanjo za primerjavo.

Uporaba alternativne možnosti za ustvarjanje novega stolpca z drugo oznako

Ta metoda je alternativa uporabi operatorja za pojasnitev dvoma ali oznake znotraj galerije.

Medtem ko ustvarjate lokalno kopijo vira podatkov, lahko uporabite formulo AddColumns() za ustvarjanje novega stolpca z drugo oznako (NewId) za stolpec ID v izvorni zbirki. Ko uporabljate ForAll s popravkom, primerjate stolpec NewId s stolpcem ID v izvornih podatkih.

Množično ustvarjanje zapisov

Morda boste želeli množično ustvariti nove zapise, če želite na primer naložiti več slik hkrati.

Tu je primer, kjer se uporablja primer kontrolnega seznama.

Na zaslonu za ustvarjanje elementov kontrolnega seznama, vsakič ko izberete Dodaj, so podatki shranjeni v zbirki NewChecklistItems. Ko izberete Pošlji, se možnost ForAll() s Patch() uporablja za posodobitev izvorne zbirke.

ForAll( NewChecklistItems,
    Patch( ChecklistItemsSource,
        Defaults( ChecklistItemsSource ),{
            Id: Id,
            Category: Category,
            Description: Description,
            Status:Status
        }
    )
)

Za vsak element pri možnosti NewChecklistItems se ustvari nov zapis (označen z Defaults(ChecklistItemsSource)) v zbirki ChecklistItemsSource. Id je nastavljen na Id iz zbirke NewChecklistItems. Podobno so nastavljene vrednosti Category, Description in Status.

Glejte tudi