6. poglavje: Uporaba spletnega API-ja v aplikaciji
Mateja in Svetlana sta pripravljeni združiti aplikacijo s spletnim API-jem. Vendar pa se odločita, da se bosta pred nadaljevanjem posvetovali s Patricijo, vodjo operacij IT.
Razumevanje zahtev upravljanja operacij IT za spletni API
Patricijo skrbi, da morata biti aplikacija in spletni API varna, ker zagotavljata dostop do občutljivih podatkov, shranjenih v različnih zbirkah podatkov. Želi zagotovilo, da bo lahko vključila preverjanje pristnosti in avtorizacijo, da se prepreči neupravičen dostop do informacij. Prav tako pa se Patricija zaveda, da se podjetje hitro širi ter da se bo obseg podatkov, vključenih v upravljanje strank, terminov, delov in zbirke znanja verjetno kmalu eksponentno povečal. Posledično želi, da je rešitev razširljiva.
Svetlana pojasni Patriciji, da je spletni API trenutno izveden s storitvijo aplikacije Azure. Ta storitev podpira številne ponudnike preverjanja pristnosti, ki jih lahko Patricija konfigurira z uporabo portala Azure. Patricijo še posebej zanima Azure Active Directory, ker želi VanArsdel to obliko preverjanja pristnosti v bližnji prihodnosti razširiti na številne druge sisteme v podjetju.

Storitev aplikacije zagotavlja tudi vodoravno in navpično razširljivost. Po potrebi lahko Patricija navpično razširi vire, ki so na voljo spletnemu API-ju z nadgradnjo načrta storitve aplikacije za spletno aplikacijo:

Lahko uredi tudi, da sistem izvede vodoravno prilagajanje, tako da konfigurira samodejno prilagajanje. Storitev aplikacije omogoča vodji dejavnosti, da opredeli pravila samodejnega prilagajanja, ki določajo pogoje, pod katerimi naj sistem izvede vodoravno prilagajanje navzven po več primerkih, ko se obremenitev poveča, ali navznoter, ko potreba upade. Prav tako lahko konfigurira preventivno samodejno prilagajanje po urniku:

Ključni del vloge vodje operacij IT je, biti pozoren na to, kako se lahko sistemi razvijajo, ter zagotoviti, da bodo osnovne podporne strukture kos prihodnjim širitvam in spremembam. Patricija ve, da bo lahko spletni API, ki ga je razvila Svetlana, v prihodnosti razširjen in znova uporabljen v drugih sistemih podjetja VanArsdel. Zanjo je pomembno, da lahko upravlja in nadzoruje način, kako razvijalci zahtevajo uporabo spletnega API-ja, tega varuje kot dragocen vir in spremlja njegovo uporabo. Zato se Patricija odloči zavarovati spletni API za storitvijo upravljanja vmesnikov API Azure.
Upravljanje vmesnikov API zagotavlja dodaten sloj varnosti za spletni API ter omogoča podrobno spremljanje in nadzor, kateri odjemalci lahko dostopajo do katerih operacij. Z uporabo upravljanja vmesnikov API lahko Patricija upravlja uporabo virov in omejuje zmogljivosti odjemalcev z nizko prioriteto, da zagotovi hitrejše zagotavljanje storitev ključnim aplikacijam z višjo prioriteto.
Za informacije o storitvah, ki jih zagotavlja upravljanje vmesnikov API, pojdite na O upravljanju vmesnikov API.
Ustvarjanje storitve upravljanja vmesnikov API
Patricija je ustvarila storitev upravljanja vmesnikov API v portalu Azure z uporabo naslednjih korakov:
Vpišite se v portal Azure in na strani Osnovno izberite Ustvari vir.

V besedilno polje Iskanje po mestu Marketplace vnesite Upravljanje vmesnikov API, nato pa izberite Enter.
Na strani Upravljanje vmesnikov API izberite Ustvari.

Na strani Ustvari upravljanje vmesnikov API vnesite naslednje vrednosti, nato pa izberite Preglej in ustvari:
- Naročnina: izberite svojo naročnino
- Skupina virov: webapi_rg (to je ista skupina virov, ki ste jo ustvarili za storitev aplikacije)
- Regija: izberite svojo najbližjo regijo
- Ime vira: vnesite enolično ime za storitev.
- Ime organizacije: VanArsdel
- E-pošta skrbnika: itadmin@vanarsdel.com
- Cenovni razred: Razvijalec (brez pogodbe o ravni storitve)
Opomba
Ne uporabite cenovnega razreda Razvijalec za produkcijski sistem.

