ORDERBY ER 함수
ORDERBY
함수는 지정된 인수에 따라 정렬된 후 지정된 목록을 기록 목록 값으로 반환합니다. 이러한 인수는 표현식으로 정의할 수 있습니다.
구문 1
ORDERBY (list, expression 1[, expression 2, …, expression N])
구문 2
ORDERBY (location, list, expression 1[, expression 2, …, expression N])
참고
이 구문은 Microsoft Dynamics 365 Finance 버전 10.0.25 이상에서 지원됩니다.
인수
location
스트링
정렬을 실행해야 하는 위치입니다. 다음 옵션이 유효합니다.
- 문의
- 인메모리
list
: 기록 목록
기록 목록 데이터 유형의 데이터 소스의 유효한 경로입니다.
expression 1
필드
호출된 함수의 list
인수가 참조하는 데이터 소스 필드의 유효한 경로입니다. 참조된 필드는 기본 데이터 유형의 필드여야 합니다. 이 인수는 필수입니다.
expression N
필드
호출된 함수의 list
인수가 참조하는 데이터 소스 필드의 유효한 경로입니다. 참조된 필드는 기본 데이터 유형의 필드여야 합니다. 이러한 추가 인수는 선택 사항입니다.
반환 값
기록 목록
결과 기록 목록입니다.
사용 참고 사항
구문 1
데이터 정렬은 항상 애플리케이션 서버의 메모리에서 수행됩니다. 자세한 내용은 예 1을 참조하십시오.
구문 2
메모리에서 정렬
location
인수가 InMemory 로 지정되면 애플리케이션 서버의 메모리에서 데이터 정렬이 수행됩니다. 자세한 내용은 예 2를 참조하십시오.
데이터베이스에서 정렬
location
인수가 Query 로 지정되면 데이터 정렬은 데이터베이스 수준에서 수행됩니다. 이 경우 list
인수는 직접 데이터베이스 쿼리를 설정할 수 있는 애플리케이션 소스를 지정하는 다음 전자 보고(ER) 데이터 소스 중 하나를 가리켜야 합니다.
- 테이블 기록 유형의 데이터 소스
- 테이블 기록 유형의 데이터 소스 관계
- 계산 필드 유형의 데이터 소스
expression 1
및 expression N
인수는 직접 데이터베이스 쿼리도 설정할 수 있는 애플리케이션 소스의 관련 필드를 지정하는 ER 데이터 소스의 필드를 가리켜야 합니다.
직접 데이터베이스 쿼리를 설정할 수 없으면 ER 모델 매핑 디자이너에서 유효성 검사 오류가 발생합니다. 수신되는 메시지에는 ORDERBY
함수를 포함하는 ER 표현식이 런타임에 실행할 수 없다는 내용이 나와 있습니다.
더 나은 성능을 위해 많은 수의 기록을 포함할 수 있는 애플리케이션 데이터 원본(예: 트랜잭션 애플리케이션 테이블)에 대해 정렬이 구성된 경우 쿼리 옵션을 사용하는 것이 좋습니다.
참고
ORDEBY
함수 자체는 직접 데이터베이스 쿼리로 변환할 수 없습니다. 따라서 이 함수가 포함된 ER 데이터 원본은 쿼리할 수 없습니다. 또한 쿼리 가능한 데이터 소스만 사용할 수 있는 FILTER 및 ALLITEMSQUERY와 같은 ER 함수의 범위에서는 사용할 수 없습니다.
비교 가능성
SQL 데이터베이스 엔진과 Finance 애플리케이션 서버는 단일 문자에 대해 다른 순위 값을 사용할 수 있으므로 정렬에 스트링 필드를 사용하는 경우 동일한 기록 목록의 정렬 결과가 다를 수 있습니다. 자세한 내용은 예 5를 참조하십시오.
예 1 : 메모리 내 기본 실행
계산된 필드 유형의 데이터 소스 DS 를 입력하고 여기에 SPLIT ("C|B|A", "|")
표현식이 포함된 경우 FIRST( ORDERBY( DS, DS. Value)).Value
표현식은 텍스트 값 'A' 를 반환합니다.
예 2 : 메모리 내 명시적 실행
Vendor 가 VendTable 테이블을 참조하는 테이블 기록 유형의 ER 데이터 소스로 구성된 경우 ORDERBY (Vendor, Vendor.'name()')
식과 ORDERBY ("InMemory", Vendor, Vendor.'name()')
식 모두 이름별로 오름차순으로 정렬된 공급 업체 목록을 반환합니다.
ER 모델 매핑 디자이너에서 ORDERBY ("Query", Vendor, Vendor.'name()')
식을 구성하면 Vendor.'name()'
경로가 직접 데이터베이스 쿼리로 변환할 수 없는 논리가 있는 애플리케이션 메서드를 참조하기 때문에 디자인 타임에 유효성 검사 오류가 발생합니다.
예 3 : 데이터베이스 쿼리
TaxTransaction 이 TaxTrans 테이블을 참조하는 테이블 기록 유형의 ER 데이터 소스로 구성된 경우 ORDERBY ("Query", TaxTransaction, TaxTransaction.TaxCode)
표현식은 애플리케이션 데이터베이스 수준에서 기록을 정렬하고 세금 코드별로 오름차순으로 정렬된 세금 트랜잭션 목록을 반환합니다.
예 4 : 쿼리 가능한 데이터 소스
TaxTransaction 이 TaxTrans 테이블을 참조하는 테이블 기록 유형의 ER 데이터 소스로 구성된 경우 지정된 세금 코드에 대한 트랜잭션을 가져올 FILTER(TaxTransaction, TaxCode="VAT19")
표현식이 포함되도록 TaxTransactionFiltered ER 데이터 소스를 구성할 수 있습니다. 구성된 TaxTransactionFiltered ER 데이터 원본을 쿼리할 수 있으므로 거래 날짜별로 오름차순으로 정렬된 필터링된 세금 거래 목록을 반환하도록 ORDERBY ("Query", TaxTransactionFiltered, TaxTransactionFiltered.TransDate)
표현식을 구성할 수 있습니다.
TaxTransactionOrdered 를 식을 포함하는 계산된 필드 유형의 ER 데이터 원본과 ORDERBY ("Query", TaxTransaction, TaxTransaction.TransDate)
식을 포함하는 계산된 필드 유형의 FILTER(TaxTransactionOrdered, TaxCode="VAT19")
ER 데이터 원본으로 구성하면 ER 모델 매핑 디자이너에서 디자인 타임에 유효성 검사 오류가 발생합니다. 이 오류는 FILTER 함수의 첫 번째 인수가 쿼리 가능한 ER 데이터 원본을 참조해야 하지만 ORDERBY
함수가 포함된 TaxTransactionOrdered 데이터 원본을 쿼리할 수 없기 때문에 발생합니다.
예 5 : 비교 가능성
전제 조건
SPLIT ("D1|_D2|D3", "|")
표현식을 포함하는 계산된 필드 유형의 데이터 소스 DS1 을 입력하십시오.- 재무 차원 값 페이지를 열고 CostCenter 차원을 선택합니다.
- 다음 차원 값을 입력합니다. D1, _D2 및 D3.
메모리에서 정렬
ORDERBY("InMemory", DS1, DS1.Value)
표현식을 포함하는 계산된 필드 유형의 데이터 소스 DS2 를 구성하십시오.FIRST(DS2).Value
표현식은 텍스트 값 'D1' 을 반환하고INDEX(DS2, COUNT(DS2)).Value
표현식은 텍스트 값 _'D2' 를 반환하며STRINGJOIN(DS2, DS2.Value, "|")
표현식은 텍스트 값 "D1|D3|_D2" 를 반환합니다.
데이터베이스에서 정렬
- FinancialDimensionValueEntity 엔티티를 참조하는 테이블 기록 유형의 데이터 소스 DS3 을 입력하십시오.
FILTER(DS3, DS3.FinancialDimension="CostCenter")
표현식을 포함하는 계산된 필드 유형의 데이터 소스 DS4 를 구성하십시오.ORDERBY(DS4, DS4.DimensionValue)
표현식을 포함하는 계산된 필드 유형의 데이터 소스 DS5 를 구성하십시오.FIRST(DS5).Value
표현식은 텍스트 값 _'D2' 를 반환하고INDEX(DS5, COUNT(DS5)).Value
표현식은 텍스트 값 'D3'을 반환하며STRINGJOIN(DS5, DS5.Value, "|")
표현식은 텍스트 값 "_D2|D1|D3" 을 반환합니다.