Partekatu honen bidez:


Personalizar vistas de entidad

 

Publicado: noviembre de 2016

Se aplica a: Dynamics CRM 2015

Las vistas de entidad son consultas guardadas especiales que recuperan datos mediante un filtro específico. También contienen información sobre cómo se deben mostrar los datos de la vista en la aplicación. Las vistas de entidad son registros SavedQuery que se pueden crear mediante programación. También puede definirlas como XML, e importarlas en Microsoft Dynamics 365 con una solución no administrada.

Una vista de entidad es diferente de una UserQuery. Una consulta de usuario, llamada una vista guardada en la aplicación, es propiedad de un usuario individual, se puede asignar y compartir con otros usuarios, y pueden verla otros usuarios en función de sus privilegios de acceso. Esto es adecuado para consultas usadas frecuentemente que abarcan tipos de entidad y consultas que realizan agregación.Más información:Entidad UserQuery (vista guardada)

En este tema

Tipos de vistas

Tareas de vista

  • Crear vistas

  • Actualizar vistas

  • Eliminar vistas

  • Recuperar vistas

  • Desactivar vistas

  • Editar los criterios de filtro o configurar la ordenación

  • Editar columnas

  • Establecer como predeterminado

Tipos de vistas

La siguiente tabla muestra los cinco tipos de vistas que son compatibles para la personalización. El código de tipo de una vista se almacenan en el atributo SavedQuery.QueryType. Tenga en cuenta que hay otros valores válidos para el atributo QueryType que no se muestran aquí porque esta entidad también se usa para almacenar los filtros y plantillas de Microsoft Office Outlook. Para obtener más información, vea Plantillas y filtros de Outlook y sin conexión.

Cuando las vistas se definen para una entidad específica, el atributo SavedQuery.ReturnedTypeCode devuelve el nombre lógico de la entidad.

Tipo de vista

Código de tipo

Descripción

Público

0

  • Repeticiones: muchas

  • Acciones: crear, actualizar, eliminar

  • Comentarios: puede establecer una de estas vistas como la vista pública predeterminada estableciendo SavedQuery.IsDefault en true.

Búsqueda avanzada

1

  • Repeticiones: 1

  • Acciones: solo actualizar.

  • Comentarios: de forma predeterminada, esta vista aparece cuando los resultados se muestran en Búsqueda avanzada.

Asociadas

2

  • Repeticiones: 1

  • Acciones: solo actualizar.

  • Comentarios: de forma predeterminada, esta vista se muestra cuando aparece una cuadrícula de registros relacionados en el panel de navegación de un registro.

Búsqueda rápida

4

  • Repeticiones: 1

  • Acciones: solo actualizar.

  • Comentarios: esta vista define las columnas en las que se buscará cuando un usuario busque registros mediante el campo de búsqueda de una vista de lista.

Búsqueda

64

  • Repeticiones: 1

  • Acciones: solo actualizar.

  • Comentarios: esta es la vista predeterminada que se usará para buscar un registro cuando no se haya configurado ninguna otra vista para el campo de búsqueda.

Tareas de vista

Puesto que las vistas son registros SavedQuery, puede crearlas, actualizarlas, recuperarlas, eliminarlas y desactivarlas. Además puede editar criterios de filtro o configurar el orden, editar columnas o establecer una vista como vista predeterminada.

Crear vistas

Para crear una vista pública, especifique las propiedades siguientes:

  • SavedQuery.Name: identificador único de la vista guardada.

  • SavedQuery.ReturnedTypeCode: coincide con el nombre lógico de la entidad.

  • SavedQuery.FetchXml: consulte Usar FetchXML para crear una consulta.

  • SavedQuery.LayoutXml: consulte <layoutxml> (SavedQuery) para los elementos válidos.

  • SavedQuery.QueryType: debe ser siempre cero (0).

El siguiente ejemplo crea una vista pública nueva para la entidad de oportunidad:


                    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);

Actualizar vistas

Si la propiedad administrada SavedQuery.IsCustomizable permite actualizar la vista, puede usar el método IOrganizationService.Update o el mensaje UpdateRequest para actualizar la vista.

Eliminar vistas

Debe eliminar solo las consultas guardadas que ha creado. Un componente de la solución o parte de la aplicación puede depender de una consulta guardada específica. Si hubiera consultas que no desea que aparezcan en la aplicación, debe desactivarlas.

Recuperar vistas

Use RetrieveMultipleRequest o IOrganizationService.RetrieveMultiple para recuperar los registros de consulta guardados.

El siguiente ejemplo recupera todas las vistas públicas para la entidad de oportunidad:


        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);
        }

Desactivar vistas

Si no desea que una vista pública aparezca en la aplicación, puede desactivarla. No puede desactivar una vista pública que se establece como la vista predeterminada. El siguiente ejemplo deshabilita la vista Closed Opportunities in Current Fiscal Year para la entidad de oportunidad:


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);

Editar los criterios de filtro o configurar la ordenación

Para modificar el filtro o editar cómo se ordenan los datos, debe establecer el atributo SavedQuery.FetchXml. Para obtener más información, vea Crear consultas con FetchXML.

Sugerencia

Si no está familiarizado con FetchXML los siguientes mensajes se pueden usar para convertir entre QueryExpression y FetchXML:QueryExpressionToFetchXmlRequest y FetchXmlToQueryExpressionRequest.

Editar columnas

Las columnas que desea mostrar en las vistas se pueden obtener de la entidad o las entidades relacionadas. Para obtener más información acerca de cómo especificar las columnas que se van a mostrar, vea <layoutxml> (SavedQuery).

Establecer como predeterminado

Solo se puede configurar una vista pública activa como la vista predeterminada. Para establecer una vista como predeterminada, establezca la propiedad IsDefault en true.

Ver también

Ejemplo: trabajar con vistas
Mensajes y métodos de la entidad SavedQuery (vista)
Saved query XML reference
Crear consultas con FetchXML
Ampliar el modelo de metadatos
Personalizar los formularios de entidad
Personalizar conjuntos de opciones globales
Guía para programadores para la personalización de Microsoft Dynamics CRM 2015

© 2017 Microsoft. Todos los derechos reservados. Copyright