KI-Schnellstart

Dieser Walkthrough führt Sie von einem leeren Ordner zu einem laufenden Portal, in dem Kunden sich anmelden und mit ihren eigenen Support-Fällen arbeiten – indem sie einen KI-Codierer fragen, anstatt es von Hand zu schreiben. Jeder Schritt gibt Ihnen einen Prompt zum Einfügen, was der Agent damit machen wird und was Sie überprüfen sollten, bevor Sie weitermachen. Das Beispiel verwendet die Case-Tabelle (incident), die mit Dynamics 365 Customer Service geliefert wird; mit einer eigenen Tabelle funktioniert jeder Prompt auf die gleiche Weise.

Bevor du anfängst

  • Das .NET 10 SDK und Node.js , wenn du die React-Vorlage wählst.
  • Eine Dataverse-Umgebung , in der Sie Systemadministrator sind. Verwenden Sie für diesen Walkthrough eine Entwicklungs- oder Sandbox-Umgebung.
  • Berechtigung, App-Registrierungen im Entra-Tenant dieser Umgebung zu erstellen.
  • Eine Adresse für die E-Mail des Portals – Registrierungsbestätigungen und Passwort-Zurücksetzungen – mit einem gemeinsamen Postfach in Exchange Online, das keine Lizenz benötigt. Die Genehmigung der Adresse erfordert einen Office 365 Global Administrator oder Exchange Administrator.
  • Ein KI-Codingagent, der MCP unterstützt. Die untenstehenden Befehle beziehen sich auf Claude Code; die MCP-Serverseite enthält die Konfiguration für Visual Studio, VS Code und Cursor.

Wie das funktioniert

Zwei Dinge ermöglichen es einem Agenten, das richtig zu machen, anstatt nur plausibel zu sein: der Power Portals Pro MCP-Server, der deine tatsächliche Dataverse-Umgebung liest und die Konfigurationsänderungen vornimmt, die ein Portal benötigt, sowie die Anweisungen, die jedes generierte Projekt für Agenten ausliefert.

1. Installieren Sie den MCP-Server

Installieren Sie es einmal pro Maschine, im Benutzerbereich, sodass es in jedem Ordner verfügbar ist – einschließlich des leeren Ordners, in dem Sie das Projekt gerade erstellen möchten:

dnxWird mit dem .NET 10 SDK ausgeliefert. Neustarte deinen Agenten, falls er bereits läuft, und überprüfe dann, ob der Server vorhanden ist, indem du etwas fragst, das nur er beantworten kann, wie zum Beispiel "Verwenden Sie get_component_api, um die MainGrid-Parameter aufzulisten".

2. Erstellen Sie einen Ordner und melden Sie sich an

Erstellen Sie den Ordner, in dem Ihr Portal sich befindet, und melden Sie sich darin an – einmal in Ihrer Dataverse-Umgebung und einmal in Azure, über die die App-Registrierungen in Schritt 4 erstellt werden:

Beide Anmeldungen gehören zu diesem Ordner, nicht zum Rechner. Sie schreiben .ppp/mcp.json hier, benennen die Umgebung und den Tenant und behalten deine Token in deinem Benutzerprofil, sodass ein Projekt in einem anderen Ordner gleichzeitig auf einen anderen Kunden zeigen kann. Beide verwenden einen Gerätecode, sodass du sie auf deinem Handy abschließen kannst. Wenn dein Konto mehrere Azure-Abonnements sieht, musst du noch keine auswählen – das ist erst relevant, wenn du sie bereitgestellt hast. Dann starte deinen Agenten in diesem Ordner.

3. Das Projekt erstellen

Sagen Sie dem Agenten, was Sie bauen – welchen Stack, React oder Blazor, und wer sich anmelden wird:

Der Agent installiert die Projektvorlagen, falls sie fehlen, fragt nach allem, was er aus deiner Anfrage nicht erkennen kann, und führt dotnet new. Jeder Kunde wird zu einem Kontakt in Dataverse, und was er sehen kann, wird durch die Sicherheitsregistrierungen im Projekt. Das ist das Standard-Sicherheitsmodell der Vorlage Program.csund das, das der Rest dieses Walkthroughs verwendet. Beide Stacks funktionieren; jeder spätere Prompt ist gleich.

Anmerkung

Neustarte deinen Agenten im selben Ordner, sobald das Projekt existiert. Das Projekt bringt sein eigenes .mcp.json, das den MCP-Server mit der Version verbindet, die zu seinen Paketen passt, zusammen mit seinen Fähigkeiten und AGENTS.md — und die meisten Agenten lesen diese nur, wenn sie starten. Genehmigen Sie den MCP-Server des Projekts, wenn Ihr Agent darum bittet.

4. Verbinden Sie es mit Dataverse

Ein neues Projekt startet erst, wenn es Dataverse erreicht hat. Bitte den Agenten, das einzurichten:

Der Agent folgt den set-up-portal Fähigkeiten des Projekts und beginnt damit check_setup , zu sehen, was fehlt. Erwarten Sie, jede dieser Dinge zu genehmigen:

Die Verbindungseinstellungen landen in den Benutzergeheimnissen des Projekts, sobald jeder Schritt abgeschlossen ist. Der Agent beendet den Ablauf, indem er erneut ausgeführt check_setup wird; sobald das sauber ist, startet man das Projekt – F5 oder dotnet run im Serverprojekt – und man sieht die Startseite und die Beispielseiten der Vorlage.

5. Entscheiden, was Kunden sehen sollen

Beschreiben Sie das gewünschte Ergebnis in geschäftlichen Begriffen und lassen Sie den Agenten die Tabelle finden. Es lohnt sich, vor dem Schreiben zu fragen: Der Agent liest Ihre Umgebung und schlägt vor, was tatsächlich vorhanden ist, inklusive Ihrer eigenen Tabellen und Spalten.

Erwarte, dass er die Tabelle mit list_tables und describe_table, seine Ansichten mit list_viewsliest, und mit der Case-Tabelle (incident), der Suche, die einen Fall mit dem Kunden verknüpft (customerid), sowie den Spalten, die angezeigt und bearbeitet werden sollen, zurückkommt. Passen Sie diese Liste jetzt an: Sie entscheidet, was das Portal veröffentlicht.

6. Sichern Sie den Tisch

Ein Portal zeigt nichts, was ihm nicht aufgetragen wurde zu zeigen: Bis eine Tabelle registriert ist, geben seine Seiten 403 oder ein leeres Raster zurück. Bitte den Agenten, die Tabelle zu öffnen – nur so weit, wie du es beabsichtigst:

Der Agent arbeitet sich durch die secure-a-table Fähigkeit des Projekts, bestätigt, für wen der Zugriff gilt, für welche Zeilen, welche Operationen und welche Spalten. Überspringe keine davon: Jede Antwort ändert, was veröffentlicht wird.

Dann schreibt es die Registrierung im Serverprojekt. Program.csFür dieses Beispiel erwarte man etwas wie:

RowsOwnedByContact("customerid") beschränkt jede Abfrage auf die eigenen Fälle des angemeldeten Kontakts und macht ihn zum Kunden in einem von ihm erstellten Fall. Spalten sind opt-in: Alles, was nicht namentlich ist Reading , wird zurückgehalten, und nur die Spalten in Writing können geändert werden. WritingOnCreate Deckt die Priorität ab – wird beim Protokollieren des Falls festgelegt, ab da nur lesbar. Sicherheit deckt jede Option ab.

Die eigene Rolle des Anwendungsbenutzers

