navigateTo (Informazioni di riferimento sulle API client)

Consente di passare all'elenco di tabelle, al record di tabella, alla risorsa Web HTML o alla pagina personalizzata specificata.

Note

Questo metodo è supportato solo nell'interfaccia unificata.

Sintassi

Usare la sintassi seguente per chiamare Xrm.Navigation.navigateTo().

Xrm.Navigation.navigateTo(pageInput,navigationOptions).then(successCallback,errorCallback);

Parameters

Il metodo accetta i parametri seguenti.

Name Type Obbligatorio Description
pageInput Oggetto Sì Input sulla pagina a cui passare. Vedere il parametro pageInput
navigationOptions Oggetto No Opzioni per passare a una pagina: aprire inline o in una finestra di dialogo. Se non si specifica questo parametro, il metodo apre la pagina inline per impostazione predefinita.
successCallback funzione No Funzione da eseguire dopo la corretta navigazione inline o quando una finestra di dialogo viene chiusa. Per i tipi di pagina che supportano la restituzione di un valore, la funzione riceve tale valore come argomento.
errorCallback Funzione No Funzione da eseguire quando l'operazione ha esito negativo.

parametro pageInput

La definizione dell'oggetto cambia a seconda del tipo di pagina a cui passare: elenco di entità, record di entità, dashboard, risorsa Web HTML, pagina personalizzata o pagina generativa.

Elenco entità

L'oggetto elenco di entità contiene i valori seguenti.

Name Type Description
pageType Stringa Specificare entitylist.
entityName Stringa Nome logico della tabella da caricare nel controllo elenco.
viewId Stringa (Facoltativo) ID della visualizzazione da caricare. Se non lo specifichi, l'app passa alla visualizzazione principale predefinita per la tabella.
viewType Stringa (Facoltativo) Tipo di visualizzazione da caricare. Specificare savedquery o userquery.

Record dell'entità

L'oggetto record di entità contiene i valori seguenti.

Name Type Description
pageType Stringa Specificare entityrecord.
entityName Stringa Nome logico della tabella per cui visualizzare il modulo.
entityId Stringa (Facoltativo) ID del record di tabella per cui visualizzare il modulo. Se non si specifica questo valore, il modulo viene aperto in modalità di creazione.
createFromEntity Ricerca (Facoltativo) Definisce un record che fornisce valori predefiniti in base ai valori di colonna mappati. L'oggetto di ricerca presenta le seguenti proprietà di stringa: entityType, ID e name (facoltativo).
data Oggetto (Facoltativo) Oggetto dizionario che passa parametri aggiuntivi al form.

I parametri possono essere colonne di tabella con valori predefiniti impostati nei nuovi moduli (vedere Impostare i valori di colonna usando i parametri passati a una maschera) o parametri personalizzati a cui si accede nel modulo usando formContext.data.attributes (vedere Configurare un modulo per accettare parametri di querystring personalizzati e formContext.data). I parametri non validi causano un errore.

formId Stringa (Facoltativo) ID dell'istanza del modulo da visualizzare.
isCrossEntityNavigate Boolean (Facoltativo) Indica se il modulo viene spostato da una tabella diversa usando il flusso del processo aziendale tra tabelle.
isOfflineSyncError Boolean (Facoltativo) Indica se sono presenti errori di sincronizzazione offline.
processId Stringa (Facoltativo) ID del processo aziendale da visualizzare nel modulo.
processInstanceId Stringa (Facoltativo) ID dell'istanza del processo aziendale da visualizzare nel modulo.
relationship Oggetto (Facoltativo) Definire un oggetto relazione per visualizzare i record correlati nel form. Vedere la relazione.
selectedStageId Stringa (Facoltativo) ID della fase selezionata nell'istanza del processo aziendale.
tabName Stringa (Facoltativo) Imposta lo stato attivo sulla scheda del form.
Oggetto Relationship

L'oggetto relazione, utilizzato nel record Entity, contiene i valori seguenti.

Name Type Description
attributeName Stringa Nome della colonna utilizzata per la relazione.
name Stringa Nome della relazione.
navigationPropertyName Stringa Nome della proprietà di navigazione per questa relazione.
relationshipType Numero Tipo di relazione. Specificare uno dei valori seguenti: 0:OneToMany, 1:ManyToMany.
roleType Numero Tipo di ruolo nella relazione. Specificare uno dei valori seguenti: 1:Referencing, 2:AssociationEntity.

Dashboard

Usare questo oggetto come pageInput parametro quando si vuole aprire un dashboard.

L'oggetto dashboard contiene i valori seguenti.

Name Type Description
pageType Stringa Specificare dashboard.
dashboardId Stringa ID del dashboard da caricare. Se non si specifica l'ID, l'app passa al dashboard predefinito.

Risorsa Web HTML

Usare questo oggetto come pageInput parametro quando si desidera aprire una risorsa Web HTML.

L'oggetto risorsa Web HTML contiene i valori seguenti.

Name Type Description
pageType Stringa Specificare webresource.
webresourceName Stringa Nome della risorsa Web da caricare.
data Stringa (Facoltativo) Dati da passare alla risorsa Web.

Pagina personalizzata

Utilizzare questo oggetto come pageInput parametro quando si desidera aprire una pagina personalizzata.

L'oggetto pagina personalizzato contiene i valori seguenti.

Name Type Description
pageType Stringa Specificare custom.
name Stringa Nome logico della pagina personalizzata da aprire.
entityName Stringa (Facoltativo) Nome logico della tabella da rendere disponibile nella pagina personalizzata tramite Param("entityName").
recordId Stringa (Facoltativo) ID del record di tabella da rendere disponibile nella pagina personalizzata tramite Param("recordId").

Pagina generativa

Usare questo oggetto come pageInput parametro quando si desidera aprire una pagina generativa.

Per usare recordId, entityNameo data, la pagina generativa di destinazione deve essere configurata per accettare i parametri di input.

L'oggetto pagina generativa contiene i valori seguenti.

Name Type Description
pageType Stringa Specificare generative.
pageId Stringa ID della pagina generativa da aprire.
recordId Stringa (Facoltativo) GUID di un record da passare alla pagina.
entityName Stringa (Facoltativo) Nome logico della tabella Dataverse corrispondente all'oggetto recordId.
data Oggetto (Facoltativo) Oggetto JSON contenente parametri personalizzati aggiuntivi da passare alla pagina.

Vedere esempi che illustrano come passare a e da una pagina generativa usando l'API client

L'oggetto navigationOptions contiene i valori seguenti.

Name Type Description
target Numero Specificare 1 per aprire la pagina inline. Specificare 2 per aprire la pagina in una finestra di dialogo.
Inoltre, il resto dei valori (larghezza, altezza e posizione) è valido solo se si specifica 2 in questo valore (pagina aperta in una finestra di dialogo).
Nota: è possibile aprire solo elenchi di entità inline. È possibile aprire record di entità, risorse Web e pagine generative inline o in una finestra di dialogo.
width Numero o oggetto (Facoltativo) Larghezza del dialogo. Per specificare la larghezza in pixel, digitare un valore numerico. Per specificare la larghezza in percentuale, specificare un oggetto di tipo SizeValue con le proprietà seguenti:
- value: valore numerico di tipo Number.
- unit: unità di misura di tipo String. Specificare % o px. Il valore predefinito è px.
height Numero o oggetto (Facoltativo) Altezza del dialogo. Per specificare l'altezza in pixel, digitare un valore numerico. Per specificare la larghezza in percentuale, specificare un oggetto di tipo SizeValue con le proprietà seguenti:
- valore: valore numerico di tipo Number.
- unit: unità di misura di tipo String. Specificare % o px. Il valore predefinito è px.
position Numero (Facoltativo) Specificare 1 per aprire la finestra di dialogo al centro; 2 per aprire il dialogo sul lato lontano. Il valore predefinito è 1 (al centro).
title Stringa (Facoltativo) Titolo della finestra di dialogo nella parte superiore della finestra di dialogo al centro o sul lato.

Valore restituito

Restituisce una promessa. Il valore passato quando la promessa viene risolta dipende dal tipo di destinazione e di pagina:

  • Inline: la promessa viene risolta al termine della navigazione e non restituisce un valore.
  • Finestra di dialogo: la promessa viene risolta alla chiusura del dialogo.
    • Per un record di entità aperto in modalità di creazione, la promessa viene risolta con un oggetto contenente una savedEntityReference matrice.
    • Per una pagina generativa, la promessa viene risolta con un oggetto la cui returnValue proprietà contiene il valore passato più di recente a dataApi.setPageOutput(value). Se la pagina generativa non imposta un valore di output, la chiusura della finestra di dialogo selezionando Annulla o il pulsante di chiusura restituisce un valore non definito returnValue.
    • Altri tipi di pagina non restituiscono un valore quando la finestra di dialogo viene chiusa.

La savedEntityReference matrice restituita per un record di entità contiene queste proprietà:

  • entityType: nome logico della tabella.
  • id: rappresentazione di stringa del GUID del record.
  • name: valore della colonna primaria del record.

Example

Gli esempi seguenti illustrano l'esplorazione inline di diversi tipi di pagina e in una finestra di dialogo.

Esempio 1: Aprire l'elenco di account

Apre l'elenco di account principale inline.

var pageInput = {
    pageType: "entitylist",
    entityName: "account"
};
Xrm.Navigation.navigateTo(pageInput).then(
    function success() {
            // Run code on success
    },
    function error() {
            // Handle errors
    }
);

Esempio 2: Aprire un record di account esistente all'interno di una finestra di dialogo

Apre un modulo di account esistente all'interno di una finestra di dialogo.

var pageInput = {
    pageType: "entityrecord",
    entityName: "account",
    entityId: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee" //replace with actual ID
};
var navigationOptions = {
    target: 2,
    height: {value: 80, unit:"%"},
    width: {value: 70, unit:"%"},
    position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
    function success() {
            // Run code on success
    },
    function error() {
            // Handle errors
    }
);

Esempio 3: Aprire un modulo account nella modalità di creazione all'interno di una finestra di dialogo

Apre un modulo account in modalità di creazione all'interno di una finestra di dialogo e restituisce il riferimento al record creato al momento del salvataggio.

var pageInput = {
    pageType: "entityrecord",
    entityName: "account"    
};
var navigationOptions = {
    target: 2,
    height: {value: 80, unit:"%"},
    width: {value: 70, unit:"%"},
    position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
    function success(result) {
            console.log("Record created with ID: " + result.savedEntityReference[0].id + 
            " Name: " + result.savedEntityReference[0].name)
            // Handle dialog closed
    },
    function error() {
            // Handle errors
    }
);

Esempio 4: Aprire una risorsa Web HTML in una finestra di dialogo

Apre una risorsa Web HTML in una finestra di dialogo.

var pageInput = {
    pageType: "webresource",
    webresourceName: "new_sample_webresource.htm"
};
var navigationOptions = {
    target: 2,
    width: 500, // value specified in pixel
    height: 400, // value specified in pixel
    position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
    function success() {
            // Run code on success
    },
    function error() {
            // Handle errors
    }
);

Esempio 5: Aprire una pagina generativa con parametri di input in una finestra di dialogo

Apre una pagina generativa come finestra di dialogo centrata, passando un ID record, un nome di entità e parametri di dati personalizzati. La pagina generativa deve essere configurata per accettare questi parametri.

var pageInput = {
    pageType: "generative",
    pageId: "<genPageID>", // replace with the ID of your generative page
    recordId: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee", // replace with actual record GUID
    entityName: "account",
    data: { status: "active", category: "premium" }
};
var navigationOptions = {
    target: 2,
    height: {value: 80, unit: "%"},
    width: {value: 70, unit: "%"},
    position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
    function success(result) {
        const output = result?.returnValue;
        if (output) {
            console.log("Value returned by generative page:", output);
        }
    },
    function error(error) {
        console.log(error.message);
    }
);

Xrm.Navigation
Passare a e da una pagina generativa
Navigazione da e verso una pagina personalizzata (anteprima)