Dela via


Kapitel 6: Använda webb-API i appen

Maria och Kiana kan nu kombinera appen med webb-API:et. Innan de går vidare beslutar de sig dock för att rådgöra med Preeti, IT-verksamhetschefen.

Förstå kraven för IT-verksamhetschefen för webb-API

Preeti är orolig för att appen och webb-API:et ska vara säkra eftersom de ger åtkomst till känsliga data som lagras i de olika databaserna. Preeti vill ha garantier för att autentisering och auktorisering kommer att inkluderas i syfte att förhindra obevakad åtkomst till information. Preeti är också medvetet om att företaget snabbt förser företaget med information om hur man hanterar kunder, avtalade tider, delar och kunskapsbasen kommer troligen att öka exponentiellt inom kort. Därför måste lösningen vara skalbar.

Kiana förklarar för Preeti att webb-API för närvarande implementeras med Azure App Service. Den här tjänsten stöder ett antal autentiseringsleverantörer som Preeti kan konfigurera med hjälp av Azure-portalen. Preeti är särskilt intresserad av Microsoft Entra ID eftersom VanArsdel vill distribuera det här autentiseringsformuläret till många av sina andra företagssystem inom en snar framtid.

App Service-autentiseringskonfiguration.

App Service ger även horisontell och lodrät skalbarhet. Om det behövs kan Preeti skala upp de resurser som är tillgängliga för webb-API:et genom att uppgradera App Service-planen för webbprogrammet:

App Service skala upp.

Preeti kan också se till att systemet skalas ut genom att konfigurera automatisk skalning. Med App Service kan en verksamhetsansvarig definiera regler som fastställer under vilka villkor systemet ska skalas ut över fler instanser när belastningen ökar, eller tillbaka igen som belastningsutjämning. Preeti kan också konfigurera förebyggande automatisk skalning så att den sker enligt ett schema:

App Service skala ut.

En viktig del av rollen som IT-verksamhetschefen är att ha ett öga på hur system kan utvecklas och att säkerställa att de underliggande supportstrukturerna kommer att hantera framtida expansion och förändringar. Preeti vet att webb-API:et som utvecklats av Kiana kan utökas och återanvändas av andra VanArsdel-system i framtiden. Preeti måste kunna hantera och kontrollera hur utvecklare begär användning av webb-API, skyddar det som en värdefull resurs och övervakar användningen. Därför bestämmer sig Preeti för att skydda webb-API:t bakom Azure API Management-tjänsten.

API Management ger ett extra säkerhetslager till ett webb-API och möjliggör detaljerad övervakning och kontroll över vilka klienter som har åtkomst till vilka åtgärder. Med hjälp av API Management kan Preeti hantera resursutnyttjande och begränsa användning av lågprioriterade klienters prestanda för att se till att viktiga appar med högre prioritet hanteras snabbare.

Information om de tjänster som API Management tillhandahåller finns i Om API Management.

Skapa en API Management-tjänst

Preeti skapade API Management-tjänst via Azure-portalen genom att följa stegen nedan:

  1. Logga in på Azure-portalen och på sidan Start, välj Skapa en resurs.

    Azure portal-hemsida.

  2. I textrutan Sök på Marketplace anger du API Management och väljer sedan Retur.

  3. På sidan API Management, välj Skapa.

    Azure Create API Management Service-sida.

  4. På sidan Skapa API Management ange följande värden och välj sedan Granska + skapa:

    • Prenumeration: Välj din prenumeration
    • Resursgrupp: webapi_rg (det här är samma resursgrupp som du skapade för App Service)
    • Region: Välj närmaste region
    • Resursnamn: Ange ett unikt namn för tjänsten
    • Organisationsnamn: VanArsdel
    • E-post för administratör: itadmin@vanarsdel.com
    • Prissättningsnivå: Utvecklare (inget SLA)

    Anteckning

    Använd inte prisnivån Utvecklare för ett produktionssystem.

    Ny sida för API-hanteringstjänst.

  5. På valideringssidan, välj Skapa och vänta medan API Management-tjänsten skapas.

    Anteckning

    Det kan ta 30 minuter eller mer för API Management-tjänsten att etableras. Ha tålamod.

Publicera webb-API:et via API Management

