|  03.09.2008, 09:54 | #1 | 
| Участник |  Имя сущности по коду 
			
			Подскажите пожалуйста как в CRM 4 получить имя сущности зная ее Type Code?
		 | 
|  | 
|  03.09.2008, 13:02 | #2 | 
| Участник | 
			
			В клиентском или серверном коде?
		 | 
|  | 
|  03.09.2008, 18:41 | #3 | 
| Участник | 
			
			Ах да, забыл сказать... В серверном коде.
		 Последний раз редактировалось ZooY; 03.09.2008 в 21:49. | 
|  | 
|  04.09.2008, 11:52 | #4 | 
| Moderator | 
			
			Если не надо делать этого динамически вы вполне можете обратиться к SDK чтобы узнать имя сущности по коду и жестко это закодировать. Если вам нужен универсальный код, то придется изучить CRM Metadata Service и как с ним работать.
		 
				__________________ http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.   MS Certified Dirty Magic Professional | 
|  | 
|  04.09.2008, 14:24 | #5 | 
| Участник | 
			
			посмотрев в SDK статью по RetrieveAllEntities, можно состряпать такой вот метод: Код:  
private string GetEntityName(int EntityTypeCode)
{
            // Create an authentication token.
            CrmAuthenticationToken token = new CrmAuthenticationToken();
            token.OrganizationName = "AdventureWorksCycle";
 
            // You can use enums.cs from the SDK\Helpers folder to get the enumeration for AD Authentication.
            token.AuthenticationType = 0;
 
            // Create the metadata Web service;
            MetadataService service = new MetadataService();
            service.Url = "http://<servername>:<port>/MSCRMServices/2007/MetadataService.asmx";
            service.CrmAuthenticationTokenValue = token;
            service.Credentials = System.Net.CredentialCache.DefaultCredentials;
            service.PreAuthenticate = true;
 
            // Create the request
            RetrieveAllEntitiesRequest allEntitiesRequest = new RetrieveAllEntitiesRequest();
            allEntitiesRequest.RetrieveAsIfPublished = true;
            allEntitiesRequest.MetadataItems = MetadataItems.EntitiesOnly;
            // Execute the request
            RetrieveAllEntitiesResponse allEntitiesResponse = (RetrieveAllEntitiesResponse)service.Execute(allEntitiesRequest);
            // Iterate through the retrieved entities
            foreach (EntityMetadata entity in allEntitiesResponse.CrmMetadata)
            {
                if (entity.ObjectTypeCode.Value == EntityTypeCode)
                {
                    return entity.LogicalName;
                }
            }
            return String.Empty;
} | 
|  | 
|  | 
| 
 |