다음을 통해 공유


계산 및 롤업 특성

 

게시 날짜: 2017년 1월

적용 대상: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

계산롤업 특성을 사용하면 사용자가 계산을 수동으로 수행할 필요가 없고 본연의 업무에 집중할 수 있습니다. 시스템 관리자는 이제 개발자와 함께 작업하지 않고도 많은 일반적인 계산 값을 포함하도록 필드를 쉽게 정의할 수 있습니다. 개발자는 자신의 코드 내에 포함하기 보다는 이러한 계산을 수행하는 플랫폼 기능을 활용할 수 있습니다.

비디오: Microsoft Dynamics CRM 2015의 롤업 및 계산 필드

이 항목의 내용

공통 요소 및 특징

계산되는 특성

롤업 특성

SourceTypeMasks 열거형

공통 요소 및 특징

계산 롤업 특성은 다음과 같이 몇 가지 공통 요소 및 특징을 공유합니다.

  • 읽기 전용입니다.

  • 사용자에게 특정하지 않습니다. 시스템 사용자 계정을 사용하여 계산이 수행되므로 값은 필드 수준 보안이 활성화된 특성 같이 사용자가 볼 권한이 없는 레코드를 기반으로 할 수 있습니다.

AttributeMetadata에서 상속하는 모든 특성은 다음 표에 나와 있는 값을 포함할 수 있는 SourceType 속성이 있습니다.

설명

null

계산 또는 롤업 특성이 되는 유효한 특성 유형이 아닙니다.

0

간단한 특성입니다. 특성은 계산 또는 롤업 특성으로 정의되지 않습니다.

1

계산되는 특성

2

롤업 특성

계산되는 특성과 롤업 특성은 AttributeMetadata에서 상속하는 기존의 특성 유형을 기반으로 합니다. 다음과 같은 특성 유형에는 새 속성이 있습니다.

이러한 각 특성 유형에는 계산 및 롤업을 지원하는 다음 특성이 있습니다.

속성

정의

FormulaDefinition

계산 또는 롤업을 수행하는 데 사용되는 수식의 XAML 정의를 포함합니다. 이 값을 변경하는 지원되는 유일한 방법은 응용 프로그램 수식 편집기를 통하는 것입니다.

이러한 특성을 위한 수식을 구성하는 자세한 내용은 사용자 지정 가이드의 롤업 필드 정의계산 필드 정의 항목을 참조하십시오.

SourceTypeMask

이 읽기 전용 속성의 비트 마스크 값은 계산 특성의 수식에 사용되는 소스 유형 또는 계산된 특성이나 롤업 특성의 수식이 유효한지 여부를 설명합니다.

  • 0: 정의되지 않음. 간단한 특성 및 롤업 특성의 기본값입니다.

  • 1: 단순 모드. 계산 특성은 같은 레코드에 있는 특성을 말합니다.

  • 2: 관련됨. 계산된 특성은 관련된 레코드에 있는 특성을 나타냅니다.

  • 4: Logical. 계산된 특성은 다른 데이터베이스 테이블에 실제 저장된 것과 같은 레코드에 있는 특성을 말합니다.추가 정보:논리 특성

  • 8: Calculated. 계산된 특성은 다른 계산된 특성을 말합니다.

  • 16: Rollup. 계산된 특성은 롤업 특성을 말합니다.

  • 32: Invalid. 계산 필드 또는 롤업 필드가 잘못되었습니다.

    일반적으로 이것은 필드가 더 이상 존재하지 않는 특성을 참조하는 경우입니다.

참고

계산 또는 롤업 필드에 대해 이러한 조건 중 하나 이상이 참일 수 있습니다. 이것은 비트 마스크 값이므로 비트 연산을 수행할 때는 SourceTypeMasks 열거형를 사용하는 것이 유용할 수 있습니다.

계산되는 특성

계산되는 특성은 검색할 때 실시간으로 계산됩니다. 계산되는 특성은 다른 데이터 형식을 사용하여 구성될 수 있습니다. 예를 들어, 정수 계산되는 특성은 10진수 또는 통화 특성의 값을 참조할 수 있습니다.추가 정보:TechNet: 계산된 필드 정의.

계산되는 특성은 플러그 인 파이프라인 검색에 사용할 수 있습니다. 엔터티 레코드 업데이트나 만들기의 사후 이미지는 스테이지 40에 계산되는 특성을 포함합니다.추가 정보:이벤트 실행 파이프라인

제한 사항