När API Management-tjänsten skapades publicerade Preeti webb-API:t för att göra det tillgängligt för andra tjänster och program med hjälp av följande steg:

  1. Gå till API Management-tjänsten på Azure-portalen.

  2. På sidan API Management-tjänsten i den vänstra rutan under API:er, välj API:er:

    Sidan API Management-tjänst. Välj API: er.

  3. I fönstret Lägg till ny API väljer du OpenAPI:

    Sidan API Management-tjänst. Välj OpenAPI.

  4. I dialogrutan Skapa från OpenAPI specifikation ange följande värden och välj Skapa:

    • OpenAPI specifikation: https://<webapp name>.azurewebsites.net/swagger/v1/swagger.json, där <webapp name> är namnet på apptjänsten som är värd för ditt webb-API
    • Visningsnamn: Fälttekniker API
    • Namn: field-engineer-api
    • Suffix för API-URL: Lämna tomt
    • Bas-URL: Använd standard-URL:en

    Skapa API från OpenAPI specifikation.

  5. När fälttekniker API har skapats markerar du fliken Inställningar för API, ange Webbtjänst-URL till https://<webapp name>.azurewebsites.net och välj Spara:

    Konfigurera API-inställningar.

  6. På fliken Test, välj GET api/Appointments URI och välj Skicka:

    Testa GetAppointments API.

  7. Kontrollera att förfrågan lyckas (HTTP-returkoden är 200 OK) och att den returnerar ett resultat som innehåller en lista över avtalade tider i svarstexten:

    Svar från testning av GetAppointments API.

Ansluta till API Management från appen

Nu kan Kiana och Maria arbeta tillsammans för att ansluta appen som skapats med Power Apps till webb-API:et via API Management-tjänsten.

Den första uppgiften är att skapa en anpassad anslutning som appen använder för att kommunicera med API Management. Detta innebär att exportera API:et till Power Apps-miljö som används för att skapa appen, vilket Kiana gör så här:

  1. Gå till sidan för API-hanteringstjänsten som Preeti skapade i Azure-portalen.

  2. I den vänstra rutan under API:er, välj API:er.

  3. Välj ellips-knappen för fälttekniker API och välj Exportera.

    Exportera webb-API: et.

  4. I rutan Exportera API, välj Power Apps och Power Automate:

    Exportera webb-API till Power Apps.

  5. I rutan Exportera API till PowerApps, välj Power Apps-miljön där du skapade prototypappen (Maria i följande bild) och välj sedan Exportera.

    Exportera till Marias Power Apps miljö.

  6. När API:et har exporterats väljer du fälttekniker API. På sidan Inställningar bläddrar du nedåt till avsnittet Prenumerationer, rensa Prenumeration som krävs och välj sedan Spara.

    Avmarkera abonnemang krävs.

Prototypappen använde Excel-arbetsböcker för datakällorna. Nu när den anpassade kopplingen för webb-API är tillgänglig utför Maria följande steg för att lägga till kontakten i appen:

  1. Logga in på Power Apps.

  2. I den vänstra navigeringrutan expanderar du Data och väljer Anpassade anslutningsprogram. Den anpassade kopplingen field-engineer-api bör anges. Välj Skapa anslutning.

    Skapa en ny anpassad kontakt.

  3. I dialogrutan field-engineer-api, välj Skapa.

    Skapa FieldEngineerAPI-anslutning.

  4. När anslutningen har skapats kontrollerar du att den visas i listan över tillgängliga anslutningar.

    Visa tillgängliga anslutningar.

  5. I den vänstra rutan, välj Appar, välj VanArsdelApp och välj Redigera.

    Redigera VanArsdel-appen.

  6. I den vänstra rutan, välj fliken Data. Välj Lägg till data, välj ellips-knappen för Anslutningsprogram och välj sedan Uppdatera.

    Uppdatera datakällor.

  7. I listan över anslutningsprogram, välj anslutningsprogrammet field-engineer-api.

    Visa kontakter.

  8. I dialogrutan field-engineer-api, välj anslutningsprogrammet field-engineer-api.

    Lägg till FieldEngineerAPI-anslutning.

  9. I rutan Data verifiera att anslutningsprogrammet FieldEngineerApi anges.

    FieldEngineerAPI-anslutning har lagts till.

Uppdatera appen så att anslutningsprogrammet används: Lagerhantering för fält

