Querying CRM Metadata for Mobile Enabled
You can of course open up each entity and check the Is Enabled for Mobile checkbox on the entity defintion. But that could take a while. So here's a simple Metadata query that will return you a nice list.
CrmConnection c = new CrmConnection("CRM");
var service = new OrganizationService(c);
MetadataFilterExpression entityFilter =
new MetadataFilterExpression(LogicalOperator.And);
MetadataConditionExpression isVisibileInMobileTrue =
new MetadataConditionExpression("IsVisibleInMobileClient",
MetadataConditionOperator.Equals, true);
entityFilter.Conditions.Add(isVisibileInMobileTrue);
EntityQueryExpression query = new EntityQueryExpression()
{
Criteria = entityFilter
};
RetrieveMetadataChangesRequest retrieveMetadataChangesRequest =
new RetrieveMetadataChangesRequest()
{
Query = query
};
var results = service.Execute(retrieveMetadataChangesRequest)
as RetrieveMetadataChangesResponse;
foreach (var entity in results.EntityMetadata)
{
Console.WriteLine("Entity {0}:{1}",
entity.SchemaName,
entity.DisplayName.UserLocalizedLabel.Label);
}
For those of you that don't want to write code and are intersted - here is the list of what is enabled right now with the beta of CRM 2015 Spring Update
Entity Account:Account
Entity ActivityPointer:Activity
Entity Team:Team
Entity Connection:Connection
Entity ActivityMimeAttachment:Attachment
Entity Product:Product
Entity Email:Email
Entity Entitlement:Entitlement
Entity Incident:Case
Entity SystemUser:User
Entity Task:Task
Entity OpportunityProduct:Opportunity Product
Entity Opportunity:Opportunity
Entity WebResource:Web Resource
Entity Contact:Contact
Entity Queue:Queue
Entity Lead:Lead
Entity SLAKPIInstance:SLA KPI Instance
Entity Appointment:Appointment
Entity Annotation:Note
Entity QueueItem:Queue Item
Entity Competitor:Competitor
Entity SocialActivity:Social Activity
Entity KnowledgeBaseRecord:Knowledge Base Record
Entity SocialProfile:Social Profile
Entity PhoneCall:Phone Call