Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 8 Min.

Teilen und herrschen

Das eine unternehmensweite Datensystem ist Geschichte. Eine Integrationsschicht fasst heute verschiedene Datenspeicher zusammen.
© Autor
Microsoft Ignite Konferenz 2018: Microsoft, Adobe und SAP verkünden die Open Data Initiative [1]. Die Daten, welche die Produkte der drei Hersteller erzeugen, sollen in einem gemeinsamen Schema, frei von Schnittstellen und Transformationen, miteinander verwendet werden können. Mehr noch: Die Beteiligten definierten einen neuen Schemastandard – das Common Data Model (CDM) [2]. Dieses Datenmodell ist Open Source – auf GitHub publiziert – und offen für Erweiterungen des Basisschemas. Möglichst viele Anbieter sollen aufspringen und den CDM-Standard unterstützen. So weit die Kurzfassung. Aber was bedeuten diese Initiative und diese neue Datenkonvention nun konkret?Das Common Data Model – also das „allgemein gebräuchliche Datenmodell“ – gibt ein gemeinsames grundlegendes Schema für Geschäftsdaten vor, den kleinsten gemeinsamen Nenner, von dem aus dann individualisiert werden kann. In Bild 1 sind dieses Basisschema und die Entitäten (die einzelnen Datenobjekte) zu sehen, die darin definiert sind. Das Schema selbst ist dabei hierarchisch aufgebaut. Ausgehend von „Kern“-Entitäten, wie Task, Account und anderen, gliedern sich die Datenobjekte in Bereiche, die grob den Teilen der Wertschöpfungskette und den großen Geschäftsprozessen eines Unternehmens entsprechen: Sales, Service, Finance, Marketing, Supply Chain und weitere.
Das Basisschemades Common Data Model(Bild 1) © Autor
Das Basisschema stellt die allgemeinste Grundlage dar. Die Idee ist, dass dieses Schema für Branchen, Industrien und individuelle Anwendungen nun hierarchisch erweitert wird. Microsoft selbst stellt bereits sogenannte „solution accelerators“ für gewisse Industrien zur Verfügung. Der Banking Solution Accelerator verdeutlicht das gut [3]. Dieses Paket erweitert die Basisentitäten um bankgeschäftsspezifische Felder, Formulare und Prozesse, ohne jedoch mit den Basisstandards zu brechen. So lassen sich spezifische Anforderungen auf Grundlage des allgemeinen Schemas oder des speziellen Schemas umsetzen.Jeder Hersteller kann nun diesem Standard folgen und seine Datentechnologien CDM-kompatibel gestalten. Microsoft stellt hierfür den Common Data Service (CDS) zur Verfügung. Dieser stellt einen CDM-kompatiblen Datenspeicher dar und wird als SaaS (Software-as-a-Service) abonniert. CDS ist Teil von Microsofts Power Platform und wird somit als Teil dieser lizenziert, entweder alleine stehend als Power-Platform-Abonnement oder als Teil der Dynamics-365-Abonnements. In den Office-365-Abos ist die Power Platform ebenso enthalten, jedoch nicht die Nutzung des Common Data Service – Details erläutert der Power Platform Licensing Guide [4].Der Common Data Service ist das Arbeitstier in der Power Platform. Dieser Querschnittsdienst liefert den Modulen der Power Platform relationale Datenhaltung, Systemintegration durch Konnektoren, ein API zum programmatischen Erweitern mittels Plug-ins sowie direkten Datenaustausch mit ­Azure Data Lake für Big-Data- und Analytics-Anforderungen. Doch der Reihe nach. Der allgemeinste Anwendungsfall für den Common Data Service ist das Speichern und Modellieren relationaler Daten und das Bereitstellen von Ereignissen, die diese Daten betreffen (Ändern, Einfügen und so weiter).Informationsmodellierung im CDS geschieht mittels Entitäten. Eine Entität stellt dabei ein Datenobjekt dar. Wichtig ist: Eine Entität ist weit mehr als eine Tabelle in einer klassischen Datenbank. Tabelle 1 listet die Funktionen von Entitäten auf und wie und wo sie in der Power Platform Verwendung finden. Entitäten stellen somit komplette Informationsklassen dar, mit zugehörigen Regeln, Prozessen, Formularen.