Na strani za potrjevanje izberite Ustvari in počakajte, da je ustvarjena storitev upravljanja vmesnikov API.
Opomba
Omogočanje storitve upravljanja vmesnikov API lahko traja 30 minut ali več; bodite potrpežljivi.
Objavljanje spletnega API-ja prek upravljanja vmesnikov API
Ko je bila storitev upravljanja vmesnikov API ustvarjena, je Patricija objavila spletni API, da je omogočila dostop do njega drugim storitvam in aplikacijam. Uporabila je naslednje korake:
V portalu Azure pojdite na storitev upravljanja vmesnikov API.
Na strani Storitev upravljanja vmesnikov API v levem podoknu pod možnostjo API-ji izberite API-ji:

V Dodajte nov API podokno, izberite OpenAPI:

V Ustvarite iz OpenAPI specifikacijo pogovorno okno, vnesite naslednje vrednosti in nato izberite Ustvari:
- OpenAPI specifikacija: https://<webapp name> .azurewebsites.net/swagger/v1/swagger.json, kje <webapp name> je ime storitve aplikacij, ki gosti vaš spletni API
- Prikazno ime: API terenskega serviserja
- Ime: field-engineer-api
- Pripona URL API-ja: pustite prazno
- Osnovni URL: uporabi privzeti URL

Ko je API terenskega serviserja ustvarjen, izberite zavihek Nastavitve za API, nastavite URL spletne storitve na https://<webapp name>.azurewebsites.net, nato pa izberite Shrani:

Na zavihku Preskus izberite GET URI API-ja/terminov, nato pa izberite Pošlji:

Preverite, ali je zahteva uspešna (povratna koda HTTP je 200 OK) in da vrne rezultat, ki vsebuje seznam terminov v odzivnem telesu:

Povezovanje z upravljanjem vmesnikov API iz aplikacije
Svetlana in Mateja lahko zdaj sodelujeta pri povezovanju aplikacije, izdelane s storitvijo Power Apps, s spletnim API-jem prek storitve upravljanja vmesnikov API.
Prvo opravilo je ustvarjanje povezovalnika po meri, ki ga aplikacija uporablja za komuniciranje z upravljanjem vmesnikov API. To vključuje izvoz API-ja v okolje Power Apps, uporabljeno za ustvarjanje aplikacije, kar Svetlana naredi po naslednjih navodilih:
V portalu Azure odprite stran za storitev upravljanja vmesnikov API, ki jo je ustvarila Patricija.
V levem podoknu pod možnostjo API-ji izberite API-ji.
Izberite gumb s tremi pikami za API terenskega serviserja in nato izberite Izvozi.

V podoknu Izvozi API izberite Power Apps in Power Automate:

V podoknu Izvoz API-ja v PowerApps izberite okolje Power Apps, v katerem ste ustvarili prototip aplikacije (na naslednji sliki Mateja), nato pa izberite Izvozi.

Potem ko ste izvozili API, izberite API terenskega serviserja. Na strani Nastavitve se pomaknite navzdol do razdelka Naročnine, počistite Zahtevana naročnina, nato pa izberite Shrani.

Prototip aplikacije je uporabil Excelove delovne zvezke za vire podatkov. Zdaj ko je na voljo povezovalnik po meri za spletni API, Mateja izvede naslednje korake za dodajanje povezovalnika v aplikacijo:
Vpis v storitev Power Apps.
V levem podoknu razširite možnost Podatki in izberite Povezovalniki po meri. Naveden bi moral biti povezovalnik po meri field-engineer-api. Izberite Ustvari povezavo.

V pogovornem oknu field-engineer-api izberite Ustvari.

Ko je bila povezava ustvarjena, potrdite, da je prikazana na seznamu razpoložljivih povezav.

V levem podoknu izberite Aplikacije, izberite VanArsdelApp, nato pa izberite Uredi.

V levem podoknu izberite zavihek Podatki. Izberite Dodajanje podatkov, izberite gumb s tremi pikami za Povezovalniki, nato pa izberite Osveži.

Na seznamu povezovalnikov izberite povezovalnik field-engineer-api.

V pogovornem oknu field-engineer-api izberite povezovalnik field-engineer-api.

V podoknu Podatki potrdite, da je povezovalnik FieldEngineerApi naveden.

