AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
CRM
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.12.2011, 12:32   #1  
Aliwer is offline
Aliwer
Участник
 
14 / 11 (1) +
Регистрация: 26.12.2011
Запрос FetchXML
Здравствуйте.
Ребята, подскажите, пожалуйста.
Мне надо выполнить запрос по организациям удовлетворяющий какому-то условию.
У меня есть код который работает т.е выводит результат на консоль, а мне необходимо чтоб создавался представление, но не создается.
Подскажите что я делаю не так.

Заранее спасибо !!


===============================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel.Description;
using System.Net;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Xrm.Sdk;



namespace teset
{
class Fetch
{
static void Main(string[] args)
{
// userquery q = new userquery();
ClientCredentials Credentials = new ClientCredentials();
Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
//This URL needs to be updated to match the servername and Organization for the environment.
Uri OrganizationUri = new Uri("http://192.168.57.50:80/NoName/XRMServices/2011/Organization.svc");
Uri HomeRealmUri = null;
using (Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy serviceProxy = new Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
{
serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
IOrganizationService service = (IOrganizationService)serviceProxy;
//fetch example
string contactt = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
<entity name='account'>
<attribute name='name' />
<attribute name='primarycontactid' />
<attribute name='telephone1' />
<attribute name='accountid' />
<order attribute='name' descending='false' />
<filter type='and'>
<condition attribute='name' operator='eq' value='qwe' />
</filter>
</entity>
</fetch>";

// EntityCollection contact_count_result = service.RetrieveMultiple(new Microsoft.Xrm.Sdk.Query.FetchExpression(opportunity_count));
EntityCollection result = service.RetrieveMultiple(new Microsoft.Xrm.Sdk.Query.FetchExpression(contactt));
//Create loop of the result
foreach (var c in result.Entities){
System.Console.WriteLine(c.Attributes["name"]);
System.Console.WriteLine(c.Attributes["accountid"]);
}
//end fetch example}
Console.WriteLine("=====================");
Console.ReadLine();
//This code will clear the textboxes after the contact is created.
}
}
}
}
Старый 26.12.2011, 12:55   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Думаю что вы сами ответили на свой вопрос - надо сохранить представление в базе, а не выводить на консоль результат опроса:
Код:
SavedQuery view = new SavedQuery();
view.Name = "qwe accounts";
view.FetchXML = contactt;

serviceProxy.Create(view);
Писал на ощупь, так как в новом SDK почему-то нет описания этого объекта! Ну или у меня устаревшая версия или кривые руки.
Для создания представлений такой вот сложности, проще использовать стандартные средства. Так же вам нужно будет задать LayoutXML, чтобы представление корректно работало. Словом, совет один: создайте представление с пустым запросом и нужными полями, после чего обновите его нужным FetchXML при помощи метода Update.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 26.12.2011, 17:00   #3  
Aliwer is offline
Aliwer
Участник
 
14 / 11 (1) +
Регистрация: 26.12.2011
VStudio выдает ошибку что "SavedQuery" не найден.
Хотя включил библиотеки.
Старый 26.12.2011, 18:40   #4  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Думаю нужно разыскать в каком он неймспейсе. Если его нет в стандартной сборке, можно подключить сервис референс, или сгенерировать этот класс при помощи утилиты в составе SDK (CrmSvcUtil.exe ).
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 26.12.2011, 18:45   #5  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
А вообще замечательный пример работы с представлениями есть в \sdk\samplecode\cs\customizations\views\workwithviews
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: Aliwer (1).
Старый 28.12.2011, 00:05   #6  
Aliwer is offline
Aliwer
Участник
 
14 / 11 (1) +
Регистрация: 26.12.2011
Подскажите пожалуйста, из за чего ошибка.
Компилятору не нравиться последняя строка -> proxy.Create(sq);
и выдает такую ошибку:

An unhandled exception of type 'System.ServiceModel.FaultException`1' occurred in Microsoft.Xrm.Sdk.dll

Additional information: The expected returnedTypeCode 3 did not match the return type 1 on fetchXml


Вот код:
X++:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.ServiceModel;
using System.ServiceModel.Description;
using System.Runtime.Serialization;


// These namespaces are found in the Microsoft.Xrm.Sdk.dll assembly
// found in the SDK\bin folder.
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Xrm.Sdk.Query;


namespace CreateView
{
    class Program
    {

        static void Main(string[] args)
        {


            // Подключаемся к CRM
            ClientCredentials credentials = new ClientCredentials();
            credentials.Windows.ClientCredential = new System.Net.NetworkCredential("Администратор", "12345", "crm.dev");
            Uri uri = new Uri("http://192.168.57.50:80/NoName/XRMServices/2011/Organization.svc");
            OrganizationServiceProxy proxy = new OrganizationServiceProxy(uri, null, credentials, null);
            proxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
            IOrganizationService service = (IOrganizationService)proxy;



            // Create the view.
            string layoutXml = @"<grid name='resultset' object='1' jump='accountid' select='1' preview='1' icon='1'>
    <row name='result' id='accountid'>
    <cell name='name' width='150' /> 
    <cell name='customerid' width='150' /> 
    <cell name='primarycontactid' width='150' /> 
    <cell name='telephone1' width='150' /> 
     </row>
</grid>";
            //fetch example
            string fetchXml = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
<entity name='account'>
<attribute name='name' />
<attribute name='primarycontactid' />
<attribute name='telephone1' />
<attribute name='accountid' />
<order attribute='name' descending='false' />
<filter type='and'>
<condition attribute='name' operator='eq' value='qwe' />
</filter>
</entity>
</fetch>";

            SavedQuery sq = new SavedQuery();
            sq.Name = "A New Custom Public View";
            sq.Description = "A Saved Query created in code";
            sq.ReturnedTypeCode = "opportunity";
            sq.FetchXml = fetchXml;
            sq.LayoutXml = layoutXml;
            sq.QueryType = 0;

            Console.WriteLine("A new view");
            proxy.Create(sq);
            
        }

    }
}
Старый 28.12.2011, 00:40   #7  
Konstantin Katsovich is offline
Konstantin Katsovich
Участник
Аватар для Konstantin Katsovich
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
243 / 57 (2) ++++
Регистрация: 22.10.2008
Адрес: Israel
У Вас fetch и layout для сущности
Цитата:
Сообщение от Aliwer Посмотреть сообщение
<entity name='account'>
[/XPP]
SavedQuery для
Цитата:
Сообщение от Aliwer Посмотреть сообщение
sq.ReturnedTypeCode = "opportunity";
[/XPP]
Надо бы определиться
__________________
Читайте SDK!!!
За это сообщение автора поблагодарили: Aliwer (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
FetchXML multiple parameter Lud Dynamics CRM: Разработка 5 24.10.2011 06:58
Не работает SQL запрос ipok Dynamics CRM: Разработка 8 30.01.2011 11:18
jamesdowney: Pulling Attribute Values into Variables from FetchXML Result Blog bot Dynamics CRM: Blogs 0 13.08.2009 15:05
Ronald Lemmen: Using Advanced Find for FetchXML builder v4.0 Blog bot Dynamics CRM: Blogs 0 16.02.2009 19:05
Запрос в SQL AlekseyS Dynamics CRM: Разработка 1 26.08.2008 11:01

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:26.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.