Nu när anslutningen har lagts till i appen kan Maria ändra skärmarna så att de används för att ersätta Excel-arbetsböckerna. Detta innebär att du arbetar metodiskt genom varje skärm och datakälla. Du bör inte göra några andra ändringar. Maria börjar med skärmarna BrowseParts och PartDetails enligt följande:

  1. På skärmen Start för appen, välj knappen Delar. Ange åtgärdsegenskapen OnSelect till följande formel.

    ClearCollect(partsCollection, FieldEngineerAPI.getapiboilerparts());
    
    Navigate(BrowseParts, ScreenTransition.Fade)
    

    Funktionen ClearCollect skapar en ny samling med namnet partsCollection och fyller den med de data som skapas när åtgärden getboilerparts samlas i anslutningen FieldEngineerAPI.

    Skapa partsCollection-variabel.

    Anteckning

    Det är bra att hämta data till en samling och hänvisa till den samlingen från skärmar som behöver informationen. Med den här metoden kan du spara olika skärmar från att upprepade gånger köra samma fråga och hämta samma data.

  2. Välj F5 om du vill förhandsgranska appen.

  3. På skärmen Start, välj Delar. Den här åtgärden skapar partsCollection-samlingen. Stäng förhandsgranskningsfönstret och återgå till Power Apps Studio.

    Anteckning

    Syftet med det här steget är att du ska kunna visa data medan du redigerar skärmen BrowseParts i följande steg.

  4. Välj kontrollen BrowseGallery1 på skärmen BrowseParts. I formeln för egenskapen Items ersätter du referensen till [@Table1] datakälla till partsCollection.

    Ändringen resulterar i vissa fel. Detta beror på att fältnamnen i den ursprungliga Excel-arbetsboken använde versaler (Namn, CategoryID och Översikt), medan egenskaperna som returneras i brödtexten i webb-API-svaret namnges med gemener. Ändra dessa referenser så att gemena används. Formeln ska se ut som följande.

    SortByColumns(Search(FieldEngineerApi.getapiboilerparts(), TextSearchBox1.Text, "name", "categoryId", "overview"), "name", If(SortDescending1, Descending, Ascending))
    

    Uppdateringsformel för bläddringsskärmen.

  5. I rutan Trädvy, välj kontrollen IconRefresh1. Ändra åtgärden OnSelect till formeln ClearCollect(partsCollection, FieldEngineerAPI.getapiboilerparts()).

    Anteckning

    Den ursprungliga formeln för den här åtgärden anropar funktionen Uppdatera för att fylla i data på nytt genom att använda anslutningen till den ursprungliga datakällan. Du kan inte använda Uppdatera med en anslutning som kör en funktion för att hämta data så att den inte fungerar med FieldEngineerApi.getapiboilerparts(). Lösningen i det här steget fyller i samlingen partsCollection med de senaste data.

  6. I rutan Trädvy visar du kontrollen BrowseGallery1 och markerar kontrollen Body1. Ändra egenskapen Text till ThisItem.overview.

  7. I rutan Trädvy, välj kontrollen Subtitle1. Ändra egenskapen Text till ThisItem.categoryId.

  8. I rutan Trädvy, välj kontrollen Title. Ändra egenskapen Text till ThisItem.name.

  9. I fönstret Trädvy, välj kontrollen DetailForm1 på skärmen PartDetails. Ändra egenskapen DataSource från [@Table1] till partsCollection.

  10. I rutan Trädvy välj kontrollen Name_DataCard1 under DetailForm1. Ändra egenskapen Standard till ThisItem.name.

    Ändra standard för datakortet Namn.

  11. Ändra egenskapen Standard för kontrollen CategoryID_DataCard1 till ThisItem.categoryId.

  12. Ändra egenskapen Standard för kontrollen Overview_DataCard1 till ThisItem.overview.

  13. Ändra egenskapen Standard för kontrollen Price_DataCard1 till ThisItem.price.

  14. Ändra egenskapen Standard för kontrollen NumberInStock_DataCard1 till ThisItem.numberInStock.

  15. Ändra egenskapen Standard för kontrollen Bild_DataCard1 till ThisItem.imageUrl.

  16. I den vänstra rutan på fliken Data högerklickar du på dataanslutningen Table1 och väljer Ta bort för att ta bort den från appen. Denna anslutning krävs inte längre.

    Ta bort Table1-anslutningen.

  17. Spara appen.

    Anteckning

    Du kan snabbt spara appen utan att använda Arkiv-menyn genom att välja Ctrl+S.

  18. Välj F5 om du vill förhandsgranska appen. Skärmarna för Bläddra delar och Delinformation ska fungera exakt som tidigare, förutom den här gången hämtar de data från InventoryDB Azure SQL-databas visa webb-API, i stället för från en lokal Excel-fil.

  19. Stäng förhandsgranskningsfönstret och återgå till Power Apps Studio.