Posodabljanje aplikacije za uporabo povezovalnika: upravljanje terenske zaloge
Zdaj, ko je bila povezava dodana v aplikacijo, lahko Mateja prilagodi zaslone, da jo uporabijo za zamenjavo Excelovih delovnih zvezkov. To vključuje metodično obdelavo vsakega zaslona in spreminjanje vira podatkov. Druge spremembe ne bi smele biti potrebne. Začne z zaslonoma BrowseParts in PartDetails po naslednjih navodilih:
Na zaslonu Osnovno aplikacije izberite gumb Deli. Nastavite lastnost dejanja OnSelect na naslednjo formulo.
ClearCollect(partsCollection, FieldEngineerAPI.getapiboilerparts()); Navigate(BrowseParts, ScreenTransition.Fade)Funkcija ClearCollect ustvari novo povezavo, imenovano partsCollection, in jo zapolni s podatki, ki so rezultat priklica operacije getboilerparts v povezavi FieldEngineerAPI.

Opomba
Dobra praksa je, pridobiti podatke v zbirko in se sklicevati na to zbirko iz katerega koli zaslona, ki potrebuje informacije. Ta pristop lahko različnim zaslonim prihrani večkratno izvajanje iste poizvedbe in pridobivanjem istih podatkov.
Izberite F5 za predogled aplikacije.
Na zaslonu Osnovno izberite Deli. To dejanje bo ustvarilo zbirko partsCollection. Zaprite okno za predogled in se vrnite v Power Apps Studio.
Opomba
Namen tega koraka je omogočiti ogled podatkov med urejanjem zaslona BrowseParts v naslednjih korakih.
Izberite kontrolnik BrowseGallery1 na zaslonu BrowseParts. V formuli za lastnost Elementi nadomestite sklic na vir podatkov [@Table1] z možnostjo partsCollection.
Ta sprememba bo povzročila nekaj napak. To pa zato, ker so imela imena polj v prvotnem Excelovem delovnem zvezku veliko začetnico (Ime, CategoryID in Pregled), medtem ko so lastnosti, vrnjene v telesu odziva spletnega API-ja, poimenovane z malo začetnico. Spremenite te sklice tako, da bodo uporabljali male črke. Formula bi morala biti taka, kot v nadaljevanju.
SortByColumns(Search(FieldEngineerApi.getapiboilerparts(), TextSearchBox1.Text, "name", "categoryId", "overview"), "name", If(SortDescending1, Descending, Ascending))
V podoknu Drevesni pogled izberite kontrolnik IconRefresh1. Spremenite dejanje OnSelect na formulo ClearCollect(partsCollection, FieldEngineerAPI.getapiboilerparts()).
Opomba
Prvotna formula za to dejanje prikliče funkcijo Osveži za vnovično zapolnjevanje podatkov z uporabo povezave s prvotnim virom podatkov. Funkcije Osveži ni mogoče uporabiti s povezavo, ki izvede funkcijo za pridobivanje podatkov, zato ne bo delovala z možnostjo FieldEngineerApi.getapiboilerparts(). Rešitev v tem koraku znova zapolni zbirko partsCollection z najnovejšimi podatki.
V podoknu Drevesni pogled razširite kontrolnik BrowseGallery1 in izberite Body1. Spremenite lastnost Besedilo na ThisItem.overview.
V podoknu Drevesni pogled izberite kontrolnik Subtitle1. Spremenite lastnost Besedilo na ThisItem.categoryId.
V podoknu Drevesni pogled izberite kontrolnik Naslov. Spremenite lastnost Besedilo na ThisItem.name.
V podoknu Drevesni pogled izberite kontrolnik DetailForm1 na zaslonu PartDetails. Spremenite lastnost DataSource z [@Table1] na partsCollection.
V podoknu Drevesni pogled izberite Name_DataCard1 pod možnostjo DetailForm1. Spremenite lastnost Privzeto na ThisItem.name.

Spremenite lastnost Privzeto kontrolnika CategoryID_DataCard1 na ThisItem.categoryId.
Spremenite lastnost Privzeto kontrolnika Overview_DataCard1 na ThisItem.overview.
Spremenite lastnost Privzeto kontrolnika Price_DataCard1 na ThisItem.price.
Spremenite lastnost Privzeto kontrolnika NumberInStock_DataCard1 na ThisItem.numberInStock.
Spremenite lastnost Privzeto kontrolnika Image_DataCard1 na ThisItem.imageUrl.
V levem podoknu na zavihku Podatki z desno tipko miške kliknite podatkovno povezavo Table1 in nato izberite Odstrani za izbris iz aplikacije. Ta povezava ni več potrebna.

