다음을 통해 공유


엔터티 보기 사용자 지정

 

게시 날짜: 2016년 11월

적용 대상: Dynamics CRM 2015

엔터티 보기는 특정 필터를 사용하여 데이터를 검색하는 특수 저장된 쿼리입니다. 엔터티 보기에는 보기의 데이터가 응용 프로그램에 표시되는 방법에 대한 정보도 포함됩니다. 엔터티 보기는 프로그래밍 방식으로 만들 수 있는 SavedQuery 레코드입니다. XML로 정의할 수도 있고 비관리형 솔루션으로 Microsoft Dynamics 365에 가져올 수도 있습니다.

엔터티 보기는 UserQuery와는 다릅니다. 응용 프로그램에서 저장된 보기라고 하는 사용자 쿼리는 개별 사용자가 담당하고, 다른 사용자에게 할당하거나 함께 공유할 수 있으며, 쿼리의 액세스 권한에 따라 다른 사용자가 볼 수 있습니다. 사용자 쿼리는 엔터티 유형을 확장하는 데 자주 사용되는 쿼리와 집계를 수행하는 쿼리에 적합합니다.추가 정보:UserQuery(저장된 보기) 엔터티

이 항목의 내용

보기 유형

작업 보기

  • 보기 만들기

  • 보기 업데이트

  • 보기 삭제

  • 보기 검색

  • 보기 비활성화

  • 필터 조건 편집 또는 정렬 구성

  • 열 편집

  • 기본값으로 설정

보기 유형

다음 표에는 사용자 지정에 지원되는 보기의 5가지 유형이 나와 있습니다. 보기의 유형 코드는 SavedQuery.QueryType 특성에 저장됩니다. 이 엔터티는 Microsoft Office Outlook 필터 및 템플릿을 저장하는 데도 사용되므로 여기에는 나와 있지 않지만 QueryType 특성에 유효한 다른 값이 있습니다. 자세한 내용은 오프라인 및 Outlook 필터와 템플릿을 참조하십시오.

특정 엔터티에 대한 보기를 정의하면 SavedQuery.ReturnedTypeCode 특성은 엔터티 논리적 이름을 반환합니다.

보기 유형

유형 코드

설명

상장

0

  • 발생: 많음

  • 작업: 만들기, 업데이트, 삭제

  • 주석: SavedQuery.IsDefault 를 true로 설정하면 이러한 보기 중 하나를 기본 공용 보기로 설정할 수 있습니다.

상세하게 찾기

1

  • 발생: 1

  • 작업: 업데이트 전용

  • 주석: 기본적으로 이 보기는 결과가 상세하게 찾기에 표시될 때 표시됩니다.

관련 보기

2

  • 발생: 1

  • 작업: 업데이트 전용

  • 주석: 기본적으로 이 보기는 관련 레코드 표가 레코드의 탐색 창에 표시될 때 표시됩니다.

빠른 찾기

4

  • 발생: 1

  • 작업: 업데이트 전용

  • 주석: 이 보기는 사용자가 목록 보기에서 검색 필드를 사용하여 레코드를 검색할 때 검색되는 열을 정의합니다.

조회

64

  • 발생: 1

  • 작업: 업데이트 전용

  • 주석: 조회 필드에 구성된 다른 보기가 없을 경우 레코드를 조회하는 데 사용되는 기본 보기입니다.

작업 보기

보기는 SavedQuery 레코드이므로 만들고, 업데이트, 검색, 삭제 및 비활성화할 수 있습니다. 또한 필터 조건을 편집하거나 정렬을 구성하고, 열을 편집하거나 보기를 기본 보기로 설정할 수 있습니다.

보기 만들기

공용 보기를 만들려면 다음과 같은 속성을 지정합니다.

  • SavedQuery.Name: 저장된 쿼리의 고유 식별자입니다.

  • SavedQuery.ReturnedTypeCode: 엔터티의 논리적 이름과 일치합니다.

  • SavedQuery.FetchXml: FetchXML을 사용하여 쿼리 구성을 참조하십시오.

  • SavedQuery.LayoutXml: 유효한 요소는 <layoutxml> (SavedQuery)를 참조하십시오.

  • SavedQuery.QueryType: 항상 0이어야 합니다.