Uppdatera appen för att använda anslutningsprogrammet: Schemaläggning och anteckningar för fält

Maria fortsätter med skärmarna BrowseAppointments, AppointmentDetails och EditAppointment. De data som visas för dessa skärmar har för närvarande sitt ursprung i tabellen Avtalade tider i en annan Excel-arbetsbok.

  1. På skärmen Start för appen, ange åtgärden OnVisible till följande formel.

    ClearCollect(appointmentsCollection, Sort(Filter(FieldEngineerAPI.getapiappointments(), DateDiff(Today(), startDateTime) >= 0), startDateTime))
    

    Med den här formeln hämtas data om avtalade tider till samlingen appointmentsCollection. De avtalade tider filtreras för att hämta schemalagda besök på eller efter det aktuella datumet.

  2. Markera Etikett-kontrollen som visar tiden för nästa avtalad tid. Ange egenskapen Text till Text(First(appointmentsCollection).startDateTime, ShortTime24).

  3. Markera Etikett-kontrollen som visar datumet för nästa avtalad tid. Ange egenskapen Text till Text(First(appointmentsCollection).startDateTime, LongDate).

  4. Markera Etikett-kontrollen som visar kundnamnet för nästa avtalade tid. Ange egenskapen Text till First(appointmentsCollection).customer.name.

  5. Välj F5 om du vill förhandsgranska appen. På skärmen Start, välj Avtalad tid. Den här åtgärden skapar appointmentsCollection-samlingen. Stäng förhandsgranskningsfönstret och återgå till Power Apps Studio.

  6. I fönstret Trädvy, välj kontrollen BrowseAppointmentsGallery på skärmen BrowseAppointments. Ändra formeln i egenskapen Items till följande formel.

    Sort(Filter(appointmentsCollection, StartsWith(customer.name, TextSearchBox1\_1.Text)), startDateTime)
    

    Med den här formeln filtreras data som visas på skärmen efter kundnamn, vilket gör att användaren kan ange namnet på en kund. De avtalade tiderna visas i datum- och tidsordning.

  7. I rutan Trädvy visar du kontrollen BrowseAppointmentsGallery och markerar kontrollen Title1_1. Ändra Text-egenskapen enligt nedanstående.

    Text(ThisItem.startDateTime, LongDate)
    

    Den här formeln visar datumdelen i fältet startDateTime för den avtalade tiden.

  8. I rutan Trädvy visar du kontrollen BrowseAppointmentsGallery och markerar kontrollen Subtitle1_1. Ändra Text-egenskapen enligt nedanstående.

    Text(ThisItem.startDateTime, ShortTime24)
    