Shranite aplikacijo.
Opomba
Aplikacijo lahko hitro shranite brez uporabe menija Datoteka, tako da izberete Ctrl + S.
Izberite F5 za predogled aplikacije. Zaslona Prebrskaj dele in Podrobnosti dela bi morala delovati čisto enako kot prej, razen da zdaj pridobivata podatke iz zbirke podatkov SQL Azure InventoryDB prek spletnega API-ja, namesto iz lokalne Excelove datoteke.
Zaprite okno za predogled in se vrnite v Power Apps Studio.
Posodabljanje aplikacije za uporabo povezovalnika: terensko razporejanje in opombe
Mateja nadaljuje z zasloni BrowseAppointments, AppointmentDetails in EditAppointment. Podatki, predstavljeni na teh zaslonih, trenutno izvirajo iz tabele Termini v drugem Excelovem delovnem zvezku.
Na zaslonu Osnovno aplikacije nastavite dejanje OnVisible na naslednjo formulo.
ClearCollect(appointmentsCollection, Sort(Filter(FieldEngineerAPI.getapiappointments(), DateDiff(Today(), startDateTime) >= 0), startDateTime))Ta formula pridobi podatke o terminih v zbirko appointmentsCollection. Termini so filtrirani za pridobivanje obiskov, načrtovanih na ali po trenutnem datumu.
Izberite kontrolnik oznake, ki prikazuje čas naslednjega termina. Nastavite lastnost Besedilo na Text(First(appointmentsCollection).startDateTime, ShortTime24).
Izberite kontrolnik oznake, ki prikazuje datum za naslednji termin. Nastavite lastnost Besedilo na Text(First(appointmentsCollection).startDateTime, LongDate).
Izberite kontrolnik oznake, ki prikazuje ime stranke za naslednji sestanek. Nastavite lastnost Besedilo na First(appointmentsCollection).customer.name.
Izberite F5 za predogled aplikacije. Na zaslonu Osnovno izberite Termini. To dejanje bo ustvarilo zbirko appointmentsCollection. Zaprite okno za predogled in se vrnite v Power Apps Studio.
V podoknu Drevesni pogled izberite kontrolnik BrowseAppointmentsGallery na zaslonu BrowseAppointments. Spremenite formulo v lastnosti Elementi na naslednjo formulo.
Sort(Filter(appointmentsCollection, StartsWith(customer.name, TextSearchBox1\_1.Text)), startDateTime)Ta formula filtrira podatke, prikazane na zaslonu, po imenu stranke, kar uporabniku omogoča vnos imena stranke. Termini so prikazani v vrstnem redu datumov in ure.
V podoknu Drevesni pogled razširite kontrolnik BrowseAppointmentsGallery in izberite kontrolnik Title1_1. Spremenite lastnost Besedilo na naslednje.
Text(ThisItem.startDateTime, LongDate)Ta formula prikazuje datumski del polja startDateTime za termin.
V podoknu Drevesni pogled razširite kontrolnik BrowseAppointmentsGallery in izberite kontrolnik Subtitle1_1. Spremenite lastnost Besedilo na naslednje.
Text(ThisItem.startDateTime, ShortTime24)
Ta formula prikazuje časovni element polja startDateTime.
V podoknu Drevesni pogled razširite kontrolnik BrowseAppointmentsGallery in izberite kontrolnik Body1_1. Spremenite lastnost Besedilo na naslednje.
ThisItem.customer.nameV podoknu Drevesni pogled izberite kontrolnik IconRefresh1_1 na zaslonu BrowseAppointments. Nastavite dejanje OnSelect na naslednjo formulo.
ClearCollect(appointmentsCollection, Sort(Filter(FieldEngineerAPI.getapiappointments(), DateDiff(Today(), startDateTime) >= 0), startDateTime));V podoknu Drevesni pogled razširite zaslon AppointmentDetails in izberite kontrolnik DetailForm1_1. Nastavite lastnost DataSource na appointmentsCollection.
V podoknu Drevesni pogled izberite kontrolnik IconEdit1. Prilagodite formulo v lastnosti DisplayMode za preskus zbirke appoinmentsCollection.
If(DataSourceInfo(**appointmentsCollection**, DataSourceInfo.EditPermission), DisplayMode.Edit, DisplayMode.Disabled)V podoknu Drevesni pogled razširite zaslon DetailForm1_1 in izberite kontrolnik Customer Name_DataCard1. Spremenite lastnost Privzeto na ThisItem.customer.name.
Spremenite lastnosti Privzeto preostalih podatkovnih kartic po naslednjih navodilih:
- Customer Address_DataCard1: ThisItem.customer.address
- Contact Number_DataCard1: ThisItem.customer.contactNumber
- Problem Details_DataCard1: ThisItem.problemDetails
- Status_DataCard1: ThisItem.appointmentStatus.statusName
- Notes_DataCard1: ThisItem.notes
- Image_DataCard1_1: ThisItem.imageUrl
V podoknu Drevesni pogled razširite zaslon EditAppointment in izberite kontrolnik EditForm1. Nastavite lastnost DataSource na appointmentsCollection.
V podoknu Drevesni pogled razširite kontrolnik EditForm1 in izberite kontrolnik Customer Name_DataCard3. Spremenite lastnost Privzeto na ThisItem.customer.name.
Spremenite lastnosti Privzeto preostalih podatkovnih kartic po naslednjih navodilih:
- Contact Number_DataCard2: ThisItem.customer.contactNumber; dodatno spremenite lastnost MaxLength na 20
- Problem Details_DataCard2: ThisItem.problemDetails
- Status_DataCard5: ThisItem.appointmentStatus.statusName
- Notes_DataCard3: ThisItem.notes
- Image_DataCard2: ThisItem.imageUrl
V podoknu Drevesni pogled razširite kontrolnik Problem Details_Card2. Preimenujte polje DataCardValueX (X bo številka) pod tem kontrolnikom na ProblemDetailsValue. Ponovite ta proces za kontrolnike DataCardValueX na naslednjih podatkovnih karticah:
- Status_DataCard5: StatusValue
- Notes_DataCard3: NotesValue
Opomba
Kontrolnik slike bo obravnavan v naslednjem poglavju.
Izberite ProblemDetailsValue in nastavite lastnost MaxLength na 100.
V podoknu Drevesni pogled izberite kontrolnik IconAccept1 na zaslonu EditAppointment. Nastavite lastnost dejanja OnSelect na naslednjo formulo.
FieldEngineerAPI.putapiappointmentsid(BrowseAppointmentsGallery.Selected.id, {problemDetails:ProblemDetailsValue.Text, statusName:StatusValue.Selected.Value, notes:NotesValue.Text, imageUrl:""}); Remove(appointmentsCollection, First(Filter(appointmentsCollection, id=BrowseAppointmentsGallery.Selected.id))); Set(appointmentRec, FieldEngineerAPI.getapiappointmentsid(BrowseAppointmentsGallery.Selected.id)); Collect(appointmentsCollection, appointmentRec); Navigate(AppointmentDetails, ScreenTransition.None);Ta formula prikliče operacijo PUT za kontrolnik terminov v spletnem API-ju. ID termina za trenutni termin posreduje kot prvi parameter, ki mu sledijo podrobnosti, ki jih je uporabnik morda prilagodil na zaslonu. Podrobnosti se posredujejo kot predmet JSON. Izjave Remove, Set in Collect posodobijo zbirko appointmentsCollection s podatki, shranjenimi v zbirki podatkov.
Opomba
V takih situacijah ne uporabite funkcije ClearCollect za brisanje in osveževanje celotne zbirke, ker bi bilo to potratno, če bi bil na primer spremenjen samo en zapis.
V podoknu Drevesni pogled izberite kontrolnik IconAccept1 na zaslonu EditAppointment. Nastavite lastnost dejanja OnSelect na naslednje.
ResetForm(EditForm1); Navigate(AppointmentDetails, ScreenTransition.None);V levem podoknu na zavihku Podatki z desno tipko miške kliknite podatkovno povezavo Termini in nato izberite Odstrani za izbris iz aplikacije.
Shranite aplikacijo.
Izberite F5 za predogled aplikacije. Na zaslonu Osnovno pojdite na zaslon Termini, izberite in uredite termin, nato pa shranite spremembe. Preverjanje, ali je bil termin posodobljen.
Zaprite okno za predogled in se vrnite v Power Apps Studio.
Ustvarjanje storitve Azure Cognitive Search za terensko zbirko znanja
Zaslon zbirke znanja v aplikaciji trenutno ni pritrjen na noben vir podatkov. Spletni API vključuje operacija za poizvedovanje in posodabljanje tabel Nasveti, BoilerParts in Serviserji v zbirki podatkov KnowledgeDB. Vendar pa je namen zaslona Poizvedba v aplikaciji podpora iskanja po vseh teh tabelah. Obseg podatkov v teh tabelah se bo verjetno hitro povečal, zato se Mateja, Svetlana in Patricija odločijo, da bodo uvedle Azure Cognitive Search v podporo tej funkciji. Aplikacija lahko pošilja poizvedbe in prejema rezultate iz storitve Azure Cognitive Search prek povezovalnika po meri.
Azure Cognitive Search deluje najbolje, če so podatki, ki se preiskujejo, združeni v eno entiteto zbirke podatkov. Svetlana ustvari pogled v zbirki podatkov KnowledgeDB, ki predstavlja poenoten pogled tabel Nasveti, BoilerParts in Serviserji, po naslednjih navodilih:
V portalu Azure pojdite na stran Zbirka podatkov SQL KnowledgeDB.
V levem podoknu izberite Urejevalnik poizvedb in se vpišite v zbirko podatkov kot sqladmin z uporabo gesla Pa55w.rd.

