FetchXML nvarchar ничего не возвращает - настраиваемый отчет для CRM

Я пытаюсь получить данные из Dynamics CRM 2013 для настраиваемого отчета с помощью FetchXML.

Я "преобразовал" следующий SQL-запрос в FetchXML с помощью этой страницы: http://www.sql2fetchxml.com/

SQL:

SELECT
accountidname,
billto_line1,
billto_postalcode,
billto_city,
invoicenumber,
name,
description
FROM FilteredInvoice 
WHERE invoiceid = @invoiceid

FetchXML:

<fetch mapping="logical">
  <entity name="invoice">
    <attribute name="accountidname" />
    <attribute name="billto_line1" />
    <attribute name="billto_postalcode" />
    <attribute name="billto_city" />
    <attribute name="invoicenumber" />
    <attribute name="name" />
    <attribute name="description" />
    <filter>
      <condition attribute="invoiceid" operator="eq" value="@invoiceid" />
    </filter>
  </entity>
</fetch>

Оба, «accountidname» и (например) «billto_line1» - это NVARCHAR (4000), и оба содержат данные, но если я попытаюсь выполнить запрос (например, в «Конструкторе запросов» в Visual Studio), будут только данные «billto_line1» показаны, а не данные "accountidname".

Поскольку оба поля «accountidname» и «billto_line1» имеют один и тот же тип (nvarchar (4000)) и содержат информацию в базе данных (я проверил ее с помощью «Microsoft SQL Server Management Studio»), мне интересно, почему я могу получать только информация от одного из этих двух.

Это случилось со многими различными полями типа NVARCHAR - некоторые отображаются правильно, а некоторые нет - и я не знаю, почему.

Я был бы очень рад, если бы кто-нибудь мне подсказал :)

Спасибо


person MischCon    schedule 02.10.2014    source источник


Ответы (1)


accountidname находится в представлениях, а не в реальных таблицах SQL. Это не поле в сущности invoice и поэтому не будет возвращать никакой информации в запросе FetchXml.

Вы должны иметь возможность получить имя учетной записи с помощью accountid - я не помню в SSRS, как проявляется свойство Name для EntityReference, но оно должно быть доступно.

Конвертер FetchXml хорош для преобразования SQL SELECT в формат FetchXml и преобразования объединений. Он не будет проверять, доступны ли поля SQL в FetchXml - это можно сделать только путем доступа к метаданным CRM Org.

person Nicknow    schedule 02.10.2014
comment
Спасибо за ваш быстрый ответ (и извините за мой поздний повтор - меня не было в офисе на несколько дней). Ваше объяснение имеет смысл, и поскольку я начал получать доступ к фактическим таблицам (а не только к представлениям), все, похоже, работает нормально. Спасибо - вы сделали меня (и моего начальника) счастливыми :) - person MischCon; 06.10.2014