Tabelle 1: Bestandteile von Entitäten in Common Data Service

Name Beschreibung Verwendung
Felder Datenfelder der Entität gesamte Plattformautomatisches Erzeugen des UI bei Model-driven Power Apps
Ansichten Listenansichten für Canvas und Model-driven Power Apps Power Apps
Formulare Formulare für Model-driven Power Apps Model-driven Power Apps
Geschäftsregeln Feldregeln, um Werte oder Zustände von Feldern abhängig von anderen Feldern der Entität zu setzen gesamte Plattform

automatisches Erzeugen des UI bei Model-driven Apps
Business Process Flows Geschäftsprozesse (Stage – Gate)
Prozesse, die auf der Entität definiert sind
Dynamics 365 Model-driven Apps
Ereignisse Ereignisse werden indirekt in Microsoft Power Automate verwendet. Power Automate Workflow Trigger (Create/Update)
Diagramme Charts für Model-driven Power Apps Model-driven Power Apps
Dashboards Dashboards bestehend aus Charts Model-driven Power Apps

Beispielszenario im Zeichen von Covid-19

Das Umsetzen einer Anforderung auf der Power Platform beginnt – wie auch auf anderen Plattformen – mit der Datenmodellierung. Im vorliegenden Beispiel soll ein Datenmodell in CDS umgesetzt werden, um Krankheitsfälle zu erfassen und zu verfolgen.Startpunkt unter make.powerapps.com ist der Menüpunkt Data | Entities. Hier wird mittels + New eine neue Entität angelegt. In diesem Fall werden sowohl das Schema als auch die Daten in CDS vorgehalten (weiter unten zeigt der Artikel, wie ein Schema in CDS mit Daten aus externen Systemen verbunden werden kann). Der Name der Entität lautet COVID Case. Der Assistent versucht auch gleich, den Plural zu erraten; das funktioniert allerdings gut nur bei englischen Begriffen. Jede Entität bekommt automatisch ein Feld namens Name. Dieses Feld muss zwar nicht eindeutig, aber in jeder Entität vorhanden sein. Um Felder einzufügen, genügt ein Klick auf +Add Field. Hier stehen viele verschiedene Feldtypen zur Auswahl. Zu beachten ist: Sind alle Änderungen gemacht, darf man nicht vergessen, rechts unten Save Entity anzuklicken. Erst das publiziert alle Änderungen an der Entität.Es sollen die Felder Husten, Fieber und Vorerkrankung erstellt werden. Die ersten beiden Felder bekommen den Typ Two Options(Bild 2). Dieser Feldtyp erlaubt die Definition von genau zwei Werten – ideal für eine Ja/Nein-Auswahl. Das Feld Vorerkrankung soll eine vordefinierte Auswahl enthalten – CDS nennt diesen Feldtyp Option Set. Option Sets sind Auswahllisten, die global zur Verfügung stehen. Wird dieser Feldtyp gewählt, kann man eine vorhandene Auswahlliste wählen oder mit +New eine neue direkt aus dem Fenster heraus erstellen (Bild 3). Sind alle Felder festgelegt, werden die Angaben mit einem Klick auf Save Entity übernommen.
Erstelleneines Felds imEntitäten-Editor(Bild 2) © Autor
Ein Option Setlässt sich direkt im Editor erstellen(Bild 3) © Autor
Weiter geht es mit der Definition der Relationen. Ein Covid-Anwendungsfall hat eine Relation zur Entität Contact – die im Basis-CDM-Schema bereits definiert ist. Um diese N:1-Relation anzugeben, wird unter Relationships eben dieser Typ ausgewählt (Many-to-One) – ein Contact kann 0, 1 oder mehrere Entitäten der Covid-Case-Entität aufweisen (Bild 4). Ist die Relation richtig eingestellt, wird auf der One-Seite ein Look­up-Feld erstellt, das es erlaubt, die zugehörig Contact-Entität auszuwählen.
Erstelleneiner Relation(Bild 4) © Autor
Der nächste Schritt ist das Einrichten von Geschäftsregeln. Im Beispiel soll, sobald das Feld Fieber ausgewählt wurde, das Feld Contact ein Pflichtfeld sein. Dazu ist unter Business Rules | New der Business Rule Designer zu öffnen, der in Bild 5 zu sehen ist. Wird das Feld auf Yes gesetzt, ist der Wert verpflichtend, andernfalls wird die Angabe eines Kontakts zumindest empfohlen. Der Geschäftsregel-Designer erlaubt die Definition mehrstufiger Regeln und ist ähnlich wie ein Workflow-Desig­ner aufgebaut.
Der Designerfür Geschäftsregeln in CDS(Bild 5) © Autor
Die weiteren Bestandteile von Entitäten sind großteils nur interessant, wenn diese mit Model Driven Power Apps oder mit Dynamics 365 Model Driven Apps in weiterer Folge bearbeitet werden. Tabelle 1 erklärt, wozu diese benötigt werden.Entitäten lassen sich aber nicht nur im Common Data Service selbst modellieren. Die Plattform erlaubt es auch, mittels Power Query externe Daten einzubinden. Der Sinn ist, dass das CDS – als CDM-konforme Schicht – Daten selbst hält, aber auch Systeme integriert und so zur „Master“-Datenschicht mutiert. Alle Daten im Unternehmen sind somit in der gemeinsamen „Sprache“ CDM verfügbar.Um Daten externer Systeme einzubinden, werden diese unter Data | Entities | Get Data aus einer der verfügbaren Schnittstellen geladen, die Bild 6 aufführt. Spannend sind sicherlich die „Klassiker“ Microsoft SharePoint und WebAPI; aber auch Azure Data Lakes lassen sich einfach anbinden. Und da viele (Reporting-)Prozesse immer noch von Excel beherrscht sind, bietet Microsoft hier nicht nur einen Excel-Import an, sondern eine „Echtzeit“-Schnittstelle zu jeder Excel-Tabelle, die in OneDrive for Business abgelegt wird.
VerfügbareSchnittstellenfür CDS-Entitäten(Bild 6) © Autor
Um beispielsweise Daten aus einer Excel-Arbeitsmappe periodisch automatisch in das CDS zu laden oder zu aktualisieren, sind lediglich ein paar Schritte nötig. Zunächst wird im Assistenten Excel als Datenquelle ausgewählt und die Excel-Tabelle auf OneDrive for Business lokalisiert. Nach Angabe der passenden Authentifizierungsdaten wird auch schon Power Query geladen und zeigt die Struktur der Arbeitsmappe an. Jede Tabelle wird gesondert ausgelesen und kann nun mittels Power Query durch Klick auf Transform data in eine passende Form gebracht werden.Der Assistent liefert einiges an Möglichkeiten zur Selektion, Projektion, Transformation und Filterung der Daten. Als erster Schritt steht die Definition der Datentypen an – Bild 7 zeigt, wie die Spalte RecycleAmount der Datenquelle als ganze Zahl definiert wird. Der Assistent bietet aber noch viel mehr. Er kann Spalten entfernen, mittels Formeln umwandeln oder sogar neue Spalten berechnen. Bild 8 zeigt etwa das Einfügen einer bedingten Spalte, deren Inhalt abhängig vom Vergleich zweier Spalten errechnet wird. Weitere Optionen zum umfangreichen Power-Query-Editor stellt Microsoft im Internet bereit [5]. Ein Klick auf OK und Load to new Entity stellt die Verbindung her und erstellt eine neue Entität, deren Daten periodisch aus dem Excel-Sheet nachgeladen werden.
Transformationenin Power Query(Bild 7) © Autor
Definitionbedingter Spalten in Power Query(Bild 8) © Autor
Die Verbindung zu Excel ist hier nur die einfachste Variante; mit den Konnektoren für REST/ODATA-Webdienste, ODBC und weiteren stehen hier alle Möglichkeiten für die Integration offen.