V oknu poizvedb vnesite naslednjo izjavo, nato pa izberite Zagon.
CREATE OR ALTER VIEW [dbo].[Knowledge] AS SELECT T.Id, T.Subject, T.Body, B.Name, B.Overview FROM [dbo].[Tips] T INNER JOIN [dbo].[BoilerParts] B ON B.Id=T.KnowledgeBaseBoilerPartId
Potrdite, da je bil pogled Znanje uspešno ustvarjen.
V levem podoknu izberite Nizi povezav. Zabeležite si niz povezave ADO.NET; potrebovali ga boste pri konfiguraciji storitve Azure Cognitive Search.

V sodelovanju s Svetlano Patricija konfigurira nov primerek storitve Azure Cognitive Search za izvajanje iskanj po vrsticah v pogledu Znanje po naslednjih navodilih:
Na strani Osnovno v portalu Azure izberite + Ustvari vir, vnesite Azure Cognitive Search, izberite Enter, nato pa izberite Ustvari.

Na strani Nova storitev iskanja vnesite naslednje nastavitve, nato pa izberite Preglej in ustvari:
- Naročnina: izberite svojo naročnino Azure
- Skupina virov: webapi_rg
- Ime storitve: vnesite enolično ime za storitev.
- Ime lokacije: izberite svojo najbližjo regijo
- Cenovni razred: Brezplačno
Na strani za potrjevanje izberite Ustvari in počakajte, da je storitev omogočena za uporabo.
Pojdite na stran za novo storitev iskanja, izberite Pregled, zabeležite si URL (potrebovali ga boste pozneje, ko ustvarite povezovalnik po meri za Power Apps), nato pa izberite Uvozi podatke.