다음 샘플은 영업 기회 엔터티의 고용 보기를 새로 만듭니다.


                    System.String layoutXml =
@"<grid name='resultset' object='3' jump='name' select='1' 
    preview='1' icon='1'>
    <row name='result' id='opportunityid'>
    <cell name='name' width='150' /> 
    <cell name='customerid' width='150' /> 
    <cell name='estimatedclosedate' width='150' /> 
    <cell name='estimatedvalue' width='150' /> 
    <cell name='closeprobability' width='150' /> 
    <cell name='opportunityratingcode' width='150' /> 
    <cell name='opportunitycustomeridcontactcontactid.emailaddress1' 
        width='150' disableSorting='1' /> 
    </row>
</grid>";

                    System.String fetchXml =
                    @"<fetch version='1.0' output-format='xml-platform' 
    mapping='logical' distinct='false'>
    <entity name='opportunity'>
    <order attribute='estimatedvalue' descending='false' /> 
    <filter type='and'>
        <condition attribute='statecode' operator='eq' 
        value='0' /> 
    </filter>
    <attribute name='name' /> 
    <attribute name='estimatedvalue' /> 
    <attribute name='estimatedclosedate' /> 
    <attribute name='customerid' /> 
    <attribute name='opportunityratingcode' /> 
    <attribute name='closeprobability' /> 
    <link-entity alias='opportunitycustomeridcontactcontactid' 
        name='contact' from='contactid' to='customerid' 
        link-type='outer' visible='false'>
        <attribute name='emailaddress1' /> 
    </link-entity>
    <attribute name='opportunityid' /> 
    </entity>
</fetch>";

                    SavedQuery sq = new SavedQuery
                    {
                        Name = "A New Custom Public View",
                        Description = "A Saved Query created in code",
                        ReturnedTypeCode = "opportunity",
                        FetchXml = fetchXml,
                        LayoutXml = layoutXml,
                        QueryType = 0
                    };

                    _customViewId = _serviceProxy.Create(sq);
                    Console.WriteLine("A new view with the name {0} was created.", sq.Name);

보기 업데이트

SavedQuery.IsCustomizable 관리 속성에서 보기를 업데이트할 수 있으면 IOrganizationService.Update 메서드 또는 UpdateRequest 메시지를 사용하여 보기를 업데이트할 수 있습니다.

보기 삭제

개발자가 만든 저장된 쿼리만 삭제해야 합니다. 솔루션 구성 요소 또는 응용 프로그램 일부는 저장된 특정 쿼리에 따라 달라질 수 있습니다. 응용 프로그램에서 표시하지 않을 쿼리가 있을 경우 비활성화해야 합니다.

보기 검색

RetrieveMultipleRequest 또는 IOrganizationService.RetrieveMultiple을 사용하여 저장된 쿼리 레코드를 검색합니다.

다음 샘플은 영업 기회 엔터티의 모든 새로운 공용 보기를 검색합니다.


        QueryExpression mySavedQuery = new QueryExpression
        {
            ColumnSet = new ColumnSet("savedqueryid", "name", "querytype", "isdefault", "returnedtypecode", "isquickfindquery"),
            EntityName = SavedQuery.EntityLogicalName,
            Criteria = new FilterExpression
            {
                Conditions =
{
    new ConditionExpression
    {
        AttributeName = "querytype",
        Operator = ConditionOperator.Equal,
        Values = {0}
    },
    new ConditionExpression
    {
        AttributeName = "returnedtypecode",
        Operator = ConditionOperator.Equal,
        Values = {Opportunity.EntityTypeCode}
    }
}
            }
        };
        RetrieveMultipleRequest retrieveSavedQueriesRequest = new RetrieveMultipleRequest { Query = mySavedQuery };

        RetrieveMultipleResponse retrieveSavedQueriesResponse = (RetrieveMultipleResponse)_serviceProxy.Execute(retrieveSavedQueriesRequest);

        DataCollection<Entity> savedQueries = retrieveSavedQueriesResponse.EntityCollection.Entities;

        //Display the Retrieved views
        foreach (Entity ent in savedQueries)
        {
            SavedQuery rsq = (SavedQuery)ent;
            Console.WriteLine("{0} : {1} : {2} : {3} : {4} : {5},", rsq.SavedQueryId, rsq.Name, rsq.QueryType, rsq.IsDefault, rsq.ReturnedTypeCode, rsq.IsQuickFindQuery);
        }

보기 비활성화

응용 프로그램에 공용 보기를 표시하지 않으려는 경우 비활성화할 수 있습니다. 기본 보기로 설정되어 있는 공용 보기는 비활성화할 수 없습니다. 다음 샘플에서는 영업 기회 엔터티에 대해 현재 회계 연도에 종료된 영업 기회 보기를 비활성화합니다.


System.String SavedQueryName = "Closed Opportunities in Current Fiscal Year";
QueryExpression ClosedOpportunitiesViewQuery = new QueryExpression
{
    ColumnSet = new ColumnSet("savedqueryid", "statecode", "statuscode"),
    EntityName = SavedQuery.EntityLogicalName,
    Criteria = new FilterExpression
    {
        Conditions =
        {
            new ConditionExpression
            {
                AttributeName = "querytype",
                Operator = ConditionOperator.Equal,
                Values = {0}
            },
            new ConditionExpression
            {
                AttributeName = "returnedtypecode",
                Operator = ConditionOperator.Equal,
                Values = {Opportunity.EntityTypeCode}
            },
                            new ConditionExpression
            {
                AttributeName = "name",
                Operator = ConditionOperator.Equal,
                Values = {SavedQueryName}
            }
        }
    }
};

RetrieveMultipleRequest retrieveOpportuntiesViewRequest = new RetrieveMultipleRequest { Query = ClosedOpportunitiesViewQuery };

RetrieveMultipleResponse retrieveOpportuntiesViewResponse = (RetrieveMultipleResponse)_serviceProxy.Execute(retrieveOpportuntiesViewRequest);

SavedQuery OpportunityView = (SavedQuery)retrieveOpportuntiesViewResponse.EntityCollection.Entities[0];
_viewOriginalState = (SavedQueryState)OpportunityView.StateCode;
_viewOriginalStatus = OpportunityView.StatusCode;


SetStateRequest ssreq = new SetStateRequest
{
    EntityMoniker = new EntityReference(SavedQuery.EntityLogicalName, (Guid)OpportunityView.SavedQueryId),
    State = new OptionSetValue((int)SavedQueryState.Inactive),
    Status = new OptionSetValue(2)
};
_serviceProxy.Execute(ssreq);

필터 조건 편집 또는 정렬 구성

필터를 편집하거나 데이터 정렬 방식을 편집하려면 SavedQuery.FetchXml 특성을 설정해야 합니다. 자세한 내용은 FetchXML을 사용하여 쿼리 작성을 참조하십시오.

FetchXML에 익숙하지 않은 경우 QueryExpression과 FetchXML 사이를 변환하는 데 QueryExpressionToFetchXmlRequestFetchXmlToQueryExpressionRequest 메시지를 사용할 수 있습니다.

열 편집

보기에 표시할 열은 엔터티 또는 관련 엔터티에서 가져올 수 있습니다. 표시할 열을 지정하는 방법에 대한 자세한 내용은 <layoutxml> (SavedQuery)를 참조하십시오.

기본값으로 설정

하나의 활성 보기만 기본 보기로 설정할 수 있습니다. 보기를 기본 보기로 설정하려면 IsDefault 속성을 true로 설정합니다.

참고 항목

샘플: 보기에 대한 작업
SavedQuery(보기) 엔터티 메시지 및 메서드
Saved query XML reference
FetchXML을 사용하여 쿼리 작성
메타데이터 모델 확장
엔터티 양식 사용자 지정
전역 옵션 집합 사용자 지정
Microsoft Dynamics CRM 2015용 사용자 지정에 대한 개발자 가이드

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