Den här formeln visar tidselementet för fältet startDateTime.

  1. I rutan Trädvy visar du kontrollen BrowseAppointmentsGallery och markerar kontrollen Body1_1. Ändra Text-egenskapen enligt nedanstående.

    ThisItem.customer.name
    
  2. I fönstret Trädvy, välj kontrollen IconRefresh1_1 på skärmen BrowseAppointments. Ange åtgärden OnSelect till följande formel.

    ClearCollect(appointmentsCollection, Sort(Filter(FieldEngineerAPI.getapiappointments(), DateDiff(Today(), startDateTime) >= 0), startDateTime));
    
  3. I rutan Trädvy visar du skärmen AppointmentDetails och markerar kontrollen DetailForm1_1. Ställ in egenskapenDataSource till appointmentsCollection.

  4. I rutan Trädvy, välj kontrollen IconEdit1. Ändra formeln i egenskapen DisplayMode för att testa samlingen appoinmentsCollection.

    If(DataSourceInfo(**appointmentsCollection**, DataSourceInfo.EditPermission), DisplayMode.Edit, DisplayMode.Disabled)
    
  5. I rutan Trädvy visar du skärmen DetailForm1_1 och markerar kontrollen Kundnamn_DataCard1. Ändra egenskapen Standard till ThisItem.customer.name.

  6. Ändra egenskaperna för Standard för återstående datakort enligt följande:

    • Kundadress_DataCard1: ThisItem.customer.address
    • Kontaktnummer_DataCard1: ThisItem.customer.contactNumber
    • Probleminformation_DataCard1: ThisItem.problemDetails
    • Status_DataCard1: ThisItem.appointmentStatus.statusName
    • Anteckningar_DataCard1: ThisItem.notes
    • Bild_DataCard1_1: ThisItem.imageUrl
  7. I rutan Trädvy visar du skärmen EditAppointment och markerar kontrollen EditForm1. Ställ in egenskapenDataSource till appointmentsCollection.

  8. I rutan Trädvy visar du kontrollen EditForm1 och markerar kontrollen Customer Name_DataCard3. Ändra egenskapen Standard till ThisItem.customer.name.

  9. Ändra egenskaperna för Standard för återstående datakort enligt följande:

  • Kontaktnummer_DataCard2: ThisItem.customer.contactNumber; ändra dessutom egenskapen MaxLength till 20
  • Probleminformation_DataCard2: ThisItem.problemDetails
  • Status_DataCard5: ThisItem.appointmentStatus.statusName
  • Anteckningar_DataCard3: ThisItem.notes
  • Bild_DataCard2: ThisItem.imageUrl
  1. I fönstret Trädvy visar du kontrollen Problem Details_Card2. Byt namn på fält DataCardValueX (X kommer att vara ett nummer) under den här kontrollen ProblemDetailsValue. Upprepa proceduren för DataCardValueX-kontrollerna i följande datakort:

    • Status_DataCard5: StatusValue
    • Anteckningar_DataCard3: NotesValue

    Anteckning

    Bild-kontrollen kommer att ses över i nästa kapitel.

  2. Välj ProblemDetailsValue och ange egenskapen MaxLength till 100.

  3. I rutan Trädvy visar du kontrollen IconAccept1 på skärmen EditAppointment. Ange åtgärdsegenskapen OnSelect till följande formel.

    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);
    

    Den här formeln anropar PUT-åtgärden för den avtalade tiden-kontrollen i webb-API:et. Den skickar den avtalade tidens ID för den aktuella avtalade tiden som den första parametern, följt av den information som användaren kan ha ändrat på skärmen. Informationen skickas som ett JSON-objekt. Instruktionen Ta bort, Ange och Samla in uppdaterar samlingen appointmentsCollection med data som sparas i databasen.

    Anteckning

    Använd inte funktionen ClearCollect för att radera och uppdatera hela samlingen i sådana situationer, eftersom det skulle vara slösaktigt om—till exempel—bara en post har ändrats.

  4. I rutan Trädvy visar du kontrollen IconAccept1 på skärmen EditAppointment. Ange åtgärdsegenskapen OnSelect till följande.

    ResetForm(EditForm1);
    
    Navigate(AppointmentDetails, ScreenTransition.None);
    
  5. I den vänstra rutan på fliken Data högerklickar du på dataanslutningen Avtalade tider och väljer Ta bort för att ta bort den från appen.

  6. Spara appen.

  7. Välj F5 om du vill förhandsgranska appen. Från skärmen Start, gå till skärmen Avtalade tider, välj och redigera ett möte och spara sedan ändringarna. Kontrollera att den avtalade tiden har uppdaterats.

  8. Stäng förhandsgranskningsfönstret och återgå till Power Apps Studio.

Skapa Azure Cognitive Search-tjänst för fältkunskapsbasen

Skärmen kunskapsbasen i appen är för närvarande inte ansluten till någon datakälla. Webb-API innehåller åtgärder för att fråga efter och uppdatera tabellerna Tips, BoilerParts och Tekniker i KnowledgeDB-databasen. Syftet med skärmen Fråga i appen är att stödja sökningar genom alla dessa tabeller. Datamängden i dessa tabeller kommer troligen att öka snabbt, så Maria, Kiana och Preeti bestämmer sig för att distribuera Azure Cognitive Search för att kunna använda den här funktionen. En app kan skicka frågor och ta emot resultat från Azure Cognitive Search via en anpassad anslutning.

Azure Cognitive Search fungerar bäst om de data som ska genomsökas finns i en enda databasentitet. Kiana skapar en vy i KnowledgeDB-databasen med en enhetlig vy av tabellerna Tips, BoilerParts och Tekniker enligt följande:

  1. I Azure-portal, gå till sidan KnowledgeDB SQL Database.

  2. I den vänstra rutan, välj Frågeredigeraren och logga in på databasen som sqladmin med lösenordet Pa55w.rd.

    Logga in på Azure SQL Database.

  3. I frågefönstret anger du följande instruktion. Välj sedan Kör.

    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
    

    Skapa vyn "Kunskap"

    Kontrollera att vyn Kunskap har skapats.

  4. I den vänstra rutan väljer du Anslutningssträngar. Lägg märke till anslutningssträngen ADO.NET som du behöver när du konfigurerar Azure Cognitive Search.

    ADO.NET-anslutningssträng för KnowledgeDB-databasen.