Na strani Uvoz podatkov v polju spustnega menija Vir podatkov izberite Zbirka podatkov SQL Azure.

Na strani Vzpostavite povezavo s svojimi podatki določite naslednje nastavitve:
- Vir podatkov: Zbirka podatkov SQL Azure
- Ime vira podatkov: zbirka znanja
- Niz povezave: vnesite niz povezave zbirke podatkov SQL Azure za zbirko podatkov KnowledgDB, ki ste jo zabeležili prej; v tem nizu zagotovite, da nastavite geslo na Pa55w.rd
- Pustite polji ID uporabnika in Geslo na privzetih vrednostih; ti elementi se pridobijo iz niza povezave
Izberite Preskusi povezavo. Zagotovite, da je preskus uspešen, izberite [Znanje] v polju spustnega seznama Tabela/pogled in nato izberite Naprej: Dodaj kognitivne veščine (izbirno).

Na strani Dodaj kognitivne veščine (izbirno) izberite Preskoči na: Prilagodi ciljno kazalo.
Na strani Prilagodi ciljno kazalo izberite Možnost pridobivanja za vse stolpce in Možnost iskanja za Zadeva, Telo, Ime in Pregled. Izberite Naprej: Ustvari indekser.

Na strani Ustvari indekser spremenite Ime za indekser na knowledgebase-indexer. Za Urnik izberite Urni, nastavite Stolpec višje vrednosti vodnega žiga na ID, nato pa izberite Pošlji:

Za preskus indekserja na strani Pregled za storitev iskanja izberite Raziskovalec iskanja:

V polje Niz poizvedbe vnesite besedo, ki jo želite poiskati v zbirki znanj, nato pa izberite Poišči. Storitev iskanja bi morala ustvariti seznam dokumentov z ujemanjem v poljih Zadeva, Telo, Ime ali Pregled in jih prikazati v podoknu Rezultati. Zabeležite si URL zahteve in vzorca Rezultati; ta elementa boste potrebovali pozneje kot primer zahteve in odziva, ko boste nastavljali povezovalnik po meri Power Apps.

Ustvarjanje povezovalnika po meri za storitve Azure Cognitive Search
Svetlana lahko zdaj ustvari povezovalnik po meri, ki ga Power Apps uporablja za pošiljanje zahtev v storitev iskanja. To naredi z uporabo storitve Power Apps Studio po naslednjih navodilih:
Vpis v storitev Power Apps.
V levem podoknu razširite možnost Podatki in izberite Povezovalniki po meri. V desnem podoknu izberite + Nov povezovalnik po meri, nato pa izberite Ustvarjanje od začetka:

