2016-11-18 5 views
0

Я перешел по этой ссылке «https://prabirchoudhury.wordpress.com/2013/06/13/retrieve-microsoft-crm-2011-data-using-fetchxml-and-web-service/» и подключился к CRM.Код C# для подключения сохраненных просмотров CRM

На этой ссылке ниже приведен код подключения к создаваемому пользователю представлению.

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, чтобы получить данные из CRM, но я просто хочу, чтобы передать имя представления и получить данные в виде CSV-файла вместо передачи кода XML. Я сделал то же самое в Powershell, но мне нужно сделать то же самое в коде C#.

Причина, по которой я хочу просто передать имя вида, заключается в том, что завтра пользователь будет делать какие-либо изменения в представлении, и мне не нужно прикасаться к коду, если пользователь вносит какие-либо изменения, поэтому мне нужно сделать эту динамику, во-вторых, после получение данных, как я могу создать файл csv в буфере (без физического создания на машине), а затем экспортировать в любую облачную службу.

+0

вам могут быть заинтересованы в [Reflection] (https://msdn.microsoft.com/en-in/library/mt656691.aspx) –

+1

@AmitKumarGhosh: Почему отражение? Ему просто нужно «Сериализовать» свои объекты в XML и вызвать соответствующий веб-сервис? – garfbradaz

+0

@ harshu288 Можете ли вы предоставить код о том, как вы разговариваете с веб-службой. Я знаю, что вы предоставили ссылку, но ваши детали реализации были бы полезными. – 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; 
}