Accédez à une page générative à l’aide de l’API cliente

Cet article fournit des exemples de navigation vers des pages dégénératives dans des applications basées sur des modèles à l’aide de la méthode navigateTo de l’API cliente. Découvrez comment ouvrir des pages génératives inline ou dans une boîte de dialogue et comment transmettre des paramètres d’entrée tels qu’un ID d’enregistrement ou des données personnalisées.

Note

Cette méthode est uniquement prise en charge sur Unified Interface.

Rechercher l’ID de page

Chacun des exemples suivants nécessite l’ID de la page générative cible. Pour rechercher l’ID de page :

  1. Ouvrez l’application pilotée par modèle contenant la page générative dans le concepteur d’application.
  2. Sélectionnez la page générative dans la liste des pages.
  3. Dans le volet des propriétés, copiez le GUID affiché dans le champ Page Générative.

Ouvrir une page générative inline sans paramètres

Ouvre une page générative en tant qu’affichage inline de page complète sans paramètres d’entrée.

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
        }
    );

Ouvrir une page de génération en ligne avec le contexte d'enregistrement

Passe un recordId et entityName à la page générative pour que la page puisse charger et afficher un enregistrement spécifique. La page générative cible doit être configurée pour accepter ces paramètres.

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
        }
    );

Ouvrir une page générative inline avec des données personnalisées

Transmet un data objet contenant des paires clé-valeur personnalisées à la page générative. La page générative cible doit être configurée pour accepter ces paramètres.

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
        }
    );

Ouvrir une page générative en tant que boîte de dialogue centrée

Ouvre une page générative dans une boîte de dialogue centrée, en passant le contexte d’enregistrement et les données personnalisées. Ajustez width et height, le cas échéant.

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
        }
    );

Ouvrir une page générative comme boîte de dialogue latérale

Ouvre une page générative en tant que dialogue latéral à l’aide de 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
        }
    );

Non pris en charge : ouvrir une page générative dans un volet latéral

Important

L’ouverture d’une page générative à l’aide Xrm.App.sidePanes.createPane() n’est pas prise en charge actuellement.

// 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>" });

Utilisez plutôt une boîte de dialogue centrée ou latérale via Xrm.Navigation.navigateTo.

Lorsque vous naviguez à l’intérieur d’un composant de page générative, utilisez (window as any).Xrm cette option pour accéder à l’objet Xrm, car l’étendue du composant React ne fournit pas d’accès direct à celui-ci.

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

Note

Lorsque vous naviguez dans des applications basées sur des modèles, évitez de construire des URL brutes ou de manipuler window.location.

Vous pouvez accéder à une page générative en construisant une URL avec la structure suivante :

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

Vous devez encoder le paramètre data en URL au format JSON. Par exemple, pour passer un objet de filtre personnalisé :

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

Vous devez configurer la page générative cible pour accepter ces paramètres.