När Preeti arbetar med Kiana konfigureras en ny instans av Azure Cognitive Search-tjänsten för att utföra sökningar på rader i vyn Kunskap enligt följande:

  1. På sidan Start i Azure-portalen, välj + Skapa en resurs, ange Azure Cognitive Search, välj Ange och välj Skapa.

    Skapa Azure Cognitive Search-tjänsten.

  2. På sidan Ny söktjänst ange följande inställningar och välj sedan Granska + skapa:

    • Prenumeration: Välj din Azure-prenumeration
    • Resursgrupp: webapi_rg
    • Tjänstnamn: Ange ett unikt namn för tjänsten
    • Platsnamn: Välj närmaste region
    • Prisnivå: Gratis
  3. På valideringssidan, välj Skapa och vänta medan tjänsten etableras.

  4. Gå till sidan för den nya söktjänsten, välj Översikt, notera URL (du behöver det här senare när du skapar den anpassade kopplingen för Power Apps) och välj sedan Importera data.

    Sidan Översikt över söktjänster.

  5. På sidan Importera data i listrutan Datakälla, välj Azure SQL Database.

    Välj Azure SQL Database.

  6. På sidan Anslut till dina data ange följande inställningar:

    • Datakälla: Azure SQL Database
    • Namn på datakälla: knowledgebase
    • Datakälla: Ange Azure SQL Database-anslutningssträngen för KnowledgDB-databasen som du registrerade tidigare. Se till att ange lösenordet till Pa55w.rd
    • Lämna standardvärden för fälten Användar-ID och Lösenord, dessa objekt hämtas från anslutningssträngen
  7. Välj Testanslutning. Kontrollera att testet lyckas genom att markera [Kunskap] i listrutan Tabell/Visa och välj Nästa: Lägg till kognitiva kunskaper (valfritt).

    Ange sökvyn.

  8. På sidan Lägg till kognitiva kunskaper (valfritt), välj Hoppa till: Anpassa målindex.

  9. På sidan Anpassa målindex väljer du Hämtningsbar för alla kolumner och Sökbar för Ämne, Brödtext, Namn och Översikt. Välj Nästa: Skapa en indexerare.

    Anpassa målindexet.

  10. På sidan Skapa en indexerare, ändra indexerarens Namn till knowledgebase-indexer. För Schema, välj Varje timme ange kolumnen Hög vattenstämpelkolumn till Id och Skicka:

    Skapa indexeraren.

  11. Testa indexeraren på sidan Översikt för söktjänsten, välj Sökutforskaren:

    Välj Sökutforskare.

  12. I fältet Fråga sträng, ange ett ord att söka efter i kunskapsbasen och välj sedan Sök. Söktjänsten ska generera en lista över dokument med en matchning i fälten Ämne, Brödtext, Namn eller Översikt och visa dem i rutan Resultat. Gör en anteckning av Begär URL och exemplet Resultat. Du behöver dessa objekt senare som en exempelförfrågan och svar när du ställer in Power Apps anpassat anslutningsprogram.

    Sökfrågeresultat.

Skapa anpassat anslutningsprogram för Azure Cognitive Search-tjänst

