Hi,
Recently we wrote a plugin that was using RetrieveAttribute class to get the label as well as value of the optionset field.
The issue that we faced over here is that the AttributeMetadata property of RetrieveAttributeResponse is read only, we cannot set it. The following post provided the solution i.e. writing a wrapper class over the RetrieveAttributeResponse
organizationService.ExecuteOrganizationRequest = request =>
{
var retrievedPicklistAttributeMetadata = new PicklistAttributeMetadata();
if (request.Parameters["LogicalName"].ToString() == "lss_service_request_status")
{
var optionMetadata = new OptionMetadata(new Label("Closed", 1033), 10);
optionMetadata.Label.UserLocalizedLabel = new LocalizedLabel("Closed", 1033);
optionMetadata.Label.UserLocalizedLabel.Label = "Closed";
var serviceRequestTypeOptionSet = new OptionSetMetadata
{
Name = "lss_service_request_status",
DisplayName = new Label("Service Request Status", 1033),
IsGlobal = false,
OptionSetType = OptionSetType.Picklist,
Options = { optionMetadata }
};
retrievedPicklistAttributeMetadata.OptionSet = serviceRequestTypeOptionSet;
}
var retrAttResponse = new RetrieveAttributeResponseWrapper(new RetrieveAttributeResponse());
retrAttResponse.AttributeMetadata = retrievedPicklistAttributeMetadata;
return retrAttResponse;
};
Hope it helps!
Filed under: CRM 2011, Microsoft Fakes Tagged: CRM 2011, Microsoft Fakes, Plugin

Like
Report
*This post is locked for comments