Función ORDERBY de ER
La función ORDERBY
devuelve la lista especificada como un valor Lista de registros después de que se haya ordenado de acuerdo con los argumentos especificados. Estos argumentos se pueden definir como expresiones.
Sintaxis 1
ORDERBY (list, expression 1[, expression 2, …, expression N])
Sintaxis 2
ORDERBY (location, list, expression 1[, expression 2, …, expression N])
Nota
Esta sintaxis se admite en Microsoft Dynamics 365 Finance versión 10.0.25 y posteriores.
Argumentos
location
: Cadena
La ubicación donde se debe ejecutar la clasificación. Las siguientes opciones son válidas:
- "Consulta"
- "InMemory"
list
: Lista de registros
La ruta válida de un origen de datos del tipo de datos Lista de registros.
expression 1
: Campo
La ruta válida de un campo del origen de datos al que hace referencia el argumento list
de la función llamada. El campo referenciado debe ser un campo del tipo de datos primitivo. Este argumento es obligatorio.
expression N
: Campo
La ruta válida de un campo del origen de datos al que hace referencia el argumento list
de la función llamada. El campo referenciado debe ser un campo del tipo de datos primitivo. Estos argumentos adicionales son opcionales.
Valores de retorno
Lista de registros
La lista de registros resultante.
Notas de uso
Sintaxis 1
La clasificación de datos siempre se realiza en la memoria del servidor de aplicaciones. Para obtener más información, consulte ejemplo 1.
Sintaxis 2
Clasificación en memoria
Cuando el argumento location
se especifica como InMemory, la clasificación de datos se realiza en la memoria de un servidor de aplicaciones. Para obtener más información, consulte ejemplo 2.
Clasificación en la base de datos
Cuando el argumento location
se especifica como Consulta, la clasificación de datos se realiza en el nivel de base de datos. En este caso, el argumento list
debe apuntar a uno de los siguientes orígenes de datos de informes electrónicos (ER) que especifique el origen de la aplicación para el que se puede establecer una consulta directa a la base de datos:
- Origen de datos del tipo Registros de tabla.
- Relación de un origen de datos del tipo Registros de tabla.
- Origen de datos del tipo Campo calculado.
Los argumentos expression 1
y expression N
deben apuntar a los campos de un origen de datos de ER que especifique los campos relevantes del origen de la aplicación para el que se puede establecer también una consulta directa a la base de datos:
Si no se puede establecer una consulta directa, se produce un error de validación en el diseñador de asignación de modelos ER. El mensaje que recibe indica que la expresión ER que incluye la función ORDERBY
no se puede ejecutar en runtime.
Para un mejor rendimiento, le recomendamos que utilice la opción Consulta opción cuando la ordenación está configurada para fuentes de datos de aplicaciones que pueden contener una gran cantidad de registros (por ejemplo, para tablas de aplicaciones transaccionales).
Nota
La función ORDEBY
en sí no se puede traducir a una consulta directa a la base de datos. Por lo tanto, una fuente de datos de ER que contiene esta función no se puede consultar. Tampoco se puede utilizar en el ámbito de las funciones de ER, como FILTER y ALLITEMSQUERY, donde solo se pueden utilizar fuentes de datos consultables.
Para más detalles, consulte el ejemplo 3 y ejemplo 4.
Comparabilidad
Debido a que el motor de la base de datos SQL y el servidor de aplicaciones de Finanzas pueden usar un valor de clasificación diferente para un solo carácter, el resultado de clasificación de la misma lista de registros puede diferir cuando un campo Cadena se utiliza para ordenar. Para obtener más información, consulte ejemplo 5.
Ejemplo 1: ejecución predeterminada en memoria
Si especifica el origen de datos DS del tipo Campo calculado y contiene la expresión SPLIT ("C|B|A", "|")
, la expresión FIRST( ORDERBY( DS, DS. Value)).Value
devuelve el valor de texto "A".
Ejemplo 2: ejecución explícita en memoria
Cuando Proveedor se configura como origen de datos de ER del tipo Registros de tabla que hace referencia a la tabla VendTable, la expresión ORDERBY (Vendor, Vendor.'name()')
y la expresión ORDERBY ("InMemory", Vendor, Vendor.'name()')
devuelven una lista de proveedores que se clasifica por nombre en orden ascendente.
Cuando se configura la expresión ORDERBY ("Query", Vendor, Vendor.'name()')
en el diseñador de mapeo de modelos ER, ocurre un error de validación en tiempo de diseño, porque la ruta Vendor.'name()'
hace referencia a un método de aplicación que tiene una lógica que no se puede traducir a una consulta de base de datos directa.
Ejemplo 3: consulta de base de datos
Si TaxTransaction se configura como una fuente de datos ER del tipo Registros de tabla que se refiere a la tabla TaxTrans, la expresión ORDERBY ("Query", TaxTransaction, TaxTransaction.TaxCode)
ordena los registros en el nivel de la base de datos de la aplicación y devuelve una lista de transacciones de impuestos que se ordena por código de impuestos en orden ascendente.
Ejemplo 4: fuentes de datos consultables
Si TaxTransaction se configura como una fuente de datos ER del tipo Registros de tabla que se refiere a la tabla TaxTrans, la fuente de datos de ER TaxTransactionFiltered se puede configurar para que contenga la expresión FILTER(TaxTransaction, TaxCode="VAT19")
, que obtendrá las transacciones para un código de impuestos específico. Porque la fuente de datos de ER configurada TaxTransactionFiltered es consultable, la expresión ORDERBY ("Query", TaxTransactionFiltered, TaxTransactionFiltered.TransDate)
se puede configurar para devolver la lista de transacciones de impuestos filtradas que se ordena por fecha de transacción en orden ascendente.
Si configura TaxTransactionOrdered como una fuente de datos ER del tipo campo calculado que contiene la expresión ORDERBY ("Query", TaxTransaction, TaxTransaction.TransDate)
y una fuente de datos ER del tipo campo calculado que contiene la expresión FILTER(TaxTransactionOrdered, TaxCode="VAT19")
, se produce un error de validación en tiempo de diseño en el diseñador de asignación de modelos de ER. Este error ocurre porque el primer argumento de FILTER debe hacer referencia a una fuente de datos de ER consultable, pero la fuente de datos TaxTransactionOrdered que contiene la función ORDERBY
no es consultable.
Ejemplo 5: Comparabilidad
Requisitos previos
- Introduzca el origen de datos DS1 de tipo Campo calculado que contiene la expresión
SPLIT ("D1|_D2|D3", "|")
. - Abra la página Valores de dimensión financiera y seleccione la dimensión CostCenter.
- Introduzca los siguientes valores de dimensión: D1, _D2 y D3.
Clasificación en memoria
- Configure el origen de datos DS2 de tipo Campo calculado que contiene la expresión
ORDERBY("InMemory", DS1, DS1.Value)
. - Note que la expresión
FIRST(DS2).Value
devuelve el valor del texto "D1", la expresiónINDEX(DS2, COUNT(DS2)).Value
devuelve el valor del texto "_D2" y la expresiónSTRINGJOIN(DS2, DS2.Value, "|")
devuelve el valor del texto "D1|D3|_D2".
Clasificación en la base de datos
- Introduzca la fuente de datos DS3 del tipo Registros de tabla que hace referencia a la entidad FinancialDimensionValueEntity.
- Configure el origen de datos DS4 de tipo Campo calculado que contiene la expresión
FILTER(DS3, DS3.FinancialDimension="CostCenter")
. - Configure el origen de datos DS5 de tipo Campo calculado que contiene la expresión
ORDERBY(DS4, DS4.DimensionValue)
. - Note que la expresión
FIRST(DS5).Value
devuelve el valor del texto "_D2", la expresiónINDEX(DS5, COUNT(DS5)).Value
devuelve el valor del texto"D3" y la expresiónSTRINGJOIN(DS5, DS5.Value, "|")
devuelve el valor del texto "_D2|D1|D3".