{"id":266239,"date":"2019-09-05T13:11:26","date_gmt":"2019-09-05T12:11:26","guid":{"rendered":"https:\/\/pulse.microsoft.com\/?p=266239"},"modified":"2019-11-06T11:58:43","modified_gmt":"2019-11-06T10:58:43","slug":"fa3-gibts-da-eine-app-dafur","status":"publish","type":"post","link":"https:\/\/pulse.microsoft.com\/de-at\/work-productivity-de-at\/na\/fa3-gibts-da-eine-app-dafur\/","title":{"rendered":"Gibt\u2018s da eine App daf\u00fcr?"},"content":{"rendered":"<p class=\"intro\">Ja, gibt&#8217;s \u2013 und auch noch eine ganze Plattform f\u00fcr Enterprise Applikationsentwicklung dazu. Die <em>Microsoft Power Platform<\/em> verbindet Systeme, automatisiert Abl\u00e4ufe und stellt plattform\u00fcbergreifende Applikationen zur Verf\u00fcgung \u2013 auf Wunsch auch ganz ohne Code!<\/p>\n<p>Die <a href=\"https:\/\/powerplatform.microsoft.com\/en-us\/\">Microsoft Power Platform<\/a> setzt auf das Zusammenspiel von vier m\u00e4chtigen L\u00f6sungen. Gemeinsam haben sie den Anspruch, nicht nur Microsofts eigene Systeme zu verbinden, sondern alle im Unternehmen eingesetzten L\u00f6sungen \u2013 unabh\u00e4ngig vom Hersteller. Die Power Platform ist der Produkt-gewordene Inbegriff von Microsofts Vision: \u201eEmpower every person and every organisation on the planet to achieve more\u201d.<\/p>\n<h2>Vier Komponenten im Zusammenspiel<\/h2>\n<ol>\n<li>\u00a0<a href=\"https:\/\/powerplatform.microsoft.com\/en-us\/\">PowerApps<\/a> liefert plattform\u00fcbergreifende No-Code Applikationsmodellierung und erlaubt die Erstellung von pixel-perfekten Apps, die Generierung von Modell-basierten Applikationen mit fixem Layout und sogar die Publikation von Webportalen.<\/li>\n<li><a href=\"https:\/\/flow.microsoft.com\">Microsoft Flow<\/a> automatisiert Abl\u00e4ufe. Entweder on-demand, durch ein Ereignis gesteuert oder zeitgesteuert und f\u00fcllt, als Integrationsschicht mit derzeit circa 270 Konnektoren, die Funktion eines \u201eKlebstoffes\u201c f\u00fcr alle nur erdenklichen Systeme von A wie Apache Impala bis Z wie Zendesk.<\/li>\n<li>Die Grundlage f\u00fcr die \u00fcbergreifende Applikationsmodellierung stellt der <a href=\"https:\/\/powerapps.microsoft.com\/en-us\/common-data-service\/\">Common Data Service<\/a> dar. Der Common Data Service for Apps ist eine standardisierte Datenplattform, die die Modellierung von Entit\u00e4ten und ihren Beziehungen zueinander erlaubt. Zudem ist der Common Data Service for Apps eine Integrationsschicht, da auch auf Datenebene Daten direkt aus externen Systemen integriert werden k\u00f6nnen und somit f\u00fcr PowerApps und Flows transparent zur Verf\u00fcgung stehen.<\/li>\n<li>Der Common Data Service (CDS) basiert auf offenen Standards \u2013 dem <a href=\"https:\/\/powerplatform.microsoft.com\/en-us\/common-data-model\/\">Common Data Model<\/a> \u2013 die eine gemeinsame Sprache f\u00fcr die Beschreibung von Datendiensten im Unternehmen liefern. Somit wird der Common Data Service als Integrationsschicht zur \u201eSingle Source of Truth\u201c f\u00fcr alle noch vorhandenen Datensilos.<\/li>\n<\/ol>\n<h2>How to: Wie eine PowerApp entsteht<\/h2>\n<p>Folgendes Beispielszenario zeigt wie Maschinendaten verwaltet werden. Die Ger\u00e4tedaten befinden sich in einem legacy System und werden mittels Excel Export zur Verf\u00fcgung gestellt. Diese Daten werden in einem n\u00e4chsten Schritt mit Kundendaten zusammengef\u00fchrt, die in Microsoft Dynamics 365 for Sales gehalten werden. Zus\u00e4tzlich soll es m\u00f6glich sein, neue Maschinen anzulegen \u2013 diese werden via Microsoft Flow direkt in das Excel File zur\u00fcckgeschrieben. Das Excel File stellt somit eine beispielhafte Schnittstelle zu einem Fremdsystem dar.<\/p>\n<p>Los geht\u2018s mit der Modellierung der Entit\u00e4ten: Die Maschinendaten liegen in Excel \u2013 das Excel File wiederum liegt auf einer SharePoint Bibliothek oder OneDrive for Business. Um die Maschinendaten im CDS nutzen zu k\u00f6nnen, m\u00fcssen sie erst einmal eingebunden werden. Das geschieht im <a href=\"https:\/\/make.powerapps.com\">Power Platform Maker Portal<\/a> unter dem Men\u00fcpunkt \u201eData &gt; Entities &gt; Get Data\u201c.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-266302 size-full\" src=\"https:\/\/pulse.microsoft.com\/uploads\/prod\/2019\/09\/artikel-aschauer-bild_-e1567683145581.jpg\" alt=\"Screenshot eines Mobiltelefons\" width=\"1224\" height=\"432\" data-contrast=\"too_bright\" srcset=\"\/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild_-e1567683145581.jpg 1224w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild_-e1567683145581-300x106.jpg 300w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild_-e1567683145581-768x271.jpg 768w\" sizes=\"(max-width: 1224px) 100vw, 1224px\" \/><\/p>\n<p>Hier ein Beispiel, wie Entit\u00e4ten aus Fremdsystemen eingebunden werden k\u00f6nnen. In diesem Fall ist die Datenquelle Excel.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-266356 size-full\" src=\"https:\/\/pulse.microsoft.com\/uploads\/prod\/2019\/09\/artikel-aschauer-bild2.png\" alt=\"Screenshot eines Mobiltelefons\" width=\"809\" height=\"241\" data-contrast=\"too_bright\" srcset=\"\/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild2.png 809w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild2-300x89.png 300w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild2-768x229.png 768w\" sizes=\"(max-width: 809px) 100vw, 809px\" \/><\/p>\n<p>Hierf\u00fcr wird im Assistenten die Excel Verbindung ausgew\u00e4hlt. Das Ergebnis sieht wie in folgender Abbildung aus:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-266401 size-full\" src=\"https:\/\/pulse.microsoft.com\/uploads\/prod\/2019\/09\/artikel-aschauer-bild3.png\" alt=\"Screenshot eines Mobiltelefons\" width=\"1600\" height=\"837\" data-contrast=\"too_bright\" srcset=\"\/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild3.png 1600w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild3-300x157.png 300w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild3-768x402.png 768w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p>PowerQuery verfeinert die Abfrage vor der Erstellung und wendet Projektion, Selektion sowie Transformationen auf die Spalten an. Nach Abschluss des Assistenten sind die Daten als Entit\u00e4ten direkt im CDS verf\u00fcgbar.<\/p>\n<p>Nun kann in der neuen Entit\u00e4t \u201eMachine\u201c durch Klick auf \u201eRelationships &gt; Add &gt; Many-to-One\u201c eine Relation der Excel Daten zu den Kundendaten aus Dynamics for Sales erstellt werden. Dazu wird im folgenden Dialog die Entit\u00e4t \u201eAccount\u201c als Beziehung gew\u00e4hlt \u2013 schon hat man Daten aus mehreren Quellen in Beziehung gesetzt.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-266446 size-full\" src=\"https:\/\/pulse.microsoft.com\/uploads\/prod\/2019\/09\/artikel-aschauer-bild4.png\" alt=\"Screenshot eines Mobiltelefons\" width=\"1911\" height=\"935\" data-contrast=\"too_bright\" srcset=\"\/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild4.png 1911w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild4-300x147.png 300w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild4-768x376.png 768w\" sizes=\"(max-width: 1911px) 100vw, 1911px\" \/><\/p>\n<p>Das Datenmodell liegt nun vor. Nur die mobile App, die die Daten darstellt, fehlt noch.<br \/>\nDas wird im Maker Portal unter folgendem Men\u00fcpunkt in die Wege geleitet: \u201eApps &gt; Create an App &gt; Canvas &gt; Blank &gt;Phone Layout\u201c.<br \/>\nDadurch landet man im PowerApps Studio und kann die Applikation nun mit Steuerelementen und Bildschirmen frei gestalten. Die App wird direkt beim Speichern erstellt und ist sofort im HTML5 Browser, auf iOS und Android nativ lauff\u00e4hig!<\/p>\n<p>Um die Daten anzuzeigen, wird mittels \u201eInsert &gt; Gallery &gt; Blank Vertical\u201c eine Liste eingef\u00fcgt. Sofort zeigt der Designer m\u00f6gliche Datenquellen, wie in der n\u00e4chsten Abbildung ersichtlich. Beliebige Steuerelemente, wie Labels, werden nun in das Gallery Element etc. gezogen und den Feldern in der Datenquelle zugewiesen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-266494 size-full\" src=\"https:\/\/pulse.microsoft.com\/uploads\/prod\/2019\/09\/artikel-aschauer-bild5.png\" alt=\"ein Screenshot eines Social-Media-Beitrags\" width=\"677\" height=\"589\" data-contrast=\"too_bright\" srcset=\"\/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild5.png 677w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild5-300x261.png 300w\" sizes=\"(max-width: 677px) 100vw, 677px\" \/><\/p>\n<p>Wie das Ergebnis aussehen kann, zeigt die folgende Abbildung:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-266539 size-full\" src=\"https:\/\/pulse.microsoft.com\/uploads\/prod\/2019\/09\/artikel-aschauer-bild6-e1567684302263.jpg\" alt=\"Screenshot eines Mobiltelefons\" width=\"1881\" height=\"916\" data-contrast=\"too_bright\" srcset=\"\/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild6-e1567684302263.jpg 1881w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild6-e1567684302263-300x146.jpg 300w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild6-e1567684302263-768x374.jpg 768w\" sizes=\"(max-width: 1881px) 100vw, 1881px\" \/><\/p>\n<p>Ein Klick rechts oben auf \u201ePlay\u201c und die App l\u00e4uft!<\/p>\n<h2>Zwei Systeme, eine App<\/h2>\n<p>Schon sind Daten aus zwei Systemen eingebunden und \u00fcber eine mobile App publiziert. Nun soll sie auch l\u00e4ngerfristig funktionieren. Die Anlage eines neuen Maschinendatensatzes im externen System erfolgt aus der App via Microsoft Flow. Dazu wird in der App mittels \u201eInsert &gt; Button\u201c eine Schaltfl\u00e4che eingef\u00fcgt. In einem neuen Browser Tab wird nun im Maker Portal unter \u201eFlow &gt; New &gt; Instant &gt; From PowerApps\u201c ein neuer Flow erzeugt, der als Trigger \u201ePowerApps\u201c aufweist. Das bedeutet, dass dieser, nach Erstellung des Flows, direkt mit dem PowerApps Button aufgerufen werden kann. Anschlie\u00dfend wird mittels \u201e+ New Step\u201c ein neuer \u201eSchritt\u201c eingef\u00fcgt (Excel &gt; Add row to table). Die finale Aktion ist in folgender Abbildung ersichtlich:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-266584 size-full\" src=\"https:\/\/pulse.microsoft.com\/uploads\/prod\/2019\/09\/artikel-aschauer-bild7.png\" alt=\"ein Screenshot eines Social-Media-Beitrags\" width=\"1575\" height=\"789\" data-contrast=\"too_bright\" srcset=\"\/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild7.png 1575w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild7-300x150.png 300w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild7-768x385.png 768w\" sizes=\"(max-width: 1575px) 100vw, 1575px\" \/><\/p>\n<p>Wie kommen nun die Daten f\u00fcr die Spaltenwerte in den Flow?<br \/>\nGanz einfach: Im Auswahlfenster gibt es die Option \u201eAsk in PowerApps\u201c. Jeder Parameter, der dem Flow \u00fcbergeben werden soll, wird mittels dieser Option abgefragt. Und so sieht es dann aus:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-266629 size-full\" src=\"https:\/\/pulse.microsoft.com\/uploads\/prod\/2019\/09\/artikel-aschauer-bild8.png\" alt=\"Screenshot eines Mobiltelefons\" width=\"599\" height=\"378\" data-contrast=\"too_bright\" srcset=\"\/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild8.png 599w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild8-300x189.png 300w\" sizes=\"(max-width: 599px) 100vw, 599px\" \/><\/p>\n<p>Nachdem der Flow gespeichert wurde, geht es zur\u00fcck zur App.<br \/>\nNun muss f\u00fcr jeden Parameter ein passendes Steuerelement zur Eingabe her. Die Eingabe des \u201eCustomer\u201c erlauben wir \u00fcber ein DropDown Feld, das wiederum an die \u201eAccount\u201c Entit\u00e4ten in CDS gebunden ist. Diese stellen die Relation dar, die wir eingangs geschaffen haben. Das DropDown Feld wird eingef\u00fcgt und rechts unter \u201eItems\u201c wird die Entit\u00e4t \u201eAccounts\u201c aus CDS gew\u00e4hlt. Voil\u00e1: Die Datenverbindung ist geschaffen. Die restlichen Werte werden \u00fcber Textfelder bzw. einen Date Picker abgefragt.<\/p>\n<p>Nun geht es an den Button: Nach Auswahl des Buttons, \u201eAction &gt; Flows\u201c den gew\u00fcnschten Flow ausw\u00e4hlen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-266674 size-full\" src=\"https:\/\/pulse.microsoft.com\/uploads\/prod\/2019\/09\/artikel-aschauer-bild9-e1567684695437.jpg\" alt=\"Screenshot eines Mobiltelefons\" width=\"1267\" height=\"687\" data-contrast=\"too_bright\" srcset=\"\/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild9-e1567684695437.jpg 1267w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild9-e1567684695437-300x163.jpg 300w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild9-e1567684695437-768x416.jpg 768w\" sizes=\"(max-width: 1267px) 100vw, 1267px\" \/><\/p>\n<p>Nun m\u00fcssen die Werte aus den Steuerelementen dem Flow Aufruf zugewiesen werden. Dies geschieht in der Formelleiste. Der Editor f\u00e4rbt dabei die Werte ein. So ist sofort ersichtlich, welcher Wert in der Formel aus welchem Steuerelement stammt.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-266767 size-full\" src=\"https:\/\/pulse.microsoft.com\/uploads\/prod\/2019\/09\/artikel-aschauer-bild10-e1567685434445.jpg\" alt=\"Screenshot eines Mobiltelefons\" width=\"1502\" height=\"68\" data-contrast=\"too_bright\" srcset=\"\/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild10-e1567685434445.jpg 1502w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild10-e1567685434445-300x14.jpg 300w, \/wp-content\/uploads\/2019\/09\/artikel-aschauer-bild10-e1567685434445-768x35.jpg 768w\" sizes=\"(max-width: 1502px) 100vw, 1502px\" \/><\/p>\n<p>Und schon sind alle Teile implementiert. Um die App auf einem mobilen Ger\u00e4t zu starten, wird im entsprechenden AppStore die App \u201ePowerApps\u201c gratis geladen.<\/p>\n<p>Nach der Anmeldung in der App mit den Login Daten des Microsoft Tenants, werden die erstellten Apps aufgelistet und lassen sich starten. Mittels \u201ePin to Home\u201c kann die App auf iOS und Android auch gleich direkt auf den Home Screen gepinnt werden.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ja, gibt&#8217;s \u2013 und auch noch eine ganze Plattform f\u00fcr Enterprise Applikationsentwicklung dazu. Die Microsoft Power Platform verbindet Systeme, automatisiert Abl\u00e4ufe und stellt plattform\u00fcbergreifende Applikationen zur Verf\u00fcgung \u2013 auf Wunsch auch ganz ohne Code! Die Microsoft Power Platform setzt auf das Zusammenspiel von vier m\u00e4chtigen L\u00f6sungen. Gemeinsam haben sie den Anspruch, nicht nur Microsofts eigene [&hellip;]<\/p>\n","protected":false},"author":40,"featured_media":266248,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"class_list":["post-266239","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","specials-work-productivity-de-at","stories-develop-your-digital-skills-de-at","stories-unterhaltsame-wege-programmieren-zu-lernen","businessPriorities-business-applications-de-at"],"_links":{"self":[{"href":"https:\/\/pulse.microsoft.com\/de-at\/wp-json\/wp\/v2\/posts\/266239"}],"collection":[{"href":"https:\/\/pulse.microsoft.com\/de-at\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pulse.microsoft.com\/de-at\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pulse.microsoft.com\/de-at\/wp-json\/wp\/v2\/users\/40"}],"replies":[{"embeddable":true,"href":"https:\/\/pulse.microsoft.com\/de-at\/wp-json\/wp\/v2\/comments?post=266239"}],"version-history":[{"count":11,"href":"https:\/\/pulse.microsoft.com\/de-at\/wp-json\/wp\/v2\/posts\/266239\/revisions"}],"predecessor-version":[{"id":266815,"href":"https:\/\/pulse.microsoft.com\/de-at\/wp-json\/wp\/v2\/posts\/266239\/revisions\/266815"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pulse.microsoft.com\/de-at\/wp-json\/wp\/v2\/media\/266248"}],"wp:attachment":[{"href":"https:\/\/pulse.microsoft.com\/de-at\/wp-json\/wp\/v2\/media?parent=266239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pulse.microsoft.com\/de-at\/wp-json\/wp\/v2\/categories?post=266239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}