동일한 엔터티에 있는 관련 엔터티, 다른 계산되는 특성 또는 논리 값을 참조하는 계산되는 특성의 값을 사용하여 쿼리에서 반환된 데이터를 정렬할 수 없습니다. 쿼리는 결과가 계산되는 특성을 사용하여 정렬해야 한다고 지정할 수 있지만 정렬 방향은 무시되며 오류를 throw하지 않습니다. 계산되는 특성이 동일한 레코드에 있는 간단한 값만 참조하는 경우 정렬은 정상적으로 작동합니다. 특성 메타데이터에서 SourceTypeMask 속성을 사용하여 계산 필드에서 사용되는 소스를 확인할 수 있습니다.추가 정보:논리 특성

바로 상위 엔터티의 특성만 계산되는 특성에 사용할 수 있습니다.

저장된 쿼리, 차트 및 시각화는 최대 10개의 고유 계산되는 특성을 가질 수 있습니다.

계산되는 특성은 수식에서 다른 계산되는 특성을 참조할 수 있지만 자기 자신은 참조할 수 없습니다.

계산되는 특성은 Outlook용 Microsoft Dynamics 365 사용자가 오프라인일 때는 값을 갖지 않습니다.

MaxValueMinValue 메타데이터 속성은 계산되는 특성에 설정할 수 없습니다.

롤업 특성

롤업 특성은 데이터베이스에서 유지되므로 일반 특성과 마찬가지로 필터링이나 정렬에 사용할 수 있습니다. 모든 종류의 프로세스 또는 플러그 인은 특성의 가장 최근에 계산된 값을 사용합니다. 롤업 특성 값은 예약된 시스템 작업에 의해 비동기적으로 계산됩니다. 작업이 실행되거나 작업이 일시 중지되었을 때 관리자가 설정합니다. 기본적으로 각 특성은 1 시간마다 업데이트됩니다.추가 정보:TechNet: 롤업 필드 정의.

롤업 특성이 만들어지거나 업데이트되면 롤업 필드 대량 계산 작업은 12시간 내에 실행되도록 예약됩니다. 사용자에게 최소한의 영향을 미치는 시간 동안 이 리소스 집약적인 작업을 수행하는 데 12시간 지연이 적용됩니다. 작업이 완료된 후 다음에는 미래(약 10년)에 실행하도록 예약됩니다. 계산에 문제가 있는 경우 시스템 작업에서 보고됩니다.설정 > 시스템 작업에서 시스템 작업을 찾아 롤업 필드에 오류가 있는지 확인합니다.

개발 환경에서 솔루션을 테스트하는 개발자는 12시간 동안 기다리는 것을 원하지 않을 수 있습니다. 이 작업을 빠르게 수행할 수 있습니다.시스템 작업 목록에서 되풀이하는 시스템 작업 보기를 사용하여 목록을 필터링하고 롤업 필드 대량 계산 작업을 찾습니다. 작업을 선택한 상태에서 기타 작업 > 연기를 사용하고 좀 더 빨리 발생하는 시간을 설정합니다.

새로운 롤업 필드 대량 계산 작업을 프로그래밍 방식으로 만들도록 트리거하려면 RetrieveAttributeRequest를 사용하여 롤업 특성에 대해 AttributeMetadata를 검색하고 UpdateAttributeRequest를 사용하여 실제 변경 없이 특성을 업데이트합니다.

롤업 필드 대량 계산 작업은 롤업 특성을 포함하는 솔루션을 가져올 때 즉시 발생합니다. 즉, 사용자에게 나쁜 영향을 미치지 않는 시간 동안 솔루션을 설치하고 있다고 가정합니다.

엔터티의 각 롤업 특성은 롤업 특성에 대한 두 지원되는 특성도 포함합니다.

  • <attribute SchemaName>_Date: DateTime – 롤업이 마지막 계산되었을 때입니다.

  • <attribute SchemaName>_State: 정수 – 롤업 계산의 상태입니다.추가 정보:롤업 상태 값

롤업 상태 값

롤업 필드 계산의 상태는 해당 <attribute SchemaName>_State 특성 및 CalculateRollupFieldResponse.FieldState 속성에서 사용할 수 있습니다. 상태를 나타내는 값은 다음 표에 나와 있습니다.

상태 값

설명

0

NotCalculated: 특성 값이 계산됩니다.

1

Calculated: 특성 값이 <attribute SchemaName>_Date 특성에서 최신 업데이트에 따라 계산되었습니다.

2

OverflowError: 특성 값을 계산하면 오버플로 오류가 발생합니다.

3

OtherError: 내부 오류로 인해 특성 값 계산에 실패했습니다. 다음에 계산 작업을 실행하면 해결될 가능성이 있습니다.