Möglichkeiten für Entwickler

Common Data Service ist also ein Modellierungsverfahren. Aber auch das Entwickeln ist möglich und es stehen einige Möglichkeiten zur Verfügung, um die mächtige Datenplattform in eigene Anwendungen einzubinden oder auf Ereignisse mit Code zu reagieren. Zum einen bietet CDS alle seine Daten und seine Struktur als REST-Webservice zum Einbinden an. Interessanter jedoch ist zum anderen die Möglichkeit, mittels Plug-ins und dem Event-Framework direkt auf Ereignisse im CDS zu horchen und mit eigener Logik zu reagieren.Dazu stellt Microsoft mit dem Plug-in Registration Tool ein Werkzeug zur Verfügung, um eigene Assemblies registrieren zu können, die auf ausgesuchte Ereignisse reagieren. Dies ist gerade bei SaaS-Diensten aus der Cloud nicht alltäglich. Ein Microsoft-Docs-Artikel beschreibt Schritt für Schritt, wie Sie mit eigenem Code in die Verarbeitungs-Pipeline eingreifen können [6].

Fazit

Das Common Data Model als offener, gemeinsamer Schema­standard sowie die Implementierung dieses Standards – der Common Data Service – liefern im Zusammenspiel mit den weiteren Komponenten der Microsoft Power Platform ein mächtiges System zum Modellieren und – wenn nötig – Programmieren von Unternehmensapplikationen. Insbesondere Workflow-orientierte Anwendungen sowie Applikationen mit vielen Schnittstellen profitieren enorm von den Funktionen der Power Platform.

