Princípy zdrojov údajov pre plátnové aplikácie v službe PowerAppsUnderstand data sources for canvas apps in PowerApps

Väčšina plátnových aplikácií v službe PowerApps používa externé informácie nazývané zdroje údajov, ktoré sú uložené v cloudových službách.In PowerApps, most canvas apps use external information stored in cloud services called Data Sources. Bežným príkladom je tabuľka v súbore programu Excel, ktorý je uložený v službe OneDrive for Business.A common example is a table in an Excel file stored in OneDrive for Business. Aplikácie majú k týmto zdrojom údajom prístup prostredníctvom Pripojení.Apps access these data sources by using Connections.

Tento článok sa venuje rôznym typom zdrojov údajov a spôsobu práce s tabuľkovými zdrojmi údajov.This article discusses the different kinds of data sources and how to work with table data sources.

Vytvorenie aplikácie, ktorá v zdroji údajov vykonáva základné čítanie a zapisovanie, je jednoduché.It's easy to create an app that does basic reading and writing to a data source. Niekedy ale chcete mať väčšiu kontrolu nad tokom údajom do aplikácie a z aplikácie.But sometimes you want more control over how data flows in and out of your app. Tento článok popisuje, ako väčšiu kontrolu zaisťujú funkcie Patch, DataSourceInfo, Validate a Errors.This article describes how the Patch, DataSourceInfo, Validate, and Errors functions provide more control.

Druhy zdrojov údajovKinds of data sources

Zdroje údajov môžu byť pripojené k nejakej cloudovej službe alebo môžu byť voči aplikácii lokálne.Data sources can be connected to a cloud service, or they can be local to an app.

Pripojené zdroje údajovConnected data sources

Najbežnejším zdrojom údajov sú tabuľky, ktoré môžete používať na získavanie a ukladanie informácií.The most common data sources are tables, which you can use to retrieve and store information. Pripojenia k zdrojom údajov môžete používať na čítanie a zapisovanie údajov v zošitoch programu Microsoft Excel, zoznamoch služby SharePoint, tabuľkách SQL a mnohých ďalších formátoch, ktoré sa dajú ukladať v cloudových službách, ako napríklad OneDrive for Business, DropBox a SQL Server.You can use connections to data sources to read and write data in Microsoft Excel workbooks, SharePoint lists, SQL tables, and many other formats, which can be stored in cloud services such as OneDrive for Business, DropBox, and SQL Server.

Medzi iné ako tabuľkové zdroje údajov patria e-mail, kalendáre, Twitter a oznámenia. Tento článok sa však týmto iným zdrojom údajov nevenuje.Data sources other than tables include email, calendars, Twitter, and notifications, but this article doesn't discuss these other kinds of data sources.

Lokálne zdroje údajovLocal data sources

Pomocou ovládacích prvkov Galéria, Formulár na zobrazenie a Formulár na úpravy je jednoduché vytvoriť aplikáciu, ktorá číta a zapisuje údaje zo zdroja údajov.Using the Gallery, Display form, and Edit form controls, it is easy to create an app that reads and writes data from a data source. Začnite tým, že si prečítate článok Princípy údajových formulárov.To get started, read the article Understand data forms.

Tieto ovládacie prvky sa použijú, keď službu PowerApps požiadate o vytvorenie aplikácie z údajov.When you ask PowerApps to create an app from data, these controls are used. Na ukladanie a manipuláciu s údajmi, ktoré pochádzajú zo zdroja údajov, používa táto aplikácia „pod kapotou“ internú tabuľku.Behind the scenes, the app uses an internal table to store and manipulate the data that comes from the data source.

Špeciálnym druhom zdroja údajov je kolekcia, ktorá je voči aplikácii lokálna a nezávisí od pripojenia k nejakej službe v cloude, takže sa tieto informácie nedajú zdieľať medzi zariadeniami rovnakého používateľa alebo medzi používateľmi.A special kind of data source is the Collection, which is local to the app and not backed by a connection to a service in the cloud, so the information can not be shared across devices for the same user or between users. Kolekcie sa načítavajú a ukladajú lokálne.Collections can be loaded and saved locally.

Druhy tabuliekKinds of tables