V pogovornem oknu Ustvarjanje od začetka nastavite ime novega povezovalnika na VanArsdelKBConnector, nato pa izberite Nadaljuj:

Na strani Splošne informacije vnesite opis in nastavite možnost Shema na HTTPS. V polje Gostitelji vnesite URL za storitev iskanja (ta URL ste si prej zabeležili), toda brez predpone https://, nato pa izberite Varnost.

Na strani Varnost v polju spustnega seznama Preverjanje pristnosti izberite Ključ API. V polje Oznaka parametra vnesite api-key. V polje Ime parametra vnesite api-key. Izberite Definicija.

Na strani Definicija izberite Novo dejanje. V polje Povzetek vnesite Poizvedba. V polje Opis vnesite Poizvedba po zbirki podatkov. V polje ID operacije vnesite Poizvedba. Pod možnostjo Zahteva izberite + Uvozi iz vzorca.

V pogovornem oknu Uvozi iz vzorca vnesite naslednje vrednosti in nato izberite Uvozi:
- Glagol: GET
- URL: Zagotovite primer URL-ja zahteve, ki ste ga zabeležili, ko ste prej preskušali storitev iskanja v raziskovalcu iskanja
- Glave: Content-type

Nazaj na strani Definicija se pomaknite navzdol do razdelka Poizvedba izberite gumb s tremi pikami poleg možnosti Iskanje, nato pa izberite Uredi.

Na zaslonu za urejanje v razdelku Parametri v polju Privzeta vrednost vnesite zvezdico (*_). Pustite druga polja na privzetih vrednostih in nato izberite _ Nazaj.

Na strani Definicija v razdelku Poizvedba izberite gumb s tremi pikami poleg možnosti api-version, nato pa izberite Uredi.

Na zaslonu za urejanje v razdelku Parametri v polje Privzeta vrednost vnesite 2020-06-30-Preview (to je različica, povezana s trenutno različico storitve Azure Cognitive Search; različico lahko vidite v URL-ju zahteve, ki ste ga zabeležili prej). Nastavite Je obvezno na Da in nastavite Vidljivost na interno. Pustite druga polja na privzetih vrednosti in nato izberite Nazaj.

Na strani Definicija se pomaknite navzdol do razdelka Odziv in izberite + Dodaj privzeti odziv.
]V pogovornem oknu Uvozi iz vzorca v polje Glave vnesite besedilo Content-type. V polje Telo vnesite primere rezultatov, ki ste jih zabeležili med preskušanjem storitve iskanja in nato izberite Uvozi.

Na strani Definicija izberite odziv Privzeto.

V polje Opis odziva Content-type vnesite application/json, nato pa izberite Nazaj.

Opomba
Razdelek Telo te strani bi moral prikazovati polja odziva, kot so Telo, ID, Ime, Pregled in Zadeva, če je bil uspešno razčlenjen.
Izberite Ustvari povezovalnik.

Povezovalnik mora biti ustvarjen brez sporočenih napak ali opozoril.
Posodabljanje aplikacije za uporabo storitve Azure Cognitive Search: terenska zbirka znanja
Mateja lahko zdaj uporabi povezovalnik po meri v aplikaciji. Toda najprej potrebuje ključ, ki ji podeljuje pravice, potrebne za povezovanje s storitvijo Azure Cognitive Search. Patricija pridobi ključ na strani Ključi za storitev v portalu Azure in ga posreduje Mateji.

Mateja uredi aplikacijo v storitvi Power Apps Studio in izvede opravila po naslednjih navodilih:
Odprite aplikacijo VanArsdelApp za urejanje.
V meniju Pogled izberite Viri podatkov, nato pa izberite Dodaj podatke.

V polje iskanje pod možnostjo Izbira vira podatkov vnesite Van. Naveden mora biti povezovalnik VanArdelKBConnector.

Izberite povezovalnik VanArdelKBConnector. V podoknu VanArdelKBConnector vnesite ključ, ki ga je skrbnik, v tem primeru Patricija, zagotovil za storitev iskanja, nato pa izberite Poveži.