Fussnoten

  1. Open Data Initiative, http://www.dotnetpro.de/SL2012CommonData1
  2. GitHub: Common Data Model (CDM) Schema, http://www.dotnetpro.de/SL2012CommonData2
  3. Dynamics 365 financial services accelerator – banking, http://www.dotnetpro.de/SL2012CommonData3
  4. Microsoft Power Apps, Microsoft Power Automate and Microsoft Power Virtual Agents Licensing Guide (August 2020), http://www.dotnetpro.de/SL2012CommonData4
  5. Microsoft PowerQuery Editor, http://www.dotnetpro.de/SL2012CommonData5
  6. Microsoft Docs: Event Framework, http://www.dotnetpro.de/SL2012CommonData6

Neueste Beiträge

DWX hakt nach: Wie stellt man Daten besonders lesbar dar?
Dass das Design von Websites maßgeblich für die Lesbarkeit der Inhalte verantwortlich ist, ist klar. Das gleiche gilt aber auch für die Aufbereitung von Daten für Berichte. Worauf besonders zu achten ist, erklären Dr. Ina Humpert und Dr. Julia Norget.
3 Minuten
27. Jun 2025
DWX hakt nach: Wie gestaltet man intuitive User Experiences?
DWX hakt nach: Wie gestaltet man intuitive User Experiences? Intuitive Bedienbarkeit klingt gut – doch wie gelingt sie in der Praxis? UX-Expertin Vicky Pirker verrät auf der Developer Week, worauf es wirklich ankommt. Hier gibt sie vorab einen Einblick in ihre Session.
4 Minuten
27. Jun 2025
„Sieh die KI als Juniorentwickler“
CTO Christian Weyer fühlt sich jung wie schon lange nicht mehr. Woran das liegt und warum er keine Angst um seinen Job hat, erzählt er im dotnetpro-Interview.
15 Minuten
27. Jun 2025
Miscellaneous

Das könnte Dich auch interessieren

UIs für Linux - Bedienoberflächen entwickeln mithilfe von C#, .NET und Avalonia
Es gibt viele UI-Frameworks für .NET, doch nur sehr wenige davon unterstützen Linux. Avalonia schafft als etabliertes Open-Source-Projekt Abhilfe.
16 Minuten
16. Jun 2025
Mythos Motivation - Teamentwicklung
Entwickler bringen Arbeitsfreude und Engagement meist schon von Haus aus mit. Diesen inneren Antrieb zu erhalten sollte für Führungskräfte im Fokus stehen.
13 Minuten
19. Jan 2017
Evolutionäres Prototyping von Business-Apps - Low Code/No Code und KI mit Power Apps
Microsoft baut Power Apps zunehmend mit Features aus, um die Low-Code-/No-Code-Welt mit der KI und der professionellen Programmierung zu verbinden.
19 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige