Adatforrások ismertetése vászonalapú alkalmazások esetében a Power Appsben

A Power Appsben a legtöbb vászonalapú alkalmazás az Adatforrásoknak nevezett felhőszolgáltatásokban tárolt külső adatokat használ. Erre gyakori példa egy OneDrive Vállalati verzióban tárolt Excel-fájlban található táblázat. Az alkalmazások kapcsolatokkal férnek hozzá ezekhez az adatforrásokhoz.

A cikk ismerteti az adatforrások három különböző típusát, illetve a táblázat-adatforrások használatát.

Könnyedén létrehozható egy olyan alkalmazás, amely alapvető olvasási és írási műveleteket végez egy adatforrásban. Néha azonban előfordulhat, hogy jobban szeretné szabályozni az alkalmazás bejövő és kimenő adatfolyamát. A cikk ismerteti, hogyan biztosít teljesebb körű irányítást a Patch, a DataSourceInfo, a Validate és az Errors függvény.

Az adatforrások típusai

Az adatforrások egy felhőszolgáltatáshoz csatlakoztathatók, vagy lehetnek helyiek egy alkalmazásban.

Csatlakoztatott adatforrások

A leggyakrabban használt adatforrások a táblázatok, melyekkel adatok olvashatók be és tárolhatók. Az adatforrások kapcsolataival olvasási és írási műveleteket végezhet Microsoft Excel-munkafüzetekben, SharePoint-listákban vagy SQL-táblákban található, illetve számos más formátummal rendelkező adatokon, amelyeket olyan felhőszolgáltatásokban tárolhat, mint például a OneDrive vállalati verzió, a Dropbox, az SQL Server és egyebek.

A táblázatokon kívüli adatforrások többek között az e-mailek, a naptárak, a Twitter és az értesítések, a cikk azonban az adatforrások ezen további típusaival nem foglalkozik.

Helyi adatforrások

A Gyűjtemény, a Megjelenítési űrlap és a Szerkesztési űrlap vezérlőelemmel könnyedén létrehozhatók olyan alkalmazások, melyek beolvasnak adatokat egy adatforrásból, és abba írnak adatokat. Első lépésként olvassa el Az adatűrlapok ismertetése című cikket.

A Power Apps ezeket a vezérlőelemeket használja, ha egy alkalmazás adatokból való létrehozására ad utasítást. Az alkalmazás a háttérben egy belső táblázatban tárolja és kezeli az adatforrásból származó adatokat.

A Gyűjtemény az adatforrások különleges típusa, amely az alkalmazás helyi adatforrása, és nem támaszkodik egy felhőbeli szolgáltatással való kapcsolatra, így az adatok nem oszthatók meg ugyanazon felhasználó eszközei, illetve felhasználók között. A gyűjteményeket helyileg lehet betölteni és menteni.

A táblázatok típusai

A Power Apps-alkalmazások belső táblázatai olyan rögzített értékek, mint amilyen érték egy szám vagy egy sztring. A belső táblázatok sehol nincsenek tárolva, csak az alkalmazás memóriájában léteznek. A táblázat felépítése és adatai közvetlenül nem módosíthatók. Ehelyett azt teheti, hogy egy képlettel létrehoz egy új táblázatot: ezzel a képlettel létrehozhatja az eredeti táblázat egy módosított példányát.

A külső táblázatok adatforrásokban vannak tárolva későbbi beolvasás és megosztás céljából. A Power Apps szolgáltatás „kapcsolatokat” biztosít az adatok olvasásához és írásához. Egy adott kapcsolattal több adattáblázathoz is hozzáférhet. Ki kell választania, hogy mely táblázatokat kívánja használni az alkalmazásban, és mindegyikből egy külön adatforrás jön létre.

Ha további információra van szüksége, a Working with tables (Táblázatok használata) című témakörben részletesebben is olvashat a belső táblázatokról, ez ugyanakkor a felhőszolgáltatásokban található külső táblázatokra is vonatkozik.

Táblázatok használata

