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

Wird pa app find-dataverse-api verwendet, um nach Vorgängen anhand des Namens in der Umgebung zu suchen, die für Ihre Code-App konfiguriert ist:

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 für den Vorgangsnamen eine Übereinstimmung mit nicht beachteter Teilzeichenfolge 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 WhoAmIihren 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 werden verwendet Promise<IOperationResult<void>>.
  • Vorgänge, die einen skalaren Wert zurückgeben.Promise<IOperationResult<T>>
  • Vorgänge, die einen komplexen Typ oder eine komplexe Tabelle zurückgeben.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 Vorgangsschema überschrieben, neu generiert dataSourcesInfo.ts, doppelte Konfigurationseinträge entfernt und vorhandene Referenztabellenschemadateien 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.

Die Suche entspricht nur dem Vorgangsnamen. Probieren Sie einen kürzeren oder anderen Suchbegriff aus. Einschließen --json , um die Antwort zu prü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.