CRM 2011 Obtener atributo de registro de entidad personalizado sin tipos de límite temprano

StackOverflow https://stackoverflow.com/questions/7361856

Pregunta


Estoy buscando un método para recuperar el atributo de entidad personalizado sin generar tipos de enlace tempranos con CRMSVCUTIL.

¿Hay alguna solución para mi problema?

¿Fue útil?

Solución

No necesita generar tipos de límites tempranos para recuperar los datos de la entidad de CRM. Puede trabajar con un tipo llamado Entidad (que es similar a la dinámica de CRM4).

El SDK tiene algunos ejemplos sobre cómo trabajar con entidades atrasadas. aquí.

Esta clase de entidad no está fuertemente escrita (a diferencia de las entidades tempranas generadas a partir de crmsvcutil), por lo que debes realizar fundiciones tú mismo. Hay un método sobre entidad que ayudará con esto. El siguiente código puede darle una idea sobre cómo recuperar una entidad tardía.

IOrganizationService service = GetOrganizationService();
var entity = service.Retrieve(entityName,
                                entityId,
                                new ColumnSet(new[]
                                                {
                                                    stringAttributeName,
                                                    intAttributeName,
                                                    floatAttributeName,
                                                    boolAttributeName,
                                                    optionSetAttributeName,
                                                    entityReferenceAttributeName,
                                                }));
var stringValue = entity.GetAttributeValue<string>(stringAttributeName);
var intValue = entity.GetAttributeValue<int?>(intAttributeName);
var floatValue = entity.GetAttributeValue<double?>(floatAttributeName);
var boolValue = entity.GetAttributeValue<bool?>(boolAttributeName);
var optionSetValue = entity.GetAttributeValue<OptionSetValue>(optionSetAttributeName);
var entityReferenceValue = entity.GetAttributeValue<EntityReference>(entityReferenceAttributeName);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top