Kapitel 4. Datenquellen und Konnektoren
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Jede Geschäftsanwendung braucht eine Datenbank, die auch als Datenquelle bezeichnet wird, um die Daten zu speichern. OneDrive for Business, Microsoft SQL, Excel und Oracle sind einige Beispiele für häufig genutzte Datenbanken. Power Apps nutzt Microsoft Dataverse zum Speichern von Daten und bietet außerdem eine Reihe von Konnektoren, mit denen du dich mit verschiedenen externen Datenquellen verbinden kannst. In diesem Kapitel lernst du die Grundlagen von Power Apps Datenquellen und Konnektoren, ihre Architektur und ihre verschiedenen Typen kennen, die auf Power Apps Typen basieren.
Einführung in Datenquellen und Konnektoren
Daten sind das Herzstück eines jeden Unternehmens, das Informationen über seine Kunden und Mitarbeiter speichert. Diese Daten werden von vielen Geschäftsanwendungen in deinem Unternehmen benötigt, um Geschäftsentscheidungen zu treffen. Deshalb müssen sie irgendwo gespeichert und zentralisiert werden, damit die verschiedenen Geschäftsanwendungen mit ihnen kommunizieren und verschiedene Transaktionen wie Erstellen, Lesen, Aktualisieren und Löschen durchführen können.
Der Ort oder die Datenbank, in der die Geschäftsdaten gespeichert sind, wird als Datenquelle oder Datenbank bezeichnet, und der Kanal oder die Verbindung, über die diese Datenquelle mit den Geschäftsanwendungen kommuniziert, wird als Verbindung bezeichnet. Diese Verbindung zwischen deiner Unternehmenssoftware und der Datenquelle wird über eine API hergestellt, die als Middleware oder Brücke dient und als Connector bezeichnet wird (siehe Abbildung 4-1).
Verstehen wir das am Beispiel der LinkedIn-App. LinkedIn ist eine geschäfts- und beschäftigungsorientierte Social-Media-Plattform, die ihre Kunden- und Geschäftsdaten in der LinkedIn-Datenquelle speichert. Du kannst die Daten nur einsehen, wenn du gültige Anmeldedaten angibst und dich einloggst. Sobald du dich anmeldest, stellt die LinkedIn App im Hintergrund zunächst eine Verbindung mit der LinkedIn Datenquelle her, um deine Identität zu überprüfen, und ermöglicht dir dann den Zugriff auf die Daten über die LinkedIn App. Die Verbindung zwischen der LinkedIn-App und der LinkedIn-Datenquelle erfolgt über APIs oder Middleware, die die Eingaben der LinkedIn-App an die LinkedIn-Datenquelle weiterleitet und die Antwort der LinkedIn-Datenquelle zurück an die LinkedIn-App sendet.
APIs werden in der Regel verwendet, um die Kommunikation zwischen zwei unterschiedlichen Systemen herzustellen, die auf zwei verschiedenen Plattformen laufen und die Sprache des anderen nicht verstehen. Die beliebtesten und bekanntesten Datenformate, die APIs für die Datenübertragung verwenden, sind XML (Extensible Markup Language) und JSON (JavaScript Object Notation).
JSON wird häufiger verwendet und akzeptiert als XML, da es leichter ist, eine einfachere und leichter zu verstehende Syntax hat und Daten schneller überträgt.
Microsoft hat eine neue Komponente für entwickelt, die Connector genannt wird. Dabei handelt es sich um einen Wrapper um eine API, der alle API-Funktionen kapselt und eine einfache Benutzeroberfläche zum Senden und Empfangen von Daten bietet. Jetzt musst du nur noch den Konnektor der entsprechenden Datenquelle verwenden, die Eingabedaten senden und die Ausgabedaten erhalten; du musst dich nicht darum kümmern, wie die API entwickelt wird und funktioniert (siehe Abbildung 4-2).
Power Apps unterscheidet zwischen primären Datenquellen und sekundären Datenquellen. Die primäre Datenquelle ist die Hauptdatenbank, auf der alle Power Apps laufen und in der ihre Geschäftsdaten gespeichert sind. Dataverse ist zum Beispiel eine primäre Datenbank für eine modellgesteuerte App. Eine sekundäre Datenquelle ist eine zusätzliche oder externe Datenbank, die oft in Integrationsszenarien verwendet wird, in denen du externe Daten in die primäre Datenquelle bringen musst. In manchen Szenarien kann es mehrere primäre Datenbanken geben. Canvas-Apps können zum Beispiel SharePoint für die Dokumentenverwaltung und SQL Server für Kontakt- und Kontodaten nutzen.
Datenquellen für modellgesteuerte Apps
Modellgesteuerte Anwendungen können Daten nur in Microsoft Dataverse speichern. Modellgesteuerte Anwendungen brauchen keinen Connector, um sich mit Dataverse zu verbinden, da sie eng mit Dataverse gekoppelt sind (siehe Abbildung 4-3).
Du kannst modellgesteuerte Anwendungen auch mit externen (sekundären) Datenquellen über verschiedene Konnektoren wie Oracle, SQL Server, Salesforce, Twitter, Facebook, Adobe und Google integrieren. Diese Konnektoren bringen die Daten aus externen Datenquellen in Microsoft Dataverse. In manchen Fällen musst du die externen Daten nicht in Microsoft Dataverse speichern, sondern kannst sie direkt in deiner Business App abrufen.
Datenquellen für Canvas Apps
In Canvas-Apps hast du die Flexibilität, die Datenquelle für die Speicherung der App-Daten zu wählen. Die primäre Datenquelle kann entweder Microsoft Dataverse oder eine externe Datenbank wie Oracle, SQL Server, Salesforce, Twitter, Facebook, Adobe oder Google sein, wie in Abbildung 4-4 dargestellt.
Datenquellen für Canvas-Apps werden in drei Kategorien eingeteilt: Tabellen, KI-Modelle und Konnektoren.
Tische
Du wählst den Datenquellentyp Tabellen , wenn du Microsoft Dataverse als primäre Datenquelle verwenden möchtest. Tabellen zeigen die Liste aller Tabellen an, die in Microsoft Dataverse für die Umgebung enthalten sind, wie z.B. Konto, Kontakt, Gelegenheit, Telefonanruf, Termin. Du kannst auch eine neue Tabelle erstellen, indem du im Bereich "Datenquelle auswählen" auf "Neue Tabelle erstellen" klickst, wie in Abbildung 4-5 dargestellt.
Sobald du eine Dataverse-Tabelle aus der Liste auswählst, wie z. B. die in Abbildung 4-6 gezeigte Kontotabelle, wird sie der Datenquellenliste (im linken Bereich) hinzugefügt. Dann kannst du sie in deiner App verwenden, um mit ihren Daten herumzuspielen.
Du kannst nun die Tabelle Konto als Datenquelle für die Eigenschaft Items
der Galerie verwenden, um die Kontodaten in der App anzuzeigen, wie in Abbildung 4-7 zeigt.
KI-Modelle
Die Funktion KI-Modelle gibt Apps KI-Funktionen wie einen Visitenkartenleser, eine Stimmungsanalyse und einen Formularprozessor. KI-Modelle fungieren auch als Datenquellen und verarbeiten die von deiner App eingehenden Daten, um mithilfe einer Reihe von integrierten Algorithmen und maschinellen Lernfunktionen die entsprechenden Ergebnisse zu erzielen. Ein KI-Modell für die Stimmungsanalyse wird zum Beispiel darauf trainiert, geschriebenen Text zu verstehen und ihn in passende Stimmungen zu übersetzen. Es wird also ein positives Ergebnis liefern, wenn ich schreibe: "Ich hatte heute einen fantastischen Tag im Büro", und ein negatives, wenn ich schreibe: "Mir geht es heute nicht gut".
In Abbildung 4-8 sind Listen von KI-Modellen zu sehen, die als Datenquellen in einer Canvas-App verwendet werden können. Zur Veranschaulichung habe ich ein KI-Modell "Sentiment analysis" in die App eingefügt .
Ich habe der App einen neuen Bildschirm mit einigen Textfeldern, Beschriftungen und Symbolen hinzugefügt, wie in Abbildung 4-9 dargestellt. In die Textfelder können die Nutzer das Feedback zum Ereignis eingeben, die Beschriftungen zeigen das Ergebnis der Stimmungsanalyse an und die Symbole zeigen die Emoticons an, die auf dem Feedback basieren.
Ich habe den folgenden Power Fx-Ausdruck für die Eigenschaft Icon
des Icon-Steuerelements verwendet, um seinen Typ je nach Ergebnis der Stimmungsanalyse zu ändern, wie in Abbildung 4-10 dargestellt:
If( !IsBlank(Feedback1.Text), Switch( feedbackLabel1.Text, "positive", Icon.EmojiSmile, "negative", Icon.EmojiSad, Icon.EmojiNeutral ) )
Dieser Ausdruck besagt, dass, wenn die Benutzereingabe nicht leer und positiv ist, ein Smiley-Emoticon 😀 angezeigt wird; wenn sie negativ ist, wird ein trauriges Emoticon ☹ angezeigt; andernfalls wird ein neutrales Emoticon 😐 angezeigt.
Ich habe den folgenden Power Fx-Ausdruck auf die Eigenschaft Text
des Label-Steuerelements angewendet, um dessen Beschriftungsnachricht auf der Grundlage des Ergebnisses der Stimmungsanalyse zu ändern, wie in Abbildung 4-11 dargestellt:
If( !IsBlank(Feedback1.Text), Lower( 'Sentiment analysis'.Predict( Feedback1.Text, {Language: "en-us"} ).Document.TopSentiment.Name ), "feedback not shared" )
Dieser Ausdruck besagt, dass, wenn die Benutzereingabe nicht leer ist, die Gefühlslage (positiv, negativ, neutral usw.) angezeigt wird; andernfalls wird "Feedback nicht geteilt" angezeigt.
Mehr über Power Fx-Ausdrücke erfährst du in Kapitel 9.
Und wenn ich die App von Power Apps Studio in einem Webbrowser ausführe, wird das Ergebnis angezeigt: (siehe Abbildung 4-12).
Steckverbinder
Canvas-Anwendungen benötigen Konnektoren, wenn sie mit externen Datenquellen wie Oracle, SQL Server oder Salesforce kommunizieren müssen. Wie in Abbildung 4-13 zu sehen ist, gibt es verschiedene Konnektoren, die du verwenden kannst.
Für diese Demonstration habe ich den Microsoft Entra ID Connector verwendet, um einen neuen Benutzer in einer Microsoft Entra ID (ehemals Azure Active Directory) Datenquelle zu erstellen, wie in Abbildung 4-14 dargestellt.
Um einen neuen Benutzer in Microsoft Entra ID anzulegen, habe ich einen neuen Bildschirm mit einigen Steuerelementen hinzugefügt, darunter ein Textfeld für die Eingabe des Benutzers, eine Beschriftung für die Anzeige des Kopfzeilentextes und eine Schaltfläche für die Durchführung einer Aktion und die Übermittlung von Daten an die Microsoft Entra ID-Datenquelle, wie in Abbildung 4-15 dargestellt.
Dann fügte ich einen Power Fx-Ausdruck hinzu, um Werte aus den Textfeld-Steuerelementen zu lesen und den Benutzer in Microsoft Entra ID zu erstellen, wie in Abbildung 4-16 gezeigt.
Abbildung 4-17 zeigt, wie der Bildschirm der App aussieht, wenn ich die App über das Power Apps Studio im Webbrowser ausführe.
In Abbildung 4-18 kannst du sehen, dass ein neuer Benutzer in Microsoft Entra ID mit den unter angegebenen Details erstellt wurde.
Die Architektur von Power Apps Connectors
Die Connectors in Power Apps sind SaaS-basierte Komponenten. Das bedeutet, dass du dich nicht darum kümmern musst, was im Hintergrund abläuft, um deine Aufgaben zu erledigen; alles wird vom Dienstanbieter, also Microsoft Azure, verwaltet. Du musst nur die erforderlichen Eingabeparameter an den Konnektor übergeben und die Ausgabe von ihm erhalten, um sie weiter zu verarbeiten. Wie er die Verbindung mit der Datenquelle herstellt, wie er die Verbindungsdetails speichert und wie die Informationen zwischen deiner App und den Datenquellen weitergegeben werden - um all das kümmert sich Microsoft Azure. In Abbildung 4-19 findest du den Unterschied zwischen IaaS-, PaaS- und SaaS-Dienstanbietern.
Es gibt drei Hauptbestandteile von Konnektoren, wie in Abbildung 4-20 dargestellt.
Schauen wir uns diese Komponenten im Detail an:
- Speicherung von Anmeldeinformationen und Metadaten
-
Hier werden im Wesentlichen die Verbindungsinformationen zwischen deinen Power Apps und der Datenquelle gespeichert. Damit Power Apps zum Beispiel mit einer Salesforce-Datenquelle kommunizieren kann, musst du zunächst die entsprechenden Verbindungsdetails von Salesforce angeben. Je nach Plattform oder Sicherheitsarchitektur der jeweiligen Datenquelle können sich diese Verbindungsdetails ändern. Einige Datenquellen benötigen eine URL, einen Benutzernamen und ein Passwort, um sich zu verbinden, während andere API-Schlüssel, Client-IDs, geheime Schlüssel usw. benötigen. Der Berechtigungsnachweis- und Metadatenspeicher speichert die Verbindungsinformationen deiner Datenquelle, damit Power Apps mit der Datenquelle kommunizieren kann, ohne dass du immer wieder die gleichen Verbindungsinformationen eingeben musst.
Wir haben bereits die LinkedIn-App als Beispiel verwendet. Sie fragt nur beim ersten Mal nach deinen Anmeldedaten, um deine App mit der LinkedIn-Datenquelle zu verbinden. Deine Anmeldeinformationen werden lokal gespeichert, so dass du sie nicht erneut eingeben musst. Der Speicher für Anmeldeinformationen und Metadaten funktioniert im Fall des Connectors auf ähnliche Weise .
- Azure APIM
-
Dies ist der Einstiegspunkt von in den Connector. Jedes Mal, wenn Power Apps eine neue Anfrage über den Konnektor stellt, wird der Berechtigungsnachweis und der Metadatenspeicher konsultiert, um die Verbindungsinformationen zu überprüfen. Wenn die Informationen korrekt sind, erhält er ein Verbindungs-Token, mit dem Azure APIM die externe Datenquellen-API aufruft, um den erforderlichen Vorgang in der Datenquelle auszuführen. Jede Datenbank gewährt den Zugang zum Lesen ihrer Daten auf der Grundlage deines Verbindungs-Tokens, das einer gültigen ID ähnelt.
- App-Service-Umgebung
-
Durch den Aufruf der externen APIs kann Azure APIM Aktionen direkt in den entsprechenden Daten Quellen ausführen. Manchmal ist es jedoch notwendig, die zwischen Power Apps und den Datenquellen übertragenen Daten umzuwandeln, damit sie in den entsprechenden Datenquellenformaten lesbar sind. Außerdem gibt es Fälle, in denen Power Apps mit lokalen Datenquellen kommunizieren muss. Es wurde also eine Plattform benötigt, auf der Entwickler ihre eigene Geschäftslogik schreiben und eigene Webanwendungen für die Konnektoren (Connector Web Apps) erstellen können. Das Ergebnis ist der Azure App Service, ein Platform-as-a-Service (PaaS)-Angebot, das Entwicklern die Möglichkeit bietet,:
-
Erstelle benutzerdefinierte Apps auf Basis von ASP.NET, ASP.NET Core, Java, Ruby, Node.js, PHP oder Python
-
Verbindung mit lokalen Datenquellen über Daten-Gateway, Hybrid Connections oder virtuelle Azure-Netzwerke
-
Arten von Power Apps Steckern
Konnektoren werden je nach Nutzung, Lizenz und Herausgeber in drei Kategorien unterteilt: Standard, Premium und Custom.
Standard-Steckverbinder
Standardkonnektoren werden für die Verbindung mit den am häufigsten verwendeten Datenquellen wie , Microsoft Entra ID, SharePoint, OneDrive, Dropbox, Google Drive und Microsoft Teams verwendet (siehe Abbildung 4-21). Herausgeber von Standard-Konnektoren können entweder Microsoft, ein Nicht-Microsoft-Unternehmen wie Google, Adobe oder Facebook oder eine Einzelperson sein. Einige der Standard-Konnektoren sind auch Premium-Konnektoren wie Microsoft Dataverse. Bei allen Power Apps-Lizenzierungsplänen sind diese Konnektoren jedoch völlig kostenlos und können frei genutzt werden.
Kundenspezifische Verbinder
Microsoft bietet eine große Auswahl an Konnektoren an. Zum Zeitpunkt der Erstellung dieses Artikels sind es über tausend, aber die Zahl steigt weiter an. Was passiert, wenn die verfügbaren Standard- und Premium-Konnektoren nicht deinen Bedürfnissen entsprechen? Manchmal musst du vielleicht eine API oder einen Dienst aufrufen oder eine Verbindung zu einem System herstellen, das nicht als vorgefertigter Konnektor verfügbar ist. In diesem Fall kannst du deinen eigenen Konnektor erstellen, einen benutzerdefinierten Konnektor. Du kannst deinen eigenen Konnektor zur Zertifizierung an Microsoft schicken. Wenn der Konnektor die Zertifizierungsanforderungen erfüllt, prüft Microsoft ihn und gibt grünes Licht für die Veröffentlichung, so dass er für alle Nutzer in Power Apps öffentlich zugänglich ist.
Hinweis
Benutzerdefinierte Konnektoren sind eine Premium-Funktion von Power Apps. Wenn du also einen entwickeln und nutzen möchtest, brauchst du eine Power Apps Premium Lizenz.
Ich möchte zum Beispiel eine App erstellen, die die COVID-19-APIs nutzt, die meine Regierung zur Verfügung gestellt hat, damit die Mitarbeiter meines Unternehmens Impftermine vereinbaren können. Die erste API akzeptiert eine Handynummer als Eingabe und gibt einen einmaligen Passcode zurück, um einen neuen Nutzer zu registrieren. Die Postleitzahl des Nutzers wird in die zweite API eingegeben, die dann verfügbare Impftermine in der Nähe anzeigt und den Termin reserviert, sobald der Nutzer den Termin bestätigt hat. Um diese Anforderung zu erfüllen, muss ich einen benutzerdefinierten Konnektor erstellen, um diese API aufzurufen, da es keinen vorgefertigten Konnektor dafür gibt(Abbildung 4-23). Nachdem er von Microsoft geprüft und genehmigt wurde, kannst du diesen Konnektor auch veröffentlichen und für andere Unternehmen zugänglich machen .
Verwendung von Konnektoren gegenüber dem Aufrufen einer API
Du fragst dich vielleicht, warum du jedes Mal einen Connector erstellen musst, wenn du eine API aufrufen willst. Warum kannst du die API nicht einfach direkt verwenden? Die Verwendung von Konnektoren hat zwei Vorteile gegenüber dem direkten Aufruf einer API:
- Low-Code, No-Code Fähigkeiten
-
Mithilfe von Konnektoren können selbst Bürgerentwickler Power Apps mit externen Systemen verbinden, ohne eine einzige Codezeile zu schreiben. Erinnerst du dich an die Anfänge, als du Wochen oder Monate gebraucht hast, um eine einfache API zu testen, die von deinem Kunden bereitgestellt wurde? Du musstest zunächst Eingabeparameter im richtigen Format (XML oder JSON) vorbereiten, dann Code schreiben, um die Eingabeparameter an die entsprechende API zu senden, und schließlich Code schreiben, um die Antwort der API, die entweder im XML- oder JSON-Format zurückgegeben wurde, zu analysieren, um sie für deine Geschäftsanwendungen verfügbar zu machen. Jetzt musst du dich nicht mehr um die Erstellung von Code zum Parsen und Verarbeiten der Daten kümmern, sondern kannst die API mithilfe von Konnektoren testen und sie in weniger als einer Stunde in deinen Geschäftsanwendungen nutzen.
- Wiederverwendbarkeit
-
Connectors sind eine Integrationskomponente , die von Azure Logic Apps, Power Automate und Power Apps verwendet werden kann. Außerdem sind Power Automate und Logic Apps trigger-basierte Komponenten, die von anderen Power Platform-Komponenten wie Power BI, Copilot Studio, Power Pages und Azure-Komponenten wie APIM und Azure Functions ausgelöst werden können. Das bedeutet, dass nach der Erstellung des Connectors sowohl auf der Power Platform als auch auf Azure verwendet werden kann, wie in Abbildung 4-24 dargestellt.
Komponenten von Power Apps Connectors
Du hast gelernt, dass Konnektoren verwendet werden, um die Kommunikation zwischen deinen Geschäftsanwendungen und Datenquellen herzustellen. Aber wann der Konnektor mit der Datenquelle kommunizieren soll und welche Transaktion oder Operation er in der Datenquelle durchführen soll, wird durch seine Komponenten beschrieben.
Auslöser und Aktionen sind die beiden Hauptkomponenten jedes Connectors, wie in Abbildung 4-25 dargestellt. Der Auslöser gibt an, wann die Operation der Datenquelle ausgeführt werden soll, und die Aktion gibt an, welche Operation (Erstellen, Aktualisieren, Löschen usw.) in der Datenquelle durchgeführt werden muss. In Abbildung 4-25 ist zum Beispiel "Wenn ein neuer Kontakt in Dataverse erstellt wird" ein Auslöser des Dataverse-Konnektors, während "Eine E-Mail an den Kontakt senden" eine Aktion des Outlook-Konnektors ist.
Auslöser und Aktionen in Canvas App Power Apps
Wie in Abbildung 4-26 dargestellt, habe ich im linken Navigationsbereich einen Microsoft Dataverse Connector hinzugefügt, um einen Kontakt in Dataverse zu erstellen, und einen Office365 Outlook Connector, um eine E-Mail an den Kunden zu senden. Im mittleren Bereich habe ich einen leeren Bildschirm und ein Formular hinzugefügt. Im rechten Navigationsbereich habe ich Kontakte als Datenquelle festgelegt, um Daten in der Tabelle Kontakte in Dataverse zu erstellen.
Ich habe den folgenden Power Fx-Ausdruck zur Eigenschaft OnSelect
des Schaltflächen-Steuerelements hinzugefügt, wie in Abbildung 4-27 gezeigt:
SubmitForm(ContactForm); Office365Outlook.SendEmailV2(emailTextInput.Text,"Contact Onboarding Confirmation","Dear User, Your onboarding is successfully completed");
Hier ist der Auslöser also, dass der Benutzer auf die Schaltfläche "Erstellen" klickt und die Aktion darin besteht, Daten in Dataverse zu erstellen und eine E-Mail an den Kunden zu senden.
Auslöser und Aktionen in Power Automate
Wie in Abbildung 4-28 dargestellt, habe ich einen Microsoft Dataverse Connector hinzugefügt, der einen Power Automate Flow auslöst, wenn ein neuer Kontakt in Dataverse erstellt wird, und einen Outlook Connector, der eine Aktion ausführt, indem er eine E-Mail an diesen Kontakt sendet.
Zusammenfassung
In diesem Kapitel hast du die Grundlagen der von Power Apps verwendeten Datenquellen und Konnektoren kennengelernt und erfahren, wie verschiedene Arten von Power Apps mithilfe verschiedener Konnektoren mit unterschiedlichen Datenquellen interagieren. Außerdem hast du Kenntnisse über die Komponenten, die Konnektortypen und die Architektur des Konnektors erworben.
In diesem Kapitel wurde gezeigt, wie du mit Power Fx-Ausdrücken Geschäftslogik in einer Canvas-Anwendung schreiben kannst. In Kapitel 9 werde ich jedoch noch tiefer in die Materie einsteigen.
Im nächsten Kapitel erfährst du, wie du entscheidest, welche Art von Power Apps am besten zu deinen Geschäftsanforderungen passt.
Get Microsoft Power Apps lernen now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.