Die Registrierung entscheidet, was jeder Kunde tun darf, aber das Portal kommuniziert weiterhin mit Dataverse als Anwendungsbenutzer, und dieser Nutzer benötigt Rechte direkt in der Tabelle. Sie übernehmen ab Schritt 4 die eigene Sicherheitsrolle, nie die Power Portals Pro-Rolle. Der Agent:

  1. Findet deine Rolle auf dem Anwendungsbenutzer mit get_application_user – und falls Schritt 4 keine erstellt hat, erstellst du sie mit create_security_role und weist sie mit assign_application_user_rolezu.
  2. Gewährt ihr das, was die Registrierung benötigt mit add_table_privileges_to_role: Lesen, Erstellen, Schreiben und Anhängen auf incident, und Anhängen An auf contact, weil jeder neue Fall mit einem Kontakt verknüpft ist. Dann läuft check_setupes , das die Tabellen, die deine Seiten verwenden, mit den Tabellen vergleicht, die dein Code registriert.

Warum eine eigene Rolle?

Die Power Portals Pro-Rolle wird in einer verwalteten Lösung ausgeliefert. Dataverse würde es ermöglichen, Privilegien hinzuzufügen, aber das nächste Upgrade dieser Lösung kann sie wieder so versetzen, wie sie ausgeliefert wurde, und deine Zuschüsse mitnehmen – daher weigert sich der MCP-Server, Privilegien zu einer verwalteten Rolle hinzuzufügen. Eine eigene Rolle zeigt jedem, der später die Umgebung überprüft, genau, was das Portal erreichen kann.

7. Fügen Sie die Seiten hinzu

Nachdem der Tisch gesichert ist, fordern Sie beide Seiten auf einmal an – die Liste im Menü und die Seite, auf der ein Fall geöffnet wird:

Der Agent folgt der add-table-pages Kompetenz des Projekts. Er fügt die Routen, eine Listenseite mit , MainGridden Menüeintrag und eine RecordContext Seite, die ebenfalls leer zum Loggen eines neuen Falls geöffnet wird, hinzugefügt. Er liest reale Ansichts-IDs mit list_views statt Platzhalter zu schreiben und behält jede Spalte innerhalb dessen, was die Registrierung den Kunden erlaubt – die Bestands-Dynamics-Ansichten enthalten nur agentenbasierte Spalten, also erwarten Sie, dass sie eigene Ansichten anbietet. Wenn Sie nach einer Spalte fragen, die die Registrierung weglässt, sollte sie aufhören und fragen, anstatt den Zugang stillschweigend zu erweitern. Verwandte Datensätze können als Unterraster auf die Fallseite gehen; benennen Sie sie, und auch diese Tabelle wird gesichert.

8. Versuchen Sie es als zwei Kunden

Der Agent kann sich nicht als Kunde anmelden, daher gehört dieser Teil Ihnen. Es ist auch der Test, der am wichtigsten ist: Der Sinn der Registrierung ist, was ein Kunde nicht sehen kann .

  1. Starten Sie das Portal und registrieren Sie einen Kunden. Die Bestätigungs-E-Mail erscheint, sobald das Postfach der E-Mail-Warteschlange Test & Enable in Schritt 4 bestanden hat.
  2. Öffne Fälle, logge einen neuen Fall und öffne ihn dann erneut aus dem Raster. Ändere den Titel und speichere.
  3. Melden Sie sich ab, registrieren Sie einen zweiten Kunden und öffnen Sie Cases. Das Raster sollte leer sein: Der Fall des ersten Kunden gehört nur ihm. Das Einfügen der Adresse dieses Falls in diese Sitzung sollte sie ebenfalls nicht anzeigen.

Wenn einer der Kunden etwas sieht, das er nicht sehen sollte, passen Sie es nicht von Hand an. Sagen Sie dem Agenten, was Sie gesehen und erwartet haben, und lassen Sie es erneut ablaufen secure-a-table .

Wenn etwas nicht richtig aussieht

Wohin als Nächstes gehen