Как Вы обрабатываете данные результата fetchxml?

Определенно используйте onload. Разделите свои сценарии от Вашей страницы, или Вы сойдете с ума, пытаясь распутать их позже.

7
задан Matt 4 May 2011 в 13:37
поделиться

5 ответов

Я обычно избегаю FetchXML именно по этой причине. Вы можете использовать RetrieveMultiple для получения строго типизированных объектов BusinessEntity и в основном делать то же самое.

Но если вы хотите использовать FetchXML, этот пример должен вас охватить:

http://msdn.microsoft.com/en- us / library / ms914457.aspx

1
ответ дан 7 December 2019 в 05:26
поделиться

Вы также можете использовать LinqtoCRM, который будет обрабатывать синтаксический анализ XML за вас: http://codeplex.com/linqtocrm

0
ответ дан 7 December 2019 в 05:26
поделиться

Мне нравится гибкость FetchXML, поэтому я разработал следующую функцию, которая возвращает данные для использования в привязке к сеткам, повторителям и т. Д.

        /// <summary>
    /// Takes a CRM FetchXML query and returns a DataTable
    /// </summary>
    /// <param name="fetchXml">The FetchXML query</param>
    /// <param name="requiredFields">A array of columns you'd expect returned. This is required as if there is no data for a field/column CRM will not return it which could impact databinding</param>
    /// <returns>A datatable containing the results of the FetchXML</returns>
    public static DataTable FetchXML2DataTable(string fetchXml, string[] requiredFields)
    {
        CrmService tomService = new CrmService();
        tomService = CrmWebService;

        string result = tomService.Fetch(fetchXml);
        DataSet ds = new DataSet();

        System.IO.StringReader reader = new System.IO.StringReader(result);
        ds.ReadXml(reader);

        DataTable dt = ds.Tables[1];

        //check all required columns are present otherwise add them to make life easier for databinding at the top level
        //caused by CRM not returning fields if they contain no data
        foreach (string field in requiredFields)
        {   //Check for column names and nested tables
            if ((dt.Columns.IndexOf(field) < 0) && (dt.DataSet.Tables.IndexOf(field) <0))
            {                    
                //Add column to datatable even though it is empty for reason stated above
                dt.Columns.Add(new DataColumn(field));
            }
        }            

        return dt;
    }

Строковый массив requiredFields существует, потому что столбцы не возвращаются, если ваш результирующий набор не содержит данных с этим столбцом, однако мне может понадобиться этот столбец по той причине, по которой он привязан к сеткам данных и т. д.

CrmService - это одноэлементный класс, который запускает веб-службу.

Надеюсь, это вам пригодится.

6
ответ дан 7 December 2019 в 05:26
поделиться

If you want to use a fetchxml AND get a returnset of the BusinessEntityType, you can use the FetchXmlToQueryExpression method to get a query expression from the fetchxml and then apply the query expression in a RetrieveMultiple method as in

FetchXmlToQueryExpressionResponse qe = (FetchXmlToQueryExpressionResponse) service.Execute(fetch);

Note that the reverse method QueryExpressiontoFetchXml exists as well

0
ответ дан 7 December 2019 в 05:26
поделиться

С помощью QueryExpression вы не можете запрашивать сущность "многие ко многим" и не можете извлекать атрибуты более чем из одной сущности одновременно, поэтому вы должны использовать FetchXML.

К сожалению, проект codeplex LinqToCRM устарел (1 год без нового релиза, но это, кажется, хорошая реализация, лучше, чем релиз от Microsoft) с выпуском 4.0.12 CRM SDK, который содержал поставщик linq для динамической crm. , но я прочитал какую-то статью об этом новом выпуске, и он не очень хорош, кажется, это «плохая реализация» с множеством ограничений (принудительный кеш и т. д.).

Я вижу много людей, использующих LinqToXML и DataSet для опережения результатов FetchXML, но я не могу сказать, как лучше всего с этим справиться. Что Вы думаете об этом?

Кристоф Тревизани Чави.

1
ответ дан 7 December 2019 в 05:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: