Funzione ER ORDERBY
La funzione ORDERBY
restituisce l'elenco specificato come un valore Elenco di record dopo che è stato ordinato in base agli argomenti specificati. Questi argomenti possono essere definiti come espressioni.
Sintassi 1
ORDERBY (list, expression 1[, expression 2, …, expression N])
Sintassi 2
ORDERBY (location, list, expression 1[, expression 2, …, expression N])
Nota
Questa sintassi è supportata per Microsoft Dynamics 365 Finance versione 10.0.25 e successiva.
Argomenti
location
: Stringa
La posizione in cui deve essere eseguito l'ordinamento. Le seguenti opzioni sono valide:
- "Query"
- "InMemory"
list
: Elenco di record
Il percorso valido di un'origine dati del tipo di dati Elenco di record.
expression 1
: Campo
Il percorso valido di un campo dell'origine dati a cui fa riferimento l'argomento list
della funzione chiamata. Il campo di riferimento deve essere un campo del tipo di dati primitivo. Questo argomento è obbligatorio.
expression N
: Campo
Il percorso valido di un campo dell'origine dati a cui fa riferimento l'argomento list
della funzione chiamata. Il campo di riferimento deve essere un campo del tipo di dati primitivo. Questi argomenti aggiuntivi sono facoltativi.
Valori restituiti
Elenco di record
L'elenco risultante di record.
Note sull'utilizzo
Sintassi 1
L'ordinamento dei dati viene sempre eseguito nella memoria del server delle applicazioni. Per ulteriori dettagli, vedi l'esempio 1.
Sintassi 2
Ordinamento in memoria
Quando l'argomento location
è specificato come InMemory, l'ordinamento dei dati viene eseguito nella memoria di un server delle applicazioni. Per ulteriori dettagli, vedi l'esempio 2.
Ordinamento nel database
Quando l'argomento location
è specificato come Query, l'ordinamento dei dati viene eseguito a livello di database. In questo caso, l'argomento list
deve puntare a una delle seguenti origini dati Creazione di report elettronici (ER) che specifica l'origine dell'applicazione per la quale è possibile stabilire una query diretta del database:
- Origine dati del tipo Record di tabella
- Relazione di un'origine dati del tipo Record di tabella
- Origine dati del tipo Campo calcolato
Gli argomenti expression 1
e expression N
devono puntare ai campi di un'origine dati ER che specifica i campi pertinenti dell'origine dell'applicazione per la quale è anche possibile stabilire una query diretta del database.
Se non è possibile stabilire una query diretta al database, si verifica un errore di convalida nella finestra di progettazione del mapping del modello ER. Il messaggio ricevuto indica che l'espressione ER che include la funzione ORDERBY
non può essere eseguita in fase di esecuzione.
Per prestazioni migliori, è consigliabile utilizzare l'opzione Query quando l'ordinamento è configurato per le origini dati dell'applicazione che potrebbero contenere un numero elevato di record (ad esempio, per le tabelle dell'applicazione transazionale).
Nota
La stessa funzione ORDEBY
non può essere tradotta in una query di database diretta. Pertanto, un'origine dati ER che contiene questa funzione non è interrogabile. Inoltre, non può essere utilizzato nell'ambito delle funzioni ER come FILTER e ALLITEMSQUERY, dove possono essere utilizzate solo origini dati interrogabili.
Per maggiori dettagli, vedi l'esempio 3 e l'esempio 4.
Comparabilità
Poiché il motore di database SQL e il server delle applicazioni Finance possono utilizzare un valore di classificazione diverso per un singolo carattere, il risultato dell'ordinamento dello stesso elenco di record può differire quando un campo Stringa viene utilizzato per l'ordinamento. Per ulteriori dettagli, vedi l'esempio 5.
Esempio 1: esecuzione predefinita in memoria
Se si immette l'origine dati DS del tipo Campo calcolato e contiene l'espressione SPLIT ("C|B|A", "|")
, l'espressione FIRST( ORDERBY( DS, DS. Value)).Value
restituisce il valore di testo "A".
Esempio 2: esecuzione esplicita in memoria
Se Fornitore è configurato come un'origine dati ER del tipo Record di tabella che fa riferimento alla tabella VendTable, entrambe le espressioni ORDERBY (Vendor, Vendor.'name()')
e ORDERBY ("InMemory", Vendor, Vendor.'name()')
restituiscono un elenco di fornitori ordinato per nome in ordine crescente.
Quando configuri l'espressione ORDERBY ("Query", Vendor, Vendor.'name()')
nella finestra di progettazione del mapping del modello ER, si verifica un errore di convalida in fase di progettazione, perché il percorso Vendor.'name()'
si riferisce a un metodo dell'applicazione con una logica che non può essere tradotta in una query diretta del database.
Esempio 3: query di database
Se TaxTransaction è configurato come origine dati ER del tipo Record di tabella che fa riferimento alla tabella TaxTrans, l'espressione ORDERBY ("Query", TaxTransaction, TaxTransaction.TaxCode)
ordina i record a livello di database dell'applicazione e restituisce un elenco di transazioni fiscali ordinate per codice fiscale in ordine crescente.
Esempio 4: origini dati interrogabili
Se TaxTransaction è configurata come origine dati ER del tipo Record di tabelle che fa riferimento alla tabella TaxTrans, l'origine dati ER TaxTransactionFiltered può essere configurata in modo che contenga l'espressione FILTER(TaxTransaction, TaxCode="VAT19")
che recupererà le transazioni per un codice fiscale specificato. Poiché l'origine dati ER TaxTransactionFiltered configurata è interrogabile, l'espressione ORDERBY ("Query", TaxTransactionFiltered, TaxTransactionFiltered.TransDate)
può essere configurata per restituire l'elenco delle transazioni fiscali filtrate ordinate per data di transazione in ordine crescente.
Se configuri TaxTransactionOrdered come origine dati ER del tipo Campo calcolato che contiene l'espressione ORDERBY ("Query", TaxTransaction, TaxTransaction.TransDate)
e un'origine dati ER del tipo Campo calcolato che contiene l'espressione FILTER(TaxTransactionOrdered, TaxCode="VAT19")
, si verifica un errore di convalida in fase di progettazione nella finestra di progettazione del mapping del modello ER. Questo errore si verifica perché il primo argomento della funzione FILTER deve fare riferimento a un'origine dati ER interrogabile, ma l'origine dati TaxTransactionOrdered che contiene la funzione ORDERBY
non è interrogabile.
Esempio 5: comparabilità
Prerequisiti
- Immetti l'origine dati DS1 del tipo Campo calcolato che contiene l'espressione
SPLIT ("D1|_D2|D3", "|")
- Apri la pagina Valori della dimensione finanziaria e seleziona la dimensione CostCenter.
- Immetti i seguenti valori di dimensione: D1, _D2 e D3.
Ordinamento in memoria
- Configura l'origine dati DS2 del tipo Campo calcolato che contiene l'espressione
ORDERBY("InMemory", DS1, DS1.Value)
. - Tieni presente che l'espressione
FIRST(DS2).Value
restituisce il valore di testo "D1", l'espressioneINDEX(DS2, COUNT(DS2)).Value
restituisce il valore di testo "_D2" e l'espressioneSTRINGJOIN(DS2, DS2.Value, "|")
restituisce il valore di testo "D1|D3|_D2".
Ordinamento nel database
- Immetti l'origine dati DS3 del tipo Record di tabella che fa riferimento all'entità FinancialDimensionValueEntity.
- Configura l'origine dati DS4 del tipo Campo calcolato che contiene l'espressione
FILTER(DS3, DS3.FinancialDimension="CostCenter")
. - Configura l'origine dati DS5 del tipo Campo calcolato che contiene l'espressione
ORDERBY(DS4, DS4.DimensionValue)
. - Tieni presente che l'espressione
FIRST(DS5).Value
restituisce il valore di testo "_D2", l'espressioneINDEX(DS5, COUNT(DS5)).Value
restituisce il valore di testo "D3" e l'espressioneSTRINGJOIN(DS5, DS5.Value, "|")
restituisce il valore di testo "_D2|D1|D3".