A táblázat-adatforrások ugyanúgy használhatók, mint a Power Apps belső táblázatai. A belső táblázatokhoz hasonlóan minden adatforrás rendelkezik rekordokkal és oszlopokkal, illetve tulajdonságokkal, melyek képletekben használhatók. Ezen felül:

  • Az adatforrás ugyanazokkal az oszlopnevekkel és adattípusokkal rendelkezik, mint a kapcsolatban található mögöttes táblázat.

    Note

    Megjegyzés: Azoknál a SharePoint- és Excel-adatforrásoknál, amelyekben szóközt tartalmazó oszlopnevek szerepelnek, a Power Apps minden szóközt az „_x0020_” értékre cserél. A SharePoint vagy Excel szolgáltatásban szereplő „Oszlop neve” érték például „Oszlop_x0020_neve” alakban fog megjelenni a Power Apps szolgáltatásban adatelrendezésben való megjelenítéskor vagy képletben való használatkor.

  • Az adatforrást automatikusan betölti a rendszer a szolgáltatásból az alkalmazás betöltésekor. A Refresh függvénnyel kényszerítheti az adatok frissítését.

  • Miközben a felhasználók futtatnak egy alkalmazást, létrehozhatnak, módosíthatnak és törölhetnek rekordokat, illetve visszaküldhetik ezeket a módosításokat a szolgáltatásban található mögöttes táblázatba.

    • Rekordokat a Patch és a Collect függvénnyel lehet létrehozni.
    • Rekordokat a Patch, az Update és az UpdateIf függvénnyel lehet módosítani.
    • Rekordokat a Remove és a RemoveIf függvénnyel lehet törölni.
    • Az adatforrások használatakor előforduló hibák az Errors függvénnyel érhetők el.
  • A DataSourceInfo, a Defaults és a Validate függvény információt biztosít az adatforrással kapcsolatban, melynek felhasználásával optimalizálhatja a felhasználói felületet.

Adatforrások létrehozása

A Power Apps szolgáltatásban nem hozhatók létre csatlakoztatott adatforrások, és nem módosítható azok struktúrája; az adatforrásnak már léteznie kell valahol egy szolgáltatásban. Ahhoz például, hogy egy OneDrive-on tárolt Excel-munkafüzetben hozzon létre egy táblázatot, először létre kell hoznia egy munkafüzetet a OneDrive-on az Excel Online használatával. Ezután hozhat létre ahhoz egy kapcsolatot az alkalmazásban.

Ugyanakkor gyűjtemény-adatforrásokat lehet létrehozni és módosítani az alkalmazásokban, viszont csak átmenetileg.

Egy vagy több rekord megjelenítése

A fenti ábrán az adatok áramlása látható abban az esetben, amikor egy alkalmazás beolvassa az adatokat egy adatforrásból:

  • Az adatok egy társzolgáltatásban (ebben az esetben egy Office 365-webhely egy SharePoint-listájában) vannak tárolva és megosztva.
  • Ezeket az adatokat egy kapcsolat teszi hozzáférhetővé az alkalmazás számára. A kapcsolat gondoskodik a felhasználó az adatok eléréséhez való hitelesítéséről.
  • Amikor elindítják az alkalmazást vagy megnyomják a Refresh függvény gombját, a rendszer beolvassa az adatokat a kapcsolatból egy, az alkalmazásban lévő adatforrásba helyi használatra.
  • Az adatok képletekkel olvashatók be és tehetők közzé a felhasználó számára látható vezérlőelemekben. Az adatforrások rekordjait úgy jelenítheti meg, hogy a képernyőn egy gyűjteményt használ, és az Items (Elemek) tulajdonságot az adatforráshoz köti: Gyűjtemény.Items = Adatforrás. A gyűjteményben lévő vezérlőelemek a vezérlőelemek Default (Alapértelmezés) tulajdonságával köthetők össze a gyűjteménnyel.
  • Az adatforrás is egy táblázat. Így a Filter, a Sort, az AddColumns és más függvényekkel pontosíthatja vagy bővítheti az adatforrást, mielőtt azt egészében felhasználná. Emellett a Lookup, a First, a Last és más függvényekkel kezelheti az egyedi rekordokat is.

Rekordok módosítása

Az előző részben arról olvashatott, hogyan olvashatók be az adatforrások. Fontos megjegyezni, hogy a fenti ábrán a nyilak egyirányúak. A rendszer nem ugyanazokkal a képletekkel küldi vissza az adatforrás módosításait, mint amelyekkel az adatokat beolvasták. Erre ehelyett új képletek szolgálnak. Gyakran eltérő képernyő szolgál a rekordok szerkesztésére és az azok közötti böngészésre, főleg mobileszközökön.

Fontos megjegyezni, hogy az adatforrások meglévő rekordjainak módosításához azoknak az adatforrásból kell származniuk eredetileg. Lehetséges, hogy a rekord egy gyűjteményen, egy környezeti változón, és tetszőleges számú képleten haladt végig, de a forrásának az adatforrásig visszakövethetőnek kell lennie. Ez azért fontos, mert a rekorddal együtt haladnak azt egyedileg azonosító további adatok, melyek biztosítják, hogy a megfelelő rekordot módosítsa.

