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

  1. Immetti l'origine dati DS1 del tipo Campo calcolato che contiene l'espressione SPLIT ("D1|_D2|D3", "|")
  2. Apri la pagina Valori della dimensione finanziaria e seleziona la dimensione CostCenter.
  3. Immetti i seguenti valori di dimensione: D1, _D2 e D3.

Ordinamento in memoria

  1. Configura l'origine dati DS2 del tipo Campo calcolato che contiene l'espressione ORDERBY("InMemory", DS1, DS1.Value).
  2. Tieni presente che l'espressioneFIRST(DS2).Value restituisce il valore di testo "D1", l'espressione INDEX(DS2, COUNT(DS2)).Value restituisce il valore di testo "_D2" e l'espressione STRINGJOIN(DS2, DS2.Value, "|") restituisce il valore di testo "D1|D3|_D2".

Ordinamento nel database

  1. Immetti l'origine dati DS3 del tipo Record di tabella che fa riferimento all'entità FinancialDimensionValueEntity.
  2. Configura l'origine dati DS4 del tipo Campo calcolato che contiene l'espressione FILTER(DS3, DS3.FinancialDimension="CostCenter").
  3. Configura l'origine dati DS5 del tipo Campo calcolato che contiene l'espressione ORDERBY(DS4, DS4.DimensionValue).
  4. Tieni presente che l'espressione FIRST(DS5).Value restituisce il valore di testo "_D2", l'espressione INDEX(DS5, COUNT(DS5)).Value restituisce il valore di testo "D3" e l'espressione STRINGJOIN(DS5, DS5.Value, "|") restituisce il valore di testo "_D2|D1|D3".

Risorse aggiuntive

Funzioni di elenco