2016-11-18 4 views
0

このリンク「https://prabirchoudhury.wordpress.com/2013/06/13/retrieve-microsoft-crm-2011-data-using-fetchxml-and-web-service/」に続いてCRMに接続しました。CRM保存ビューを接続するC#コード

このリンクには、ユーザーが作成したビューに接続するコードがあります。

string fetchXml = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false' count='100'> 
<entity name='account'> 
<attribute name='ownerid' /> 
<attribute name='name' /> 
<attribute name='accountnumber' /> 
<attribute name='accountid' /> 
<order attribute='accountnumber' descending='true' /> 
<link-entity name='systemuser' to='owninguser' alias='mainuser'> 
<attribute name='systemuserid'/> 
<attribute name='domainname' /> 
<attribute name='fullname' /> 
</link-entity > 
</entity> 
</fetch>"; 

あなたが表示された場合、私は、しかし、私はちょうどビュー名を渡して、代わりにXMLコードを渡すのcsvファイルの形式でデータを取得したい、CRMからデータを取得するためにXMLコードを渡すために持っていました。 Powershellでも同じことをしましたが、C#コードでも同じことをする必要があります。

私はビュー名を渡すだけの理由は明日のユーザーがビュー内で何らかの修正を行い、ユーザーが変更を加えたときにコードに触れる必要がないためですどのように私は(物理的にマシン上に作成せずに)バッファ上にCSVファイルを作成し、任意のクラウドベースのサービスにエクスポートすることができます。

+0

あなたは[Reflection](https://msdn.microsoft.com/en-in/library/mt656691.aspx)に興味があります –

+1

@AmitKumarGhosh:なぜ反射ですか?彼はオブジェクトをXMLにシリアル化して、適切なWebサービスを呼び出すだけでいいですか? – garfbradaz

+0

@ harshu288 Webサービスとの会話に関するコードを提供できますか?私はあなたがリンクを提供したことを知っていますが、実装の詳細が役立つでしょう。 – garfbradaz

答えて

1

あなたは多くのコードを要求しており、自分のコードを何も表示していません。この記事をご覧ください:How to Ask

は、あなたが開始するには、ここに保存されたビューから、あなたにFetchXMLを取得する方法は、ビューの名前とエンティティの名前に基づいて、です:

using Microsoft.Xrm.Sdk; 
using Microsoft.Xrm.Sdk.Query; 
using Microsoft.Xrm.Tooling.Connector; 
using System.Linq; 

private string getFetchXml(IOrganizationService svc) 
{ 
    var query = new QueryExpression 
    { 
     EntityName = "userquery", 
     ColumnSet = new ColumnSet("userqueryid", "name", "fetchxml"), 
     Criteria = new FilterExpression 
     { 
      FilterOperator = LogicalOperator.And, 
      Conditions = 
      { 
       new ConditionExpression 
       { 
        AttributeName = "name", 
        Operator = ConditionOperator.Equal, 
        Values = {"My View"} 
       }, 
       new ConditionExpression 
       { 
        AttributeName = "returnedtypecode", 
        Operator = ConditionOperator.Equal, 
        Values = { "account" } 
       } 
      } 
     } 
    }; 

    var result = svc.RetrieveMultiple(query); 
    var view = result.Entities.FirstOrDefault(); 
    var fetchXml = view.GetAttributeValue<string>("fetchxml"); 
    return fetchXml; 
} 
関連する問題