A fenti ábrán az adatok áramlása látható egy adatforrás frissítése esetén:

  • Egy Szerkesztési űrlap vezérlőelem biztosítja a tárolót a bemeneti kártyák számára, melyek felhasználói bemeneti vezérlőelemekből, például egy szövegbeviteli vezérlőelemből vagy egy csúszkából állnak. A rendszer a DataSource (Adatforrás) és az Item (Elem) tulajdonság alapján azonosítja a szerkeszteni kívánt rekordot.
  • Minden bemeneti kártya rendelkezik Default (Alapértelmezés) tulajdonsággal, mely általában az űrlap ThisItem (Ez az elem) rekordjának mezőjére van beállítva. A bemeneti kártyán található vezérlőelemek a Default (Alapértelmezés) helyéről olvassák be a bemeneti értékeiket. Ezt általában nem szükséges módosítani.
  • Minden bemeneti kártya rendelkezik egy Update (Frissítés) tulajdonsággal. Ez a tulajdonság egy adott mezőben megadott felhasználói bevitel leképezése az adatforrásba való visszaíráshoz. Ezt általában nem szükséges módosítani.
  • Egy, a képernyőn megjelenő gomb vagy kép vezérlőelem lehetővé teszi, hogy a felhasználó mentse a rekord módosításait. A vezérlőelem OnSelect (Kijelöléskor) képlete a SubmitForm függvényt hívja meg ezen feladat elvégzéséhez. A SubmitForm beolvassa a kártyák Update (Frissítés) tulajdonságait, és ezek felhasználásával végez visszaírást az adatforrásba.
  • Néha előfordulhatnak problémák. Előfordulhat, hogy nincs hálózati kapcsolat, vagy hogy a szolgáltatás egy olyan érvényesség-ellenőrzést végez, mely az alkalmazás számára nem volt ismert. Ezek az információk az űrlap-vezérlőelem Error (Hiba) és az ErrorKind (Hibatípus) tulajdonságában érhetők el, hogy megjeleníthesse azokat a felhasználó számára.

A folyamat részletesebb szabályozásához használhatja a Patch és az Errors függvényt is. A Szerkesztési űrlap vezérlőelem rendelkezik egy Updates (Frissítések) tulajdonsággal, így beolvashatja az űrlap mezőinek értékeit. Ezzel a tulajdonsággal meg is hívhat egy egyéni összekötőt egy kapcsolaton, így teljesen megkerülve a Patch és a SubmitForm függvény használatát.

Ellenőrzés

Mielőtt módosítást végez egy rekordon, az alkalmazásnak minden lehetséges eszközzel ellenőriznie kell, hogy a módosítás elfogadható lesz-e. Ennek két oka van:

  • Azonnali visszajelzés a felhasználónak. A legjobb időpont egy probléma megoldására rögtön annak felmerülésekor van, amikor a felhasználónak még friss emlékei vannak róla. Szó szerint minden érintéskor vagy billentyűlenyomáskor megjelenhet olyan piros színű szöveg, amely megnevez egy problémát a bejegyzéssel kapcsolatban.
  • Kevesebb hálózati forgalom és kevesebb felhasználói késés. Ha a rendszer több problémát észlel az alkalmazásban, akkor kevesebb beszélgetés fog zajlani a hálózaton a problémák észlelése és megoldása érdekében. Minden egyes beszélgetés időt vesz igénybe, mely során a felhasználónak várakoznia kell, mielőtt továbbléphetne.

A Power Apps két eszközt kínál az érvényesítéshez:

  • Az adatforrás szolgálhat információval azzal kapcsolatban, hogy mi érvényes, és mi nem. A számoknak például lehet minimális és maximális értékük, és egy vagy több bejegyzés megadása kötelező lehet. Ezek az információk a DataSourceInfo függvénnyel érhetők el.
  • A Validate függvény ugyanezeket az információkat használja egyetlen oszlop vagy egy egész rekord értékének ellenőrzéséhez.

Hibakezelés

Nagyszerű, sikerült érvényesíteni a rekordot. Itt az ideje frissíteni a rekordot a Patch függvénnyel!