V meniju Datoteka shranite in zaprite aplikacijo, nato pa jo spet odprite. Morda boste pozvani, da avtorizirate uporabo povezovalnika po meri, ko se aplikacija spet odpre.
Opomba
Ta korak je obvezen za omogočanje povezovalnika po meri.
V podoknu Drevesni pogled razširite zaslon Zbirka znanja in izberite kontrolnik TextSearchBox2. Vnesite naslednjo formulo za dejanje OnChange.
If(!IsBlank(TextSearchBox2.Text), ClearCollect(azResult, VanArsdelKBConnector.Query({search: TextSearchBox2.Text}).value))Ta formula prikliče operacijo Poizvedba povezovalnika po meri za elemente, ki se ujemajo z izrazom, ki ga uporabnik vnese v iskalno polje. Rezultati se shranijo v zbirki z imenom azResult.
V podoknu Drevesni pogled pod zaslonom Zbirka znanja izberite kontrolnik BrowseGallery2. Nastavite lastnost Elementi na azResult.
Razširite kontrolnik BrowseGallery2 in odstranite kontrolnik Image4.
Izberite kontrolnik Title2. Nastavite naslednje lastnosti:
- Besedilo: ThisItem.Subject
- X: 24
- Širina: Parent.TemplateWidth - 104
Izberite kontrolnik Subtitle2. Nastavite lastnost Besedilo na ThisItem.Body.
Izberite F5 za predogled aplikacije. Na zaslonu Zbirka znanja vnesite iskalni izraz in nato izberite Enter. Prikazani bi morali biti ujemajoči se članki iz zbirke znanja.

Opomba
Zaslon s podrobnostmi še ni bil ustvarjen, zato izbira ikone > poleg članka ne deluje.
Zaprite okno za predogled in se vrnite v Power Apps Studio.
V podoknu Drevesni pogled z desno tipko miške kliknite zaslon PartDetails in izberite Podvoji zaslon. To dejanje bo dodalo še en zaslon v aplikacijo, imenovan PartDetails_1.

V podoknu Drevesni pogled preimenujte zaslon PartDetails_1 na KnowledgebaseDetails.
Izberite kontrolnik LblAppNameX na zaslonu; nastavite lastnost Besedilo na "Podrobnosti članka" (vključno z narekovaji).
V podoknu Drevesni pogled izberite kontrolnik DetailFormX na zaslonu. Nastavite naslednje lastnosti:
- DataSource: azResult
- Element: BrowseGallery2.Selected
Opomba
BrowseGallery2 je galerija za brskanje na zaslonu Zbirka znanja. V vaši aplikaciji lahko ima ta galerija drugačno ime.
V podoknu Drevesni pogled razširite obrazec DetailFormX in spremenite imena naslednjih kontrolnikov podatkovnih kartic:
- Name_DataCard1_1: Name_DataCard
- CategoryID_DataCard1_1: Subject_DataCard
- Overview_DataCard1_1: Overview_DataCard
- Price_DataCard1_1: Body_DataCard
Izbrišite kontrolnika NumberInStock_DataCard1_1 in Image_DataCard1_1.
Izberite kontrolnik Name_DataCard. Nastavite lastnost Privzeto na ThisItem.Name.
Izberite kontrolnik Subject_DataCard. Nastavite naslednje lastnosti:
- DataField: "Subject"
- DisplayName: "Subject"
- Privzeto: ThisItem.Subject
Izberite kontrolnik Overview_DataCard. Nastavite lastnost Privzeto na ThisItem.Overview.
Izberite kontrolnik Body_DataCard. Nastavite naslednje lastnosti:
- DataField: "Body"
- DisplayName: "Body"
- Privzeto: ThisItem.Body
Izberite kontrolnik DataCardValueX v kontrolniku Body_DataCard. Nastavite lastnost Besedilo na Parent.Default.
Spremenite velikost vseh kontrolnikov podatkovnih kartic, da jih razporedite po zaslonu.

V glavi zaslona izberite puščico nazaj. Spremenite lastnost dejanja OnSelect na Navigate(Knowledgebase, ScreenTransition.None).
V podoknu Drevesni pogled izberite zaslon Zbirka znanja in nato izberite kontrolnik BrowseGalleryX. Spremenite lastnost dejanja OnSelect na Navigate(KnowledgebaseDetails, ScreenTransition.None). To dejanje prikaže zaslon s podrobnostmi za članek zbirke znanja, ko uporabnik izbere ikono > za vnos na zaslonu za brskanje.
Shranite aplikacijo.
Izberite F5 za predogled aplikacije. Na zaslonu Zbirka znanja vnesite iskalni izraz in nato izberite Enter. Izberite članek in potrdite, da so njegove podrobnosti prikazane. Potrdite, da ikona Nazaj vrne uporabnika na zaslon za brskanje.
Zaprite okno za predogled in se vrnite v Power Apps Studio.
Mateja, Svetlana in Patricija so uspešno vključile spletni API in Azure Cognitive Search v aplikacijo.
Povratne informacije
Pošlji in prikaži povratne informacije za