4

RetryLimitExceeded: 많은 수의 동시성과 잠금 충돌로 인해 값을 계산하는 다시 시도의 최대 횟수를 초과했기 때문에 특성 값 계산에 실패했습니다.

5

HierarchicalRecursionLimitReached: 계산에 대한 최대 계층 구조 깊이 제한에 도달했기 때문에 특성 값 계산에 실패했습니다.

6

LoopDetected: 레코드의 계층 구조에서 재귀 루프가 감지되었기 때문에 특성 값 계산에 실패했습니다.

즉시 계산된 롤업 필드 값 검색

롤업 필드는 개발자가 필요 시 롤업 특성 값을 계산하는 데 사용할 수 있는 CalculateRollupField 메시지를 지원합니다. 구성원과 함께 요청 및 응답이 다음 표에 표시됩니다.

요청/응답

구성원

CalculateRollupFieldRequest

Target: 레코드에 대한 EntityReference.

FieldName: 특성의 논리 이름을 나타내는 문자열.

CalculateRollupFieldResponse

Entity: Entity 롤업 특성을 포함하고 <attribute SchemaName>_Date<attribute SchemaName>_State 특성을 지원.

이 메시지는 요청에서 식별된 특성만을 위한 동기 작업입니다. 해당 레코드의 값이 롤업 필드의 일부로 포함되는 경우 이러한 필드의 값은 이러한 계산을 수행하는 정기적으로 예약된 비동기 작업이 발생할 때까지 이 메서드를 호출하여 값이 변경되지 않도록 할 수 있습니다.

제한 사항

롤업 특성은 워크플로 이벤트 또는 대기 조건으로 사용할 수 없습니다. 이러한 특성은 워크플로를 트리거하는 이벤트를 발생시키지 않습니다.

엔터티에 대한 ModifiedBy 및 ModifiedOn 특성은 롤업 특성이 업데이트될 때 업데이트되지 않습니다.

조직 내에 최대 100개의 롤업 특성을 정의할 수 있습니다. 각 엔터티는 롤업 특성을 10개 이상 가질 수 없습니다.

롤업 특성 수식은 다른 롤업 특성을 참조할 수 없습니다.

롤업 특성 수식은 복잡한 계산되는 특성을 참조할 수 없습니다. 동일한 레코드에서 간단한 특성을 참조하는 계산되는 특성만이 롤업에 사용할 수 있습니다.

롤업 특성 수식은 다대다(N:N) 관계의 레코드는 포함할 수 없습니다. 일대다(1:N) 관계의 레코드만 포함할 수 있습니다.

롤업 특성 수식은 ActivityPointer 또는 ActivityParty 엔터티가 있는 일대다(1:N) 관계는 사용할 수 없습니다.

SourceTypeMasks 열거형

계산된 필드와 롤업 필드를 지원하는 특성에 대한 SourceTypeMask 속성은 비트 마스크 값을 포함합니다. 값에서 관련 정보를 추출하려면 비트 연산을 수행할 때 열거하는 것이 좋습니다.SourceTypeMask 속성 값을 비교할 때는 다음 SourceTypeMasks 열거를 사용합니다.

 public enum SourceTypeMasks
{
    /// <summary>
    /// Undefined: 0 - The default value for simple and rollup attributes.
    /// </summary>
    Undefined = 0,
    /// <summary>
    /// Simple: 1 - The calculated attribute refers to an attribute in the same record.
    /// </summary>
    Simple = 1,
    /// <summary>
    /// Related: 2 - The calculated attribute refers to an attribute in a related record.
    /// </summary>
    Related = 2,
    /// <summary>
    /// Logical: 4 - The calculated attribute refers to a logical attribute.
    /// </summary>
    Logical = 4,
    /// <summary>
    /// Calculated: 8 - The calculated attribute refers to another calculated attribute.
    /// </summary>
    Calculated = 8,
    /// <summary>
    /// Rollup: 16 - The calculated attribute refers a rollup attribute. 
    /// </summary>
    Rollup = 16,
    /// <summary>
    /// Invalid: 32 - The calculated or rollup attribute is invalid.
    /// Typically this would be where a field refers to an attribute that no longer exists. 
    /// </summary>
    Invalid = 32
}

참고 항목

비디오: Microsoft Dynamics CRM 2015의 롤업 및 계산 필드
Microsoft Dynamics 365의 엔터티 특성 소개
TechNet: 계산된 필드 정의
TechNet: 롤업 필드 정의

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 저작권 정보