Kiana kan nu skapa en anpassad anslutning som Power Apps använder för att skicka sökbegäran till söktjänsten. Kiana gör detta med Power Apps Studio enligt följande:

  1. Logga in på Power Apps.

  2. I den vänstra navigeringrutan expanderar du Data och väljer Anpassade anslutningsprogram. I den högra rutan, välj, select + Nytt anpassat anslutningsprogram och välj Skapa från början:

    Ny anpassad kontakt.

  3. I dialogrutan Skapa från tomt ange namnet på det nya anslutningsprogrammet till VanArsdelKBConnector och välj Fortsätt:

    Skapa kunskapsbasanslutning.

  4. På sidan Allmän information, ange en beskrivning och ange Schema till HTTPS. I rutan Värdar anger du URL för söktjänsten (du antecknade den här URL:en tidigare), men utan https:// prefix och välj Säkerhet.

    Sök servicekontakt Allmän sida.

  5. På sidan Säkerhet i listrutan Autentisering, välj API-nyckel. I fältet Parameteretikett, ange api-key. I fältet Parameternamn, ange api-key. Välj Definition.

    Säkerhetssida för söktjänstkontakt.

  6. På sidan Definition väljer du Ny åtgärd. I fältet Sammanfattning, ange Fråga. I fältet Beskrivning, ange Fråga kunskapsbasen. Ange Åtgärds-ID i fältet Fråga. Under Fråga, välj + Importera från exempel.

    Definitionssida för söktjänstanslutning.

  7. I dialogrutan Importera från exempel ange följande värden och välj Importera:

    • Verb: GET
    • URL: Ange en exempel-URL för förfrågan som du antecknade när du provade söktjänsten i sökutforskaren tidigare
    • Rubriker: Content-type

    Importera definition från exempelförfrågan.

  8. Tillbaka på sidan Definition bläddrar du nedåt till avsnittet Fråga markerar du ellips-knappen bredvid söka och välj sedan Redigera.

    Redigera definition av sökbegäran.

  9. På redigeringsskärmen, i avsnittet Parametrar på fältet Standardvärde ange en asterisk (*). Lämna de andra fälten som standardvärden och välj sedan Tillbaka.

    Ange standardvärde för sökning.

  10. På sidan Definition i avsnittet Fråga markerar du ellips-knappen bredvid api-version och välj sedan Redigera.

    Redigera API-versionen.

  11. På redigeringsskärmen, i avsnittet Parametrar i fältet Standardvärde ange 2020-06-30-Preview (detta är den version som är associerad med den aktuella versionen av Azure Cognitive Search. Du kan se versionen i webbadressen för begäran som du noterade tidigare). Ange Krävs till Ja och ange Synlighet till intern. Lämna de andra fälten som standardvärden och välj sedan Tillbaka.

    Ställ in API-värden för sökparametrar.

  12. På sidan Definition, bläddra ned till avsnittet Svar och välj + Lägg till standardsvar.

    Lägg till standard svar definition.]

  13. I dialogrutan Importera från exempel i fältet Rubriker, ange texten Innehållstyp. I fältet Brödtext, ange exempelresultaten som du registrerade när du testade söktjänsten och välj sedan Importera.

    Importera svarsmeddelandet från ett exempel.

  14. På sidan Definition, välj svaret standard.

    Välj standardsvar.

  15. I fältet Beskrivning för svaret Innehållstyp, ange application/json och välj Tillbaka.

    Ställ in svarsmeddelandets rubrikinnehåll.

    Anteckning

    Avsnittet Brödtext på den här sidan ska fälten för svaret visas, till exempel Brödtext, Id, Namn, Översikt och Ämne om parsning har slutförts.

  16. Välj Skapa anslutningsprogram.

    Skapa Azure Cognitive Search-anslutaren.

Kopplingen ska skapas utan att det rapporterar några fel eller varningar.

Uppdatera appen att använda Azure Cognitive Search: fältkunskapsbasen

Nu kan Maria använda den anpassade kopplingen i appen. Men först kräcs en nycke som ger Maria de privilegier som krävs för att ansluta till tjänsten Kognitiv sökning i Azure. Preeti hämtar nyckeln från sidan Nycklar för tjänsten på Azure-portalen och ger den till Maria.

Sök tjänstnyckel i Azure-portalen.