Tabuľky, ktoré sú voči aplikácii PowerApps interné, sú pevné hodnoty, podobne ako je hodnotou číslo alebo reťazec.Tables that are internal to a PowerApps app are fixed values, just as a number or a string is a value. Interné tabuľky nie sú nikde uložené a existujú iba v pamäti aplikácie.Internal tables aren't stored anywhere, they just exist in your app's memory. Štruktúru a údaje tabuľky nemôžete upravovať priamo.You can't directly modify the structure and data of a table. Namiesto toho môžete prostredníctvom vzorca vytvoriť novú tabuľku: pomocou tohto vzorca vytvoríte upravenú kópiu pôvodnej tabuľky.What you can do instead is to create a new table through a formula: you use that formula to make a modified copy of the original table.

Externé tabuľky sú uložené v zdroji údajov na neskoršie načítanie a zdieľanie.External tables are stored in a data source for later retrieval and sharing. Služba PowerApps poskytuje „pripojenie“ na čítanie a zapisovanie uložených údajov.PowerApps provides "connections" to read and write stored data. V rámci určitého pripojenia môžete mať prístup k niekoľkým tabuľkám s informáciami.Within a connection, you can access multiple tables of information. Keď vyberiete, ktoré tabuľky sa majú v aplikácii používať, stane sa z každej z nich samostatný zdroj údajov.You'll select which tables to use in your app, and each will become a separate data source.

Ďalšie podrobnosti o interných tabuľkách nájdete v téme venovanej práci s tabuľkami, ktoré tiež platia pre externé tabuľky uložené v nejakej cloudovej službe.To learn more, Working with tables goes into more detail about internal tables, but it is also applicable to external tables residing in a cloud service.

Práca s tabuľkamiWorking with tables

Tabuľkové zdroje údajov môžete používať rovnako ako internú tabuľku služby PowerApps.You can use table data sources the same way that you use an internal PowerApps table. Každý zdroj údajov obsahuje (podobne ako interná tabuľka) záznamy, stĺpce a vlastnosti, ktoré sa používajú vo vzorcoch.Just like an internal table, each data source has records, columns, and properties that you can use in formulas. Ďalej musia byť splnené všetky tieto podmienky:In addition:

  • Zdroj údajov má rovnaké názvy stĺpcov a údajové typy ako podkladová tabuľka v pripojení.The data source has the same column names and data types as the underlying table in the connection.

    Poznámka

    V prípade sharepointových a excelových zdrojov údajov obsahujúcich názvy stĺpcov s medzerami nahradí služba PowerApps tieto medzery za „_x0020_“.For SharePoint and Excel data sources that contain column names with spaces, PowerApps will replace the spaces with "_x0020_". Napríklad Názov stĺpca v Exceli alebo SharePointe sa v službe PowerApps zobrazí ako Názov_x0020_stĺpca v prípade, že sa vyskytuje v rozložení údajov alebo používa vo vzorci.For example, "Column Name" in SharePoint or Excel will appear as "Column_x0020_Name" in PowerApps when displayed in the data layout or used in a formula.

  • Zdroj údajov sa načíta zo služby automaticky pri načítaní aplikácie.The data source is loaded from the service automatically when the app is loaded. Pomocou funkcie Refresh môžete vynútiť aktualizáciu údajov.You can force the data to refresh by using the Refresh function.

  • Používatelia môžu pri práci v aplikácii vytvárať, meniť a odstraňovať záznamy a odosielať tieto zmeny späť do podkladovej tabuľky v službe.As users run an app, they can create, modify, and delete records and push those changes back to the underlying table in the service.

    • Záznamy sa dajú vytvárať pomocou funkcií Patch a Collect.Records can be created with the Patch and Collect functions.
    • Záznamy sa dajú upravovať pomocou funkcií Patch, Update, a UpdateIf.Records can be modified with the Patch, Update, and UpdateIf functions.
    • Záznamy sa dajú odstraňovať pomocou funkcií Remove a RemoveIf.Records can be removed with the Remove and RemoveIf functions.
    • Chyby, ku ktorým dôjde pri práci so zdrojom údajov, sú dostupné prostredníctvom funkcie Errors.Errors when working with a data source are available through the Errors function.
  • Funkcie DataSourceInfo, Defaults a Validate poskytujú informácie o zdroji údajov, s pomocou ktorých môžete optimalizovať používateľské prostredie.The DataSourceInfo, Defaults, and Validate functions provide information about the data source that you can use to optimize the user experience.