Sajnos azonban még mindig felmerülhetnek problémák. A hálózat nem működik, a szolgáltatásban végzett érvényesítés sikertelen volt, vagy a felhasználó nem rendelkezik a megfelelő engedélyekkel – csak hogy néhányat említsünk a lehetséges hibák közül, melyek előfordulhatnak az alkalmazásban. Megfelelően kell reagálnia azokban a helyzetekben, melyekben hiba történik; visszajelzést és javítási lehetőséget kell biztosítania a felhasználó számára.

Ha egy adatforrásban történnek hibák, az alkalmazás automatikusan rögzíti a hibaadatokat, és az Errors függvénnyel elérhetővé teszi azokat. A hibák azokhoz a rekordokhoz vannak társítva, melyekben problémák merültek fel. Ha a probléma olyasmi, amit a felhasználó meg tud oldani, például egy érvényesítési probléma, akkor újból elküldheti a rekordot, és a hibák törlődnek.

Ha egy rekord a Patch vagy a Collect függvénnyel való létrehozásakor fordul elő hiba, nincs rekord, amelyhez hibákat lehetne társítani. Ebben az esetben a Patch függvény üres értéked ad vissza, mely használható az Errors függvény rekordargumentumaként. A létrehozási hibák a következő művelet végrehajtásakor törlődnek.

Az Errors függvény hibainformációk egy táblázatát adja vissza. Ezen információk között szerepelhetnek az oszlopadatok, ha a hiba egy adott oszlopnak tulajdonítható. Olyan címke-vezérlőelemekben helyezze el az oszlopszintű hibaüzeneteket, melyek az oszlop pozíciójának közelében találhatók a szerkesztési képernyőn. Ha a hibatáblázat Column (Oszlop) értéke üres, használjon rekordszintű hibaüzeneteket, a teljes rekordhoz tartozó Mentés gomb közelében elhelyezve.

Nagy méretű adatforrások használata

Ha nagy méretű adatforrásokból (akár több millió rekordból) készít jelentéseket, érdemes minimálisra csökkenteni a hálózati forgalmat. Tegyük fel, hogy szeretne jelentést készíteni az összes olyan budapesti ügyfélről, akinek StatusCode (Állapotkód) tulajdonsága „Platinum” értékű. Azt is tegyük fel, hogy a Customers (Ügyfelek) tábla több millió rekordot tartalmaz.

Nem érdemes beolvasni a több millió ügyfelet az alkalmazásba, és aztán kiválasztani a megfelelőeket. Ehelyett azt érdemes tennie, hogy ezt a kiválasztást a táblát tároló felhőszolgáltatásban hajtatja végre, és csak a kiválasztott rekordokat küldi át a hálózaton.

Számos, de nem minden rekordok kiválasztásához használható függvény delegálható, ami azt jelenti, hogy a felhőszolgáltatásban futtatható. Erről további információt a delegálással kapcsolatos témakörben találhat.

Gyűjtemények

A gyűjtemények különleges típusú adatforrások. Az alkalmazás helyi adatforrásai, és nem támaszkodnak egy felhőbeli szolgáltatással való kapcsolatra, így az adatok nem oszthatók meg ugyanazon felhasználó eszközei, illetve felhasználók között. Ugyanúgy működnek, mint bármely más adatforrás, a következő néhány kivételtől eltekintve:

  • A gyűjtemények dinamikusan létrehozhatók a Collect függvénnyel. Nem szükséges, hogy előre létre legyenek hozva, mint a kapcsolatalapú adatforrások.
  • A gyűjtemények oszlopai bármikor módosíthatók a Collect függvénnyel.
  • A gyűjtemények lehetővé teszik az ismétlődő rekordok használatát. Egy gyűjteményben ugyanazon rekord több példánya is szerepelhet. Az olyan függvények, mint például a Remove, az első megtalált egyezésen lesznek végrehajtva, kivéve, ha meg van adva az All argumentum.
  • A SaveData és a LoadData függvénnyel mentheti vagy töltheti be újra a gyűjtemény példányait. A rendszer egy privát helyen tárolja az adatokat, melyhez más felhasználók, alkalmazások és eszközök nem férhetnek hozzá.
  • Az Exportálás és az Importálás vezérlőelemmel menthetők a gyűjtemény példányai a felhasználó által használható fájlokba, illetve tölthetők be újra azokból.

A gyűjtemények adatforrásként való használatáról a gyűjtemények létrehozásával és frissítésével foglalkozó témakörben találhat további információt.

A gyűjteményeket gyakran használják az alkalmazás globális állapotának tárolására. Az állapot kezeléséhez rendelkezésre álló lehetőségeket a változók használatával foglalkozó témakörben találhat további információt.