Hinzufügen einer Dataverse-Aktion oder -Funktion zu Ihrer Code-App

In diesem Artikel erfahren Sie, wie Sie Dataverse-Aktionen und -Funktionen mithilfe der Power Apps CLI einer Power Apps Code-App ermitteln und hinzufügen.

Voraussetzungen

  • Eine Power Apps-Code-App, die mit pa app init initialisiert wurde
  • @microsoft/power-apps Version 1.1.1 oder höher in Ihrem package.json
  • Zugriff auf die Dataverse-Umgebung, die den Vorgang enthält, den Sie verwenden möchten

Die CLI fordert Sie auf, sich anzumelden, wenn Sie noch nicht authentifiziert sind.

Schritt 1: Suchen verfügbarer Vorgänge

Verwenden Sie pa app find-dataverse-api, um in der für Ihre Code-App konfigurierten Umgebung nach Vorgängen nach Namen zu suchen:

pa app find-dataverse-api --search "WhoAmI"

Die Ausgabe listet übereinstimmende Vorgänge auf und enthält den Vorgangstyp, Parameter, Bindungstabelle und Rückgabetyp.

====================================================================================================
Dataverse Operations
====================================================================================================

  WhoAmI  (Function)
  Returns: mscrm.WhoAmIResponse

----------------------------------------------------------------------------------------------------
Total: 1 operation(s)
====================================================================================================

Diese Funktion und der Rückgabetyp sind hier dokumentiert:

Sie können auch nach Aktionen suchen. Beispiele:

pa app find-dataverse-api --search "AddToQueue"
====================================================================================================
Dataverse Operations
====================================================================================================

  AddToQueue  (Action)
  Bound to: mscrm.queue
  Parameters:
    - Target: mscrm.crmbaseentity
    - SourceQueue?: mscrm.queue
    - QueueItemProperties?: mscrm.queueitem
  Returns: mscrm.AddToQueueResponse

----------------------------------------------------------------------------------------------------
Total: 1 operation(s)
====================================================================================================

Diese Aktion, Parametertypen und die zurückgegebenen Typen werden hier dokumentiert:

Bei der Suche wird eine Teilzeichenfolgenübereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung im Namen der Operation verwendet. Um JSON für Skript- oder Codierungs-Agent-Szenarien zurückzugeben, schließen Sie Folgendes ein --json:

pa app find-dataverse-api --search "WhoAmI" --json

Schritt 2: Hinzufügen des Vorgangs

Nachdem Sie den Vorgangsnamen gefunden haben, fügen Sie ihn der App hinzu:

pa app add dataverse-api --api-name WhoAmI

Der Befehl:

  1. Ruft die Vorgangsdefinition vom Dataverse-Endpunkt $metadataab.
  2. Schreibt das Vorgangsschema in <schemaPath>/dataverse/<ApiName>.Schema.json.
  3. Speichert Schemas für Dataverse-Tabellen, auf die vom Vorgang verwiesen wird.
  4. Aktualisiert power.config.json.
  5. Regeneriert dataSourcesInfo.ts.
  6. Generiert TypeScript-Modelle und eine Dienstklasse unter <codeGenPath>/generated/.

Wenn Sie den Vorgang hinzufügen, gibt die CLI eine Bestätigung zurück:

Dataverse API 'WhoAmI' added successfully.

Schritt 3: Verwenden des generierten Diensts

Der Befehl generiert eine <ApiName>Service Klasse für den Vorgang. Importieren Sie nach dem Hinzufügen von WhoAmI den zugehörigen Dienst:

import { WhoAmIService } from './generated/services/WhoAmIService';

Rufen Sie die generierte Methode auf:

const result = await WhoAmIService.WhoAmI();
// result.value contains BusinessUnitId, UserId, and OrganizationId.

Bei einer gebundenen Aktion wie AddToQueuez. B. ist das erste Argument die ID des Datensatzes, auf dem die Aktion ausgeführt wird:

import { AddToQueueService } from './generated/services/AddToQueueService';

const result = await AddToQueueService.AddToQueue(
  queueId,
  target,
  sourceQueue,
  queueItemProperties
);

Parameter- und Rückgabetypen basieren auf dem Dataverse-Schema:

  • GUID-Parameter verwenden den string Typ.
  • Nachschlageparameter, die auf eine Dataverse-Tabelle verweisen, verwenden Record<string, unknown>.
  • Vorgänge ohne Rückgabewert verwenden Promise<IOperationResult<void>>.
  • Vorgänge, die einen skalaren Wert zurückgeben, verwenden Promise<IOperationResult<T>>.
  • Operationen, die einen komplexen Typ oder eine Tabelle zurückgeben, verwenden Promise<IOperationResult<Record<string, unknown>>>.

Aktualisieren eines Vorgangs

Führen Sie die Ausführung pa app add dataverse-api erneut mit demselben Vorgangsnamen aus, um die neueste Definition abzurufen:

pa app add dataverse-api --api-name WhoAmI

Mit dem Befehl wird das Operationsschema überschrieben, das dataSourcesInfo.ts neu generiert, doppelte Konfigurationseinträge entfernt und vorhandene Schema-Dateien referenzierter Tabellen beibehalten.

Erstellte oder aktualisierte Dateien

Datei Ändern
<schemaPath>/dataverse/<ApiName>.Schema.json Erstellt oder überschreibt das Vorgangsschema.
<schemaPath>/dataverse/<TableName>.Schema.json Erstellt Schemas für referenzierte Tabellen, wenn sie noch nicht vorhanden sind.
<schemaPath>/appschemas/dataSourcesInfo.ts Generiert die Datenquelleninformationen erneut.
power.config.json Fügt den Dataverse-Verweis hinzu und fügt für einen gebundenen Vorgang die Bindungstabelle hinzu.
<codeGenPath>/generated/models/<TableName>Model.ts Generiert Modelle für referenzierte Tabellen.
<codeGenPath>/generated/services/<ApiName>Service.ts Generiert die Dienstklasse für den Vorgang.

Problembehandlung

Es wurden keine Vorgänge gefunden.

Bei der Suche wird nur nach dem Namen der Operation gesucht. Probieren Sie einen kürzeren oder anderen Suchbegriff aus. Fügen Sie --json ein, um die Antwort zu überprüfen.

Generierte Dateien sind veraltet

Führen Sie die Ausführung pa app add dataverse-api erneut mit demselben Vorgangsnamen aus. Wenn Sie den Vorgang umbenannt oder entfernt haben und veraltete generierte Dateien verbleiben, löschen Sie diese Dateien, bevor Sie den Vorgang neu generieren.