Vytváranie zdrojov údajovCreating data sources

Služba PowerApps sa nedá použiť na vytvorenie pripojeného zdroja údajov ani na úpravu jeho štruktúry; zdroj údajov už musí existovať v nejakej službe.PowerApps can't be used to create a connected data source, or modify its structure; the data source must already exist in a service somewhere. Ak chcete napríklad vytvoriť tabuľku v excelovom zošite uloženom na disku OneDrive, musíte najprv v Exceli Online vytvoriť na disku OneDrive zošit.For example, to create a table in an Excel workbook stored on OneDrive, you first use Excel Online on OneDrive to create a workbook. Potom k nemu môžete z vašej aplikácie vytvoriť pripojenie.Next you create a connection to it from your app.

Zdroje údajov v podobe kolekcie je možné vytvoriť a upraviť v aplikácii, sú však iba dočasné.However, collection data sources can be created and modified inside an app, but are only temporary.

Zobrazenie jedného alebo viacerých záznamovDisplay one or more records

Diagram vyššie znázorňuje tok informácií, keď aplikácia číta tieto informácie v nejakom zdroji údajov: The diagram above shows the flow of information when an app reads the information in a data source:

  • Informácie sa ukladajú a zdieľajú prostredníctvom služby úložiska (v tomto prípade je to zoznam služby SharePoint na lokalite Office 365).The information is stored and shared through a storage service (in this case, a SharePoint list of an Office 365 site).
  • Pripojenie sprístupňuje tieto informácie aplikácii.A connection makes this information available to the app. Toto pripojenie zaisťuje overenie používateľa pri prístupe k informáciám.The connection takes care of authentication of the user to access the information.
  • Pri spustení aplikácie alebo použití funkcie Refresh sa informácie prenesú z pripojenia do zdroja údajov v aplikácii na lokálne použitie.When the app is started or the Refresh function is pressed, information is drawn from the connection into a data source in the app for local use.
  • Vzorce slúžia na čítanie informácií a ich sprístupnenie v ovládacích prvkoch, ktoré vidí používateľ.Formulas are used to read the information and expose it in controls that the user can see. Záznamy zdroja údajov zobrazíte tak, že na niektorej obrazovke použijete galériu a jej vlastnosť Items previažete zo zdrojom údajov: Gallery.Items = DataSource.You can display the records of a data source by using a gallery on a screen and wiring the Items property to the data source: Gallery.Items = DataSource. Ovládacie prvky v galérii previažete s galériou pomocou ich vlastnosti Default.You wire controls within the gallery, to the gallery, using the controls' Default property.
  • Zdroj údajov je tiež tabuľka.The data source is also a table. Než zdroj údajov použijete ako celok, môžete ho pomocou funkcií Filter, Sort, AddColumns a ďalších spresniť a rozšíriť.So you can use Filter, Sort, AddColumns, and other functions to refine and augment the data source before using it as a whole. Na prácu s jednotlivými záznamami môžete použiť tiež funkcie Lookup, First, Last a ďalšie.You can also use the Lookup, First, Last, and other functions to work with individual records.

Úprava záznamuModify a record

V predchádzajúcej časti ste zistili, ako sa zdroj údajov číta.In the prededing section, you saw how to read a data source. Všimnite si, že šípky v diagrame uvedenom vyššie sú jednosmerné.Note that the arrows in the diagram above are one way. Zmeny, ktoré vykonáte v zdroji údajov, sa neprenášajú späť prostredníctvom rovnakých vzorcov, ktorými sa údaje načítali.Changes to a data source aren't pushed back through the same formulas in which the data was retrieved. Namiesto toho sa používajú nové vzorce.Instead, new formulas are used. Často sa na úpravu záznamu používa iná obrazovka ako na prehľadávanie záznamov, obzvlášť v mobilnom zariadení.Often a different screen is used for editing a record than for browsing records, especially on a mobile device.

