Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 :
- Ouvrez l’application pilotée par modèle contenant la page générative dans le concepteur d’application.
- Sélectionnez la page générative dans la liste des pages.
- 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.
Naviguer à partir d’une page générative à l’aide de l’API cliente
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.
Accédez à une autre page générative avec le contexte d’enregistrement et les données personnalisées
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.
Accédez à une page générative via l’URL (appelants externes uniquement)
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.