|
|
#1 |
|
Участник
|
Подскажите пожалуйста как в CRM 4 получить имя сущности зная ее Type Code?
|
|
|
|
|
#2 |
|
Участник
|
В клиентском или серверном коде?
|
|
|
|
|
#3 |
|
Участник
|
Ах да, забыл сказать... В серверном коде.
Последний раз редактировалось ZooY; 03.09.2008 в 21:49. |
|
|
|
|
#4 |
|
Moderator
|
Если не надо делать этого динамически вы вполне можете обратиться к SDK чтобы узнать имя сущности по коду и жестко это закодировать. Если вам нужен универсальный код, то придется изучить CRM Metadata Service и как с ним работать.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() MS Certified Dirty Magic Professional
|
|
|
|
|
#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;
} |
|
|
|
|
|