Maria redigerar appen i Power Apps Studio och utför följande uppgifter:

  1. Öppna appen VanArsdelApp för redigering.

  2. I menyn Vy, välj Datakällor och välj sedan Lägg till data.

    Lägg till datakällan i appen.

  3. I rutan Sök, under Välj en datakälla, ange Van. Anslutningsprogrammet VanArdelKBConnector bör anges.

    Sök efter Azure Cognitive Search-anslutningen.

  4. Välj anslutningsprogrammet VanArdelKBConnector. I rutan VanArdelKBConnector anger du den nyckel som Preeti har för söktjänsten och väljer sedan Anslut .

    Ange API-nyckeln.

  5. Spara och stäng appen på Arkiv-menyn och öppna den sedan igen. Du kan bli uppmanad att auktorisera användning av den anpassade kopplingen när appen öppnas på nytt.

    Anteckning

    Det här steget är nödvändigt för att aktivera den anpassade kopplingen.

  6. I rutan Trädvy visar du skärmen Knowledgebase och markerar kontrollen TextSearchBox2. Ange följande formel för åtgärden OnChange.

    If(!IsBlank(TextSearchBox2.Text), ClearCollect(azResult, VanArsdelKBConnector.Query({search: TextSearchBox2.Text}).value))
    

    Med den här formeln anropas åtgärden Fråga för den anpassade kopplingen som söker efter objekt som matchar termen användartyperna i sökrutan. Resultaten lagras i en samling med namnet azResult.

  7. I rutan Trädvy under Knowledgebase och markerar kontrollen BrowseGallery2. Ange egenskapen Items till azResult.

  8. Expandera kontrollen BrowseGallery2 och ta bort kontrollen Image4.

  9. Välj kontrollen Title2. Ange följande egenskaper:

    • Text: ThisItem.Subject
    • X: 24
    • Bredd: Parent.TemplateWidth - 104
  10. Välj kontrollen Subtitle2. Ange egenskapen Text till ThisItem.Body.

  11. Välj F5 om du vill förhandsgranska appen. På skärmen Kunskapsbas, ange ett sökord och välj Retur. Matchande artiklar från kunskapsbasen ska visas.

    Kunskapsbasfråga i appen.

    Anteckning

    Informationsskärmen har inte skapats ännu, så att välja > ikonen bredvid en artikel fungerar inte.

  12. Stäng förhandsgranskningsfönstret och återgå till Power Apps Studio.

  13. I rutan Trädvy högerklicka på skärmen PartDetails och välj Duplicera skärm. Den här åtgärden lägger till ytterligare en skärm i appen PartDetails_1.

    Duplicera skärmen PartDetails.

  14. I fönstret Trädvy byt namn på skärmen PartDetails_1 till KnowledgebaseDetails.

    Välj kontrollen LblAppNameX på skärmen. Ange egenskapen Text till "Artikelinformation" (inklusive offerter).

  15. I rutan Trädvy visar du kontrollen DetailFormX på skärmen. Ange följande egenskaper:

    • DataSource: azResult
    • Objekt: BrowseGallery2.Selected

    Anteckning

    BrowseGallery2 är bläddringsgalleriet på skärmen kunskapsbas. Galleriet kan ha ett annat namn i programmet.

  16. I fönstret Träddvy, expandera formuläret DetailFormX, ändra sedan namnen på följande datakortskontroller:

    • Name_DataCard1_1: Name_DataCard
    • CategoryID_DataCard1_1: Subject_DataCard
    • Overview_DataCard1_1: Overview_DataCard
    • Price_DataCard1_1: Body_DataCard
  17. Ta bort kontrollerna NumberInStock_DataCard1_1 och Bild_DataCard1_1.

  18. Välj kontrollen Name_DataCard. Ange egenskapen Standard till ThisItem.Name.

  19. Välj kontrollen Subject_DataCard. Ange följande egenskaper:

    • DataField: "Ämne"
    • DisplayName: "Ämne"
    • Standard: ThisItem.Subject
  20. Välj kontrollen Overview_DataCard. Ange egenskapen Standard till ThisItem.Overview.

  21. Välj kontrollen Body_DataCard. Ange följande egenskaper:

    • Datafält: "Brödtext"
    • DisplayName: "Brödtext"
    • Standard: ThisItem.Body
  22. Välj kontrollen DataCardValueX i kontrollen Body_DataCard. Ange egenskapen Text till Parent.Default.

  23. Ändra storlek på de olika datakortskontrollerna så att de sprids ut på skärmen.

    Skärmen ArticleDetails.

  24. Markera bakåtpilen i skärmhuvudet. Ändra åtgärdsegenskapen OnSelect till Navigate(Knowledgebase, ScreenTransition.None).

  25. I rutan Trädvy välj Knowledgebase och markerar kontrollen BrowseGalleryX. Ändra åtgärdsegenskapen OnSelect till Navigate(KnowledgebaseDetails, ScreenTransition.None). Den här åtgärden visar informationsskärmen för kunskapsbasartikeln när användaren väljer ikonen > för en post i bläddringsskärmen.

  26. Spara appen.

  27. Välj F5 om du vill förhandsgranska appen. På skärmen Kunskapsbas, ange ett sökord och välj Retur. Markera en artikel och kontrollera att informationen visas. Kontrollera att tillbaka-ikonen returnerar användaren till bläddringsskärmen.

  28. Stäng förhandsgranskningsfönstret och återgå till Power Apps Studio.

Maria, Hankk och Preeti har framgångsrikt infogat webb-API och Azure Cognitive Search i appen.