2011-06-20 8 views
1

誰かがこれをXrm Advanced Dev Extensionで行っていますか?私は外部ポータルを作成していますMicrosoft CRM 4.0 LINQ - LINQを使用してCRMから属性表示名を取得する

たとえば、アカウントエンティティにaaa_accountfieldという属性があります。アカウントエンティティのXMLは、XMLに関係しているものを事前に

<displaynames> 
<displayname description="attribute display name" languagecode="1033" /> 
<displayname description="attribute display name in some other language" languagecode="1045" /> 
</displaynames> 

おかげ

答えて

0

わからないがありますが、私はあなたがメタデータを作ることができるはずIOrganizationServiceを取得するにはADXを使用することができますかなり確信していますリクエスト。私は、次のコードを与えるだろう。おそらく最初にそれを取得する前に、異なる言語が値を返すかどうかをチェックするか、例外を受けやすいかどうかをチェックする必要があります。

var crm = new Xrm.XrmDataContext("CacheDisabled"); 
crm.UsingService(service => 
     { 
       // Use this code to grab a complete set of EntityMetadata. 
       var entityRequest = new RetrieveEntityRequest(); 
       entityRequest.LogicalName = "account"; 
       entityRequest.RetrieveAsIfPublished = false; 

       RetrieveEntityResponse entityResponse = new RetrieveEntityResponse(); 
       EntityMetadata entityMetadata = entityResponse.EntityMetadata; 
       //entityMetadata.Attributes... 

       // Use this to grab AttributeMetadata for a specific attribute. 
       RetrieveAttributeRequest attributeRequest = new RetrieveAttributeRequest(); 
       attributeRequest.EntityLogicalName = "account"; 
       attributeRequest.LogicalName = "name"; 
       attributeRequest.RetrieveAsIfPublished = false; 

       RetrieveAttributeResponse attributeResponse = new RetrieveAttributeResponse(); 
       AttributeMetadata attributeMetadata = attributeResponse.AttributeMetadata; 
       string labelLanguage1 = attributeMetadata.DisplayName.LocLabels.Where(l => l.LanguageCode.Value == 1033).First().Label; 
       string labelLanguage2 = attributeMetadata.DisplayName.LocLabels.Where(l => l.LanguageCode.Value == 1045).First().Label; 

     } 
+0

ありがとうコール、私はそれを試してみましょう! – DevilCode

+0

私はこれがCRM 2011であることに気付きました。CRM 4.0のアイデアは何ですか? – DevilCode

+0

私はそれを気にしません - とにかく感謝:)私は2011年に我々はアップグレードするときに良いです – DevilCode

関連する問題