Freigeben über


Navigieren zu und von einer generativen Seite mithilfe der Client-API

Dieser Artikel enthält Beispiele für die Navigation zu generativen Seiten in modellgesteuerten Apps mithilfe der Client-API navigateTo-Methode . Erfahren Sie, wie Sie generative Seiten inline oder in einem Dialogfeld öffnen und Eingabeparameter wie eine Datensatz-ID oder benutzerdefinierte Daten übergeben.

Hinweis

Diese Methode wird nur für die einheitliche Oberfläche unterstützt.

Seite-ID finden

Jedes der folgenden Beispiele erfordert die ID der zielgeneriven Seite. So suchen Sie die Seiten-ID:

  1. Öffnen Sie die modellgesteuerte App, die die generative Seite im App-Designer enthält.
  2. Wählen Sie die generative Seite in der Seitenliste aus.
  3. Kopieren Sie im Eigenschaftenbereich die GUID, die im Feld "Generative Page " angezeigt wird.

Öffnen einer generativen Seiten-Inline ohne Parameter

Öffnet eine generative Seite als ganzseitige Inlineansicht ohne Eingabeparameter.

var pageInput = {
    pageType: "generative",
    pageId: "<genPageID>"
};
var navigationOptions = {
    target: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions)
    .then(
        function () {
            // Called when page opens
        }
    ).catch(
        function (error) {
            // Handle error
        }
    );

Öffnen einer generativen Seite inline mit Datensatzkontext

Übergibt ein recordId und ein entityName an die generative Seite, damit die Seite einen bestimmten Datensatz laden und anzeigen kann. Die zielgenerive Seite muss so eingerichtet sein, dass diese Parameter akzeptiert werden.

var pageInput = {
    pageType: "generative",
    pageId: "<genPageID>",
    entityName: "account",
    recordId: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee" // replace with actual record GUID
};
var navigationOptions = {
    target: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions)
    .then(
        function () {
            // Called when page opens
        }
    ).catch(
        function (error) {
            // Handle error
        }
    );

Öffnen einer generativen Seite inline mit benutzerdefinierten Daten

Übergibt ein data Objekt, das benutzerdefinierte Schlüsselwertpaare enthält, an die generative Seite. Die zielgenerive Seite muss so eingerichtet sein, dass diese Parameter akzeptiert werden.

var pageInput = {
    pageType: "generative",
    pageId: "<genPageID>",
    data: { status: "active", category: "premium" }
};
var navigationOptions = {
    target: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions)
    .then(
        function () {
            // Called when page opens
        }
    ).catch(
        function (error) {
            // Handle error
        }
    );

Öffnen einer generativen Seite als zentriertes Dialogfeld

Öffnet eine generative Seite in einem zentrierten Dialogfeld, wobei sowohl Datensatzkontext als auch benutzerdefinierte Daten übergeben werden. Passen Sie width und height nach Bedarf an.

var pageInput = {
    pageType: "generative",
    pageId: "<genPageID>",
    entityName: "account",
    recordId: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee", // replace with actual record GUID
    data: { view: "summary" }
};
var navigationOptions = {
    target: 2,
    position: 1,
    width: { value: 70, unit: "%" },
    height: { value: 80, unit: "%" },
    title: "<dialog title>"
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions)
    .then(
        function () {
            // Called when the dialog closes
        }
    ).catch(
        function (error) {
            // Handle error
        }
    );

Öffnen einer generativen Seite als seitenseitiges Dialogfeld

Öffnet eine generative Seite als Seitendialog mit position: 2.

var pageInput = {
    pageType: "generative",
    pageId: "<genPageID>"
};
var navigationOptions = {
    target: 2,
    position: 2,
    width: { value: 500, unit: "px" },
    title: "<dialog title>"
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions)
    .then(
        function () {
            // Called when the dialog closes
        }
    ).catch(
        function (error) {
            // Handle error
        }
    );

Nicht unterstützt: Öffnen einer generativen Seite in einem Seitenbereich

Von Bedeutung

Das Öffnen einer generativen Seite mithilfe der Verwendung Xrm.App.sidePanes.createPane() wird derzeit nicht unterstützt.

// Not supported — page content doesn't render
const pane = await Xrm.App.sidePanes.createPane({
    title: "My Generative Page",
    paneId: "GenPage",
    canClose: false,
    width: 400
});
pane.navigate({ pageType: "generative", pageId: "<genPageID>" });

Verwenden Sie stattdessen das zentrierte oder seitliche Dialogfeld Xrm.Navigation.navigateTo.

Wenn Sie innerhalb einer generativen Seitenkomponente navigieren, verwenden Sie (window as any).Xrm, um auf das Xrm-Objekt zuzugreifen, da der React-Komponentenbereich keinen direkten Zugriff darauf bietet.

const xrm = (window as any).Xrm;
xrm.Navigation.navigateTo({
    pageType: "generative",
    pageId: targetPageId,
    entityName: "account",
    recordId: selectedRecordId,
    data: { view: "summary" }
});

Hinweis

Wenn Sie in modellgesteuerten Apps navigieren, vermeiden Sie das Erstellen von unformatierten URLs oder das Manipulieren von window.location.

Sie können zu einer generativen Seite navigieren, indem Sie eine URL mit der folgenden Struktur erstellen:

https://<your-org>.crm.dynamics.com/main.aspx?appid={app-id}&pagetype=genux&id={page-id}&recordid={recordId}&entityname={entityName}&data={encoded-json}

Sie müssen den data Parameter als URL-kodiertem JSON angeben. So übergeben Sie beispielsweise ein benutzerdefiniertes Filterobjekt:

https://<your-org>.crm.dynamics.com/main.aspx?appid={app-id}&pagetype=genux&id={page-id}&data=%7B%22status%22%3A%22active%22%7D

Sie müssen die zielgenerative Seite so konfigurieren, dass sie diese Parameter akzeptiert.