Na to, aby ste mohli upraviť existujúci záznam nejakého zdroja údajov, musí tento záznam pôvodne pochádzať z tohto zdroja údajov.Note that, to modify an existing record of a data source, the record must have originally come from the data source. Záznam sa môže preniesť cez galériu, kontextovú premennú a ľubovoľný počet vzorcov, ale jeho pôvod by sa mal dať spätne vystopovať až k zdroju údajov.The record may have traveled through a gallery, a context variable, and any number of formulas, but its origin should be traceable back to the data source. To je dôležité, pretože spolu so záznamom sa prenášajú ďalšie informácie, ktoré ho jednoznačne identifikujú a zaisťujú, že upravujete správny záznam.This is important because additional information travels with the record that uniquely identifies it, ensuring that you modify the correct record.

Diagram vyššie znázorňuje tok informácií pri aktualizácii zdroja údajov: The diagram above shows the flow of information to update a data source:

  • Ovládací prvok Formulár na úpravy funguje ako kontajner pre vstupné karty, ktoré obsahujú ovládacie prvky pre zadania používateľa, ako je vstup textu alebo jazdec.An Edit form control provides a container for input cards, which are made up of user input controls such as a text-input control or a slider. Na identifikáciu záznamu, ktorý sa má upraviť, slúžia vlastnosti DataSource a Item.The DataSource and Item properties are used to identify the record to edit.
  • Každá vstupná karta má vlastnosť Default, ktorá je obvykle nastavená na pole záznamu ThisItem formulára.Each input card has a Default property, which is usually set to the field of the form's ThisItem record. Ovládacie prvky na vstupnej karte potom preberajú svoje vstupné hodnoty z vlastnosti Default.The controls within the input card will then take their input values from Default. Za normálnych okolností toto nastavenie nemusíte meniť.Normally you do not need to modify this.
  • Každá vstupná karta sprístupňuje vlastnosť Update.Each input card exposes an Update property. Táto vlastnosť mapuje zadanie používateľa na konkrétne pole záznamu na účely spätného zapisovania do zdroja údajov.This property maps the user's input to a specific field of the record for writing back to the data source. Za normálnych okolností toto nastavenie nemusíte meniť.Normally you do not need to modify this.
  • Ovládací prvok tlačidla alebo obrázka na obrazovke umožňuje používateľovi uložiť zmeny do záznamu.A button or an image control on the screen enables the user to save changes to the record. Vzorec OnSelect tohto ovládacieho prvku volá na tento účel funkciu SubmitForm.The OnSelect formula of the control calls the SubmitForm function to do this work. Funkcia SubmitForm prečíta všetky vlastnosti Update týchto kariet a použije ich na spätné zapisovanie do zdroja údajov.SubmitForm reads all the Update properties of the cards and uses this to write back to the data source.
  • Niekedy môžu nastať problémy.Sometimes there will be issues. Môže prestať fungovať sieťové pripojenie alebo overovaciu kontrolu vykonáva služba, o ktorej aplikácia nevie.A network connection may be down, or a validation check is made by the service that the app didn't know about. Tieto informácie sú sprístupnené vlastnosťami Error a ErrorKind formulára, takže ich môžete zobraziť používateľovi.The Error and ErrorKind properties of the form control makes this information available, so you can display it to the user.

Na odstupňovanie kontroly nad týmto procesom môžete použiť tiež funkcie Patch a Errors.For more fine grained control over the process, you can also use the Patch and Errors function. Ovládací prvok Formulár na úpravy sprístupňuje vlastnosť Updates, aby ste mohli prečítať hodnoty polí vo formulári.The Edit form control exposes an Updates property so that you can read the values of the fields within the form. Pomocou tejto vlastnosti môžete tiež pri pripojení zavolať vlastný konektor a úplne tak obísť funkcie Patch a SubmitForm.You can also use this property to call a custom connector on a connection, completely bypassing the Patch and SubmitForm functions.

OverenieValidation

Pred vykonaním zmeny záznamu by aplikácia mala všetkými možnými spôsobmi zaistiť, aby bola táto zmena akceptovateľná.Before making a change to a record, the app should do what it can to make sure the change will be acceptable. Má to dva dôvody:There are two reasons for this:

  • Okamžitá spätná väzba používateľovi.Immediate feedback to the user. Chybu je najlepšie opraviť ihneď, keď nastane, dokým ju má používateľ v pamäti.The best time to fix a problem is right when it happens, when it is fresh in the user's mind. Pri každom dotyku alebo stlačení klávesa sa môže objaviť červený text, ktorý označuje problém v zadaní.Literally with each touch or keystroke, red text can appear that identifies an issue with their entry.
  • Menší sieťový prenos údajov a kratšia latencia používateľa.Less network traffic and less user latency. Väčší počet problémov zistených v aplikácii znamená menšiu komunikáciu cez sieť z dôvodu zistenia a riešenia problémov.More issues detected in the app means fewer conversations over the network to detect and resolve issues. Každá komunikácia zaberie čas, počas ktorého musí používateľ čakať, než môže pokračovať.Each conversation takes time during which the user must wait before they can move on.

Služba PowerApps ponúka na overenie dva nástroje:PowerApps offers two tools for validation:

  • Zdroj údajov môže poskytovať informácie o tom, čo je a čo nie je platné.The data source can provide information about what is and isn't valid. Čísla môžu mať napríklad minimálne a maximálne hodnoty a niektoré položky môžu byť povinné.For example, numbers can have minimum and maximum values, and one or more entries can be required. K týmto informáciám sa dostanete pomocou funkcie DataSourceInfo.You can access this information with the DataSourceInfo function.
  • Funkcia Validate používa rovnaké informácie na kontrolu hodnoty v jednom stĺpci alebo v celom zázname.The Validate function uses this same information to check the value of a single column or of an entire record.

Spracovanie chýbError handling

Skvelé, záznam ste overili.Great, you've validated your record. Nastal čas ho aktualizovať pomocou funkcie Patch.Time to update that record with Patch!

Lenže problémom nemusí byť koniec.But, alas, there may still be a problem. Sieť prestala fungovať, overenie v službe zlyhalo alebo používateľ nemá tie správne povolenia – to je iba niekoľko z možných chýb, na ktoré môže vaša aplikácia naraziť.The network is down, validation at the service failed, or the user doesn't have the right permissions, just to name a few of the possible errors your app may encounter. Musí správne reagovať na chybové situácie a poskytnúť používateľovi spätnú väzbu a prostriedky, ako chybu napraviť.It needs to respond appropriately to error situations, providing feedback to the user and a means for them to make it right.

Keď dôjde k chybe so zdrojom údajov, aplikácia automaticky zaznamená informácie o tejto chybe a sprístupni ich prostredníctvom funkcie Errors.When errors occur with a data source, your app automatically records the error information and makes it available through the Errors function. Chyby sú pridružené k záznamom, v prípade ktorých nastali problémy.Errors are associated with the records that had the problems. Ak ide o niečo, čo môže používateľ opraviť (napríklad o problém s overením), môže záznam znova odoslať a chyby tým vymazať.If the problem is something the user can fix, such as a validation problem, they can resubmit the record, and the errors will be cleared.

Ak chyba nastane pri vytváraní záznamu pomocou funkcie Patch alebo Collect, neexistuje žiadny záznam, ku ktorému sa majú chyby pridružiť.If an error occurs when a record is created with Patch or Collect, there is no record to associate any errors with. V takom prípade vráti funkcia Patch prázdnu hodnotu, ktorá sa dá použiť ako druhý argument funkcie Errors.In this case, blank will be returned by Patch and can be used as the record argument to Errors. Chyby pri vytváraní sa mažú pomocou ďalšej operácie.Creation errors are cleared with the next operation.

Funkcia Errors vracia tabuľku s informáciami o chybe.The Errors function returns a table of error information. Môžu medzi ne patriť informácie o stĺpci, ak sa dá chyba prisúdiť konkrétnemu stĺpcu.This information can include the column information, if the error can be attributed to a particular column. Chybové správy na úrovni stĺpca používajte v prípade ovládacích prvkov označení, ktoré sú v blízkosti miesta, kde sa na obrazovke na úpravy tento stĺpec nachádza.Use column-level error messages in label controls that are close to where the column is located on the edit screen. Chybové správy na úrovni záznamu používajte, keď je pole Column v tabuľke chýb prázdne, a to v blízkosti tlačidla Uložiť pre celý formulár.Use record-level error messages where the Column in the error table is blank, in a location close to the Save button for the entire record.

Práca s rozsiahlymi zdrojmi údajovWorking with large data sources

Pri vytváraní správ z rozsiahlych zdrojov údajov (možno milióny záznamov) chcete minimalizovať sieťový prenos údajov.When you are creating reports from large data sources (perhaps millions of records), you want to minimize network traffic. Povedzme, že chcete vytvoriť správu so všetkými zákazníkmi v New Yorku, ktorých StatusCode má hodnotu Platinum.Let's say you want to report on all Customers having a StatusCode of "Platinum" in New York City. Tabuľka Customers pritom obsahuje milióny záznamov.And that your Customers table contains millions of records.

Nechcete načítať tieto milióny zákazníkov do svojej aplikácie a potom vybrať tie, ktoré potrebujete.You do not want to bring those millions of Customers into your app, and then choose the ones you want. Chcete, aby k tomuto výberu došlo v cloudovej službe, kde je táto tabuľka uložená, a cez sieť sa odoslali iba zvolené záznamy.What you want is to have that choosing happen inside the cloud service where your table is stored, and only send the chosen records over the network.

Väčšinu funkcií, ktoré môžete použiť na výber záznamov (ale nie všetky), je možné delegovať, čo znamená, že sa spúšťajú v cloudovej službe.Many, but not all, functions that you can use to choose records can be delegated, which means that they are run inside the cloud service. Ak chcete zistiť, ako na to, prečítajte si tému venovanú delegovaniu.You can learn how to do this by reading about Delegation.

KolekcieCollections

Kolekcie sú špeciálnym druhom zdroja údajov.Collections are a special kind of data source. Sú voči aplikácii lokálne a nezávisia od pripojenia k nejakej službe v cloude, takže sa informácie nedajú zdieľať medzi zariadeniami rovnakého používateľa ani medzi používateľmi.They're local to the app and not backed by a connection to a service in the cloud, so the information can not be shared across devices for the same user or between users. Až na niekoľko výnimiek fungujú podobne ako akýkoľvek iný zdroj údajov:They operate like any other data source, with a few exceptions:

  • Kolekcie sa dajú vytvárať dynamicky pomocou funkcie Collect.Collections can be created dynamically with the Collect function. Nemusia byť zriadené predtým ako zdroje údajov založené na pripojení.They don't need to be established ahead of time, as connection-based data sources do.
  • Stĺpce kolekcie je možné kedykoľvek upraviť pomocou funkcie Collect.The columns of a collection can be modified at any time using the Collect function.
  • Kolekcie povoľujú duplicitné záznamy.Collections allow duplicate records. V kolekcii môže existovať viac ako jedna kópia rovnakého záznamu.More than one copy of the same record can exist in a collection. Funkcie ako Remove vykonajú operáciu s prvým nájdeným záznamom, ak nie je zadaný argument All.Functions such as Remove will operate on the first match they find, unless the All argument is supplied.
  • Pomocou funkcií SaveData a LoadData môžete kópiu kolekcie uložiť a znova načítať.You can use the SaveData and LoadData functions to save and reload a copy of the collection. Informácie sú uložené v súkromnom umiestnení, ku ktorému nemajú prístup iní používatelia, aplikácie ani zariadenia.The information is stored in a private location that other users, apps, or devices can't access.
  • Pomocou ovládacích prvkov Export a Import môžete uložiť a znova načítať kópiu kolekcie do súboru, s ktorým môže používateľ pracovať.You can use the Export and Import controls to save and reload a copy of the collection to a file that the user can interact with.

Ďalšie informácie o tom, ako pracovať s kolekciou ako zdrojom údajov, nájdete v téme venovanej vytvoreniu a aktualizácii kolekcie.For more information on working with a collection as a data source, see create and update a collection.

Kolekcie sa často používajú na uchovanie globálneho stavu aplikácie.Collections are commonly used to hold global state for the app. Možnosti dostupné na správu stavu nájdete v téme o práci s premennými.See working with variables for the options available for managing state.