Проверка настроенного компонента электронной отчетности для предотвращения неполадок среды выполнения
Каждый настроенный форматэлектронной отчетности (ER) и компонент сопоставления моделей могут быть проверены во время разработки. Во время этой проверки выполняется проверка целостности, которая позволяет предотвратить возможные проблемы среды выполнения, такие как ошибки выполнения и снижение производительности. Для каждой найденной проблемы проверка предоставляет путь проблемного элемента. Для некоторых проблем доступно автоматическое исправление.
По умолчанию проверка применяется автоматически в следующих случаях для конфигурации электронной отчетности, которая содержит ранее упомянутые компоненты электронной отчетности:
- Вы импортируете новую версию конфигурации электронной отчетности в свой экземпляр Microsoft Dynamics 365 Finance.
- Вы изменяете статус редактируемой конфигурации электронной отчетности с Черновик на Завершено.
- Вы перебазируете редактируемую конфигурацию электронной отчетности, применяя новую базовую версию.
Эту проверку можно выполнить явно. Выберите один из следующих трех параметров и выполните следующие предусмотренные шаги:
Вариант 1:
- Перейдите в раздел Управление организацией > Электронная отчетность > Конфигурации.
- В дереве конфигурации в левой области выберите нужную конфигурацию электронной отчетности, которая содержит формат электронной отчетности или компонент сопоставления модели электронной отчетности.
- На экспресс-вкладке Версии выберите желаемую версию выбранной конфигурации электронной отчетности.
- На панели операций выберите Проверить.
Вариант 2 для формата электронной отчетности:
- Перейдите в раздел Управление организацией > Электронная отчетность > Конфигурации.
- В дереве конфигурации в левой области выберите нужную конфигурацию электронной отчетности, которая содержит компонент формата электронной отчетности.
- На экспресс-вкладке Версии выберите желаемую версию выбранной конфигурации электронной отчетности.
- В области действий выберите Конструктор.
- На странице Конструктор форматов в области действий выберите Проверить.
Вариант 3 для сопоставления модели электронной отчетности:
- Перейдите в раздел Управление организацией > Электронная отчетность > Конфигурации.
- В дереве конфигурации в левой области выберите нужную конфигурацию электронной отчетности, которая содержит компонент сопоставления модели электронной отчетности.
- На экспресс-вкладке Версии выберите желаемую версию выбранной конфигурации электронной отчетности.
- В области действий выберите Конструктор.
- На странице Сопоставление модели и источника данных в области действий выберите Конструктор.
- На странице Конструктор сопоставлений моделей в области действий выберите Проверить.
Чтобы пропустить проверку при импорте конфигурации, выполните следующие действия.
- Перейдите в раздел Управление организацией > Электронная отчетность > Конфигурации.
- На странице Конфигурации в области действий на вкладке Конфигурации в группе Дополнительные параметры выберите Параметры пользователя.
- Установите для параметра Проверить конфигурацию после импорта значение Нет.
Чтобы пропустить проверку, когда вы изменяете или перебазируете статус версии, выполните следующие действия.
- Перейдите в раздел Управление организацией > Электронная отчетность > Конфигурации.
- На странице Конфигурации в области действий на вкладке Конфигурации в группе Дополнительные параметры выберите Параметры пользователя.
- Задайте для параметра Пропустить проверку при изменении статуса конфигурации и изменении базы значение Да.
Электронная отчетность использует следующие категории для группировки инспекций проверок согласованности:
- Выполнимость — проверки, которые определяют критические проблемы, которые могут произойти во время выполнения. Эти проблемы обычно имеют уровень Ошибка.
- Производительность — проверки, которые определяют, какие проблемы могут привести к неэффективному выполнению настроенных компонентов электронной отчетности. Эти проблемы обычно имеют уровень Предупреждение.
- Целостность данных — проверки, которые определяют проблемы, которые могут привести к потере данных или проблемам во время выполнения. Эти проблемы обычно имеют уровень Предупреждение.
Список инспекций
В следующей таблице приводится обзор инспекций, предоставляемых электронной отчетностью. Для получения дополнительных сведений об этих проверках воспользуйтесь ссылками в первом столбце, чтобы перейти к соответствующим разделам данной статьи. В этих разделах описываются типы компонентов, для которых электронная отчетность предоставляет проверки, а также способы изменения конфигурации компонентов аварийной отчетности, которые помогают предотвратить проблемы.
Наименование | Категория | Уровень | Сообщение |
---|---|---|---|
Преобразование типов | Выполнимость | Ошибка |
Невозможно преобразовать выражение типа <тип> в поле типа <тип>. Ошибка выполнения: исключение для типа |
Совместимость типов | Выполнимость | Ошибка |
Настроенное выражение не может использоваться в качестве привязки элемента текущего формата к источнику данных, так как это выражение возвращает значение типа данных <тип>, которое находится за пределами диапазона типов данных, поддерживаемых текущим элементом форматирования типа <тип>. Ошибка выполнения: исключение типа |
Отсутствует элемент конфигурации | Выполнимость | Ошибка |
Путь не найден <путь>. Ошибка выполнения: элемент конфигурации <путь> не найден |
Выполнимость выражения с функцией FILTER | Выполнимость | Ошибка |
Выражение списка функции FILTER недоступно для запросов. Ошибка выполнения: фильтрация не поддерживается. Проверьте конфигурацию для получения дополнительных сведений об этом. |
Выполнимость источника данных GROUPBY | Выполнимость | Ошибка | Путь <путь> не поддерживает запросы. |
Выполнимость | Ошибка |
Функция "группировка по" не может быть выполнена с запросом. Ошибка выполнения: функция "группировка по" не может быть выполнена с запросом. |
|
Выполнимость источника данных JOIN | Выполнимость | Ошибка |
Невозможно объединить <путь> списка, который не является фильтром в запросе. Ошибка выполнения: функция "Объединенный источник данных должен быть вычисленным полем выражения фильтра" неправильно вызвана. |
Предпочтительность функции FILTER по отношению к WHERE | Производительность | Предупреждение | Использование функции FILTER для выражения предпочтительнее, чем WHERE с точки зрения производительности. Выберите исправление, чтобы заменить это автоматически. |
Предпочтительность функции ALLITEMSQUERY по отношению к ALLITEMS | Производительность | Предупреждение | Использование функции ALLITEMSQUERY для выражения предпочтительнее, чем ALLITEMS с точки зрения производительности. Выберите исправление, чтобы заменить это автоматически. |
Рассмотрение случаев пустого списка | Выполнимость | Предупреждение |
<Путь> списка не имеет никакой проверки на пустой вариант списка, что может привести к ошибке во время выполнения. Добавьте проверку для пустого варианта списка. Ошибка выполнения: список пуст по <путь> Потенциальная проблема: строка заполняется один раз, а источник данных, из которого она заполняется, содержит несколько записей. |
Выполнимость выражения с функцией FILTER (кэширование) | Выполнимость | Ошибка |
Функция FILTER не может применяться к выбранному типу источника данных. Источник данных типа табличных записей применяется только в том случае, если он не кэширован и не содержит вложенных источников данных, добавленных вручную. Ошибка выполнения: фильтрация не поддерживается. Проверьте конфигурацию для получения дополнительных сведений об этом. |
Отсутствует привязка | Выполнимость | Предупреждение |
Путь <путь> не имеет привязки к источнику данных в использовании сопоставления модели. Ошибка выполнения: путь <путь> не привязан |
Не связанный шаблон | Целостность данных | Предупреждение | Файл <имя> связан с компонентами, не являющимися файлом, и будет удален после изменения статуса версии конфигурации. |
Несинхронизированный формат | Целостность данных | Предупреждение | Определенное имя <имя компонента> не существует в <имени листа> листов Excel |
Несинхронизированный формат | Целостность данных | Предупреждение |
Тег <Отмеченный элемент управления содержимым Word> не существует в файле шаблона Word Ошибка выполнения: тег <Отмеченный элемент управления содержимым Word> не существует в файле шаблона Word. |
Сопоставление по умолчанию отсутствует | Целостность данных | Ошибка |
Существует более одного сопоставления модели для <имени модели (корневой дескриптор)> модель данных в конфигурациях <имена конфигурации, разделенные запятой>. Установите одну из конфигураций по умолчанию Ошибка выполнения: существует более одного сопоставления модели для модели данных <имя модели (корневой дескриптор)> в конфигурациях <имена конфигурации, разделенные запятой>. Установите одну из конфигураций по умолчанию. |
Несогласованный параметр компонентов верхнего или нижнего колонтитула | Целостность данных | Ошибка |
Верхние или нижние олонтитулы (<тип компонента: верхний или нижний колонтитул>) противоречивы Среда выполнения: последний настроенный компонент используется в среде выполнения, если выполняется черновая версия настроенного формата электронной отчетности. |
Несогласованная настройка компонента страницы | Целостность данных | Ошибка | Имеется более двух компонентов диапазона без репликации. Удалите ненужные компоненты. |
Выполнимость выражения с функцией ORDERBY | Выполнимость | Ошибка |
Выражение списка функции ORDERBY недоступно для запросов. Ошибка выполнения: сортировка не поддерживается. Проверьте конфигурацию для получения дополнительных сведений об этом. |
Устаревший артефакт приложения | Целостность данных | Предупреждение |
Элемент <путь> отмечен как устаревший. Образец ошибки среды выполнения: Класс "<путь >" не найден. |
Преобразование типов
Электронная отчетность проверяет, совместим ли тип данных поля модели данных с типом данных выражения, настроенного в качестве привязки этого поля. Если типы данных несовместимы, в конструкторе сопоставления модели электронной отчетности возникает ошибка проверки. В сообщении, которое вы получаете, говориться, что электронная отчетность не может преобразовать выражение типа A в поле типа B.
Следующие шаги показывают, как может произойти эта проблема.
Начните настраивать модель данных электронной отчетности и компоненты сопоставления модели электронной отчетности одновременно.
В дереве модели данных добавьте поле с именем X и выберите Integer в качестве типа данных.
В конструкторе сопоставления модели, в области источников данных добавьте источник данных типа Вычисляемое поле.
Назовите новый источник данных Y и настройте его так, чтобы он содержал выражение
INTVALUE(100)
.Выполните привязку X к Y.
В конструкторе моделей данных измените тип данных поля X с Integer на Int64.
Выберите Проверить, чтобы проверить редактируемый компонент сопоставления моделей на странице Конструктор сопоставления моделей.
Выберите Проверить, чтобы проверить компонент сопоставления моделей выбранной конфигурации электронной отчетности на странице Конфигурации.
Обратите внимание, что происходит ошибка проверки. В сообщении говорится, что значение типа Integer, возвращаемое выражением
INTVALUE(100)
источника данных Y, не может быть сохранено в поле модели данных X типа Int64.
На следующем рисунке показана ошибка среды выполнения, которая происходит, если вы проигнорируете предупреждение и выберите команду Выполнить, чтобы выполнить формат, настроенный для использования сопоставления модели.
Автоматическое разрешение
Нет параметров для автоматического исправления этой проблемы.
Разрешение вручную
Параметр 1
Обновите структуру модели данных, изменив тип данных поля модели данных таким образом, чтобы он соответствовал типу данных выражения, которое настроено для привязки этого поля. В предыдущем примере тип данных поля X должен быть изменен обратно на целое число Integer.
Параметр 2
Обновите сопоставление модели путем изменения выражения источника данных, связанного с полем модели данных. Для предыдущего примера выражение источника данных Y должно быть изменено на INT64VALUE(100)
.
Совместимость типов
Электронная отчетность проверяет, совместим ли тип данных элемента формата с типом данных выражения, настроенного в качестве привязки этого элемента формата. Если типы данных несовместимы, в конструкторе операций электронной отчетности возникает ошибка проверки. В получаемом вами сообщении говорится, что настроенное выражение не может использоваться в качестве привязки элемента текущего формата к источнику данных, так как это выражение возвращает значение типа данных A, которое находится за пределами области типов данных, поддерживаемых текущим элементом форматирования типа B.
Следующие шаги показывают, как может произойти эта проблема.
Начните настраивать модель данных электронной отчетности и компоненты формата электронной отчетности одновременно.
В дереве модели данных добавьте поле с именем X и выберите Integer в качестве типа данных.
В дереве структуры формата добавьте элемент формата типа Числовой.
Присвойте имя новому элементу форматирования Y. В поле Числовой тип выберите Integer в качестве типа данных.
Выполните привязку X к Y.
В дереве структуры формата измените тип данных элемента формата Y с Integer на Int64.
Выберите Проверить, чтобы проверить редактируемый компонент формата на странице Конструктор формата.
Обратите внимание, что происходит ошибка проверки. В сообщении говорится, что настроенное выражение может принимать только значения Int64. Таким образом, значение поля модели данных X типа Integer не может быть введено в элемент формата Y.
Автоматическое разрешение
Нет параметров для автоматического исправления этой проблемы.
Разрешение вручную
Параметр 1
Обновите структуру формата, изменив тип данных элемента формата Числовой таким образом, чтобы он соответствовал типу данных выражения, которое вы настроили для привязки этого элемента. В предыдущем примере значение Числовой тип элемента формата X должен быть изменен обратно на целое число Integer.
Параметр 2
Обновите сопоставление формата элемента формата X, изменив выражение с model.X
на INT64VALUE(model.X)
.
Отсутствует элемент конфигурации
Электронная отчетность проверяет, содержат ли выражения привязки только те источники данных, которые настроены в редактируемом компоненте электронной отчетности. Для каждой привязки, содержащей источник данных, отсутствующий в редактируемом компоненте электронной отчетности, в конструкторе операций электронной отчетности или в конструкторе сопоставления моделей электронной отчетности возникает ошибка проверки.
Следующие шаги показывают, как может произойти эта проблема.
Начните настраивать модель данных электронной отчетности и компоненты сопоставления модели электронной отчетности одновременно.
В дереве модели данных добавьте поле с именем X и выберите Integer в качестве типа данных.
В конструкторе сопоставления модели, в области источников данных добавьте источник данных типа Вычисляемое поле.
Назовите новый источник данных Y и настройте его так, чтобы он содержал выражение
INTVALUE(100)
.Выполните привязку X к Y.
В конструкторе сопоставления моделей в области источников данных удалите источник данных Y.
Выберите Проверить, чтобы проверить редактируемый компонент сопоставления моделей на странице Конструктор сопоставления моделей.
Обратите внимание, что происходит ошибка проверки. В сообщении говорится, что привязка поля модель данных X содержит путь, относящийся к источнику данных Y, но этот источник данных не найден.
Автоматическое разрешение
Выберите Отменить связь, чтобы устранить эту проблему автоматически, удалив отсутствующую привязку источника данных.
Разрешение вручную
Параметр 1
Отмените привязку поля модели данных X для прекращения связи с несуществующим источником данных Y.
Параметр 2
В конструкторе сопоставления моделей, в области источников данных добавьте источник данных Y.
Выполнимость выражения с функцией FILTER
Встроенная функция электронной отчетности FILTER используется для доступа к таблицам приложений, представлениям или сущностям данных путем помещения одного вызова SQL для получения необходимых данных в виде списка записей. Источник данных типа Список записей используется в качестве аргумента данной функции и определяет источник приложения для вызова. Электронная отчетность проверяет, можно ли установить прямой SQL-запрос для источника данных, на который имеется ссылка в функции FILTER
. Если невозможно установить прямой запрос, в конструкторе сопоставления моделей электронной отчетности возникает ошибка проверки. Выводится сообщение о том, что выражение электронной отчетности, включающее функцию FILTER
, не может быть выполнено во время выполнения.
Следующие шаги показывают, как может произойти эта проблема.
Начните настройку компонента сопоставления модели электронной отчетности.
Добавьте источник данных типа Dynamics 365 for Operations \ Записи таблицы.
Назовите новый источник данных Vendor. В поле Таблица выберите VendTable, чтобы указать, что этот источник данных будет запрашивать таблицу VendTable.
Добавьте источник данных типа Вычисляемое поле.
Назовите новый источник данных FilteredVendor и настройте его так, чтобы он содержал выражение
FILTER(Vendor, Vendor.AccountNum="US-101")
.Выберите Проверить для проверки редактируемого компонента сопоставления моделей на странице Конструктор сопоставления моделей и убедитесь, что можно запросить выражение
FILTER(Vendor, Vendor.AccountNum="US-101")
в источнике данных Vendor.Измените источник данных Vendor, добавив вложенное поле типа Вычисляемое поле для того, чтобы получить номер счета поставщика с удаленными начальными и конечными лишними символами.
Назовите новое вложенное поле $AccNumber и настройте его так, чтобы оно содержало выражение
TRIM(Vendor.AccountNum)
.Выберите Проверить для проверки редактируемого компонента сопоставления моделей на странице Конструктор сопоставления моделей и убедитесь, что можно запросить выражение
FILTER(Vendor, Vendor.AccountNum="US-101")
в источнике данных Vendor.Обратите внимание, что возникает ошибка проверки, так как источник данных Vendor содержит вложенное поле типа Вычисляемое поле, которое не позволяет преобразовать выражение источника данных FilteredVendor в прямую инструкцию SQL.
На следующем рисунке показана ошибка среды выполнения, которая происходит, если вы проигнорируете предупреждение и выберите команду Выполнить, чтобы выполнить формат, настроенный для использования сопоставления модели.
Автоматическое разрешение
Нет параметров для автоматического исправления этой проблемы.
Разрешение вручную
Параметр 1
Вместо добавления вложенного поля типа Вычисляемое поле к источнику данных Vendor добавьте вложенное поле $AccNumber в источник данных FilteredVendor и настройте его так, чтобы оно содержало выражение TRIM(FilteredVendor.AccountNum)
. Таким образом, выражение FILTER(Vendor, Vendor.AccountNum="US-101")
можно выполнить на уровне SQL и рассчитать вложенное поле $AccNumber позже.
Параметр 2
Измените выражение источника данных FilteredVendor с FILTER(Vendor, Vendor.AccountNum="US-101")
на WHERE(Vendor, Vendor.AccountNum="US-101")
. Мы не рекомендуем изменять выражение для таблицы, которая имеет большой объем данных (таблица проводок), так как все записи будут получены, и выбор необходимых записей будет выполнен в памяти. Таким образом, такой подход может привести к снижению производительности. Дополнительные сведения см. в разделе Функция электронной отчетности WHERE.
Выполнимость источника данных GROUPBY
Источник данных GROUPBY разделяет результат запроса на группы записей, обычно в целях выполнения одной или нескольких агрегаций в каждой группе. Каждый источник данных GROUPBY можно настроить таким образом, чтобы он выполнялся либо на уровне базы данных, либо в памяти. Если источник данных GROUPBY настроен таким образом, что он выполняется на уровне базы данных, то модуль электронной отчетности проверяет, можно ли установить прямой SQL-запрос для источника данных, на который ссылается этот источник данных. Если невозможно установить прямой запрос, в конструкторе сопоставления моделей электронной отчетности возникает ошибка проверки. Выводится сообщение о том, что настроенный источник данных GROUPBY невозможно выполнить во время выполнения.
Следующие шаги показывают, как может произойти эта проблема.
Начните настройку компонента сопоставления модели электронной отчетности.
Добавьте источник данных типа Dynamics 365 for Operations \ Записи таблицы.
Назовите новый источник данных Trans. В поле Таблица выберите VendTrans, чтобы указать, что этот источник данных будет запрашивать таблицу VendTrans.
Добавьте источник данных типа Группировать по.
Назовите новый источник данных GroupedTrans и настройте его следующим образом:
- Выберите источник данных Trans в качестве источника записей, которые должны быть сгруппированы.
- В поле Расположение выполнения выберите Запрос, чтобы указать, что этот источник данных должен запускаться на уровне базы данных.
Выберите Проверить для проверки редактируемого компонента сопоставления моделей на странице Конструктор сопоставления моделей и убедитесь, что можно запросить настроенный источник данных GroupedTrans.
Измените источник данных Trans, добавив вложенное поле типа Вычисляемое поле для того, чтобы получить номер счета поставщика с удаленными начальными и конечными лишними символами.
Назовите новый источник данных $AccNumber и настройте его так, чтобы он содержал выражение
TRIM(Trans.AccountNum)
.Выберите Проверить для проверки редактируемого компонента сопоставления моделей на странице Конструктор сопоставления моделей и убедитесь, что можно запросить настроенный источник данных GroupedTrans.
Обратите внимание, что возникает ошибка проверки, так как источник данных Trans содержит вложенное поле типа Вычисляемое поле, которое не позволяет преобразовать вызов источника данных GroupedTrans в прямую инструкцию SQL.
На следующем рисунке показана ошибка среды выполнения, которая происходит, если вы проигнорируете предупреждение и выберите команду Выполнить, чтобы выполнить формат, настроенный для использования сопоставления модели.
Автоматическое разрешение
Нет параметров для автоматического исправления этой проблемы.
Разрешение вручную
Параметр 1
Вместо добавления вложенного поля типа Вычисляемое поле к источнику данных Trans добавьте вложенное поле $AccNumber для элемента GroupedTrans.lines источника данных GroupedTrans и настройте его так, чтобы оно содержало выражение TRIM(GroupedTrans.lines.AccountNum)
. Таким образом, источник данных GroupedTrans можно выполнить на уровне SQL и рассчитать вложенное поле $AccNumber позже.
Параметр 2
Измените значение поля Расположение выполнения для источника данных GroupedTrans с Запрос на В памяти. Мы не рекомендуем изменять значение для таблицы, которая имеет большой объем данных (таблица проводок), так как все записи будут получены, и группирование и агрегирование будут выполнены в памяти. Таким образом, такой подход может привести к снижению производительности.
Выполнимость источника данных JOIN
Источник данных JOIN объединяет записи из двух или более таблиц базы данных на основе соответствующих полей. Каждый источник данных JOIN можно настроить таким образом, чтобы он выполнялся либо на уровне базы данных, либо в памяти. Если источник данных JOIN настроен таким образом, что он выполняется на уровне базы данных, то модуль электронной отчетности проверяет, можно ли установить прямой SQL-запрос к источникам данных, на которые ссылается этот источник данных. Если невозможно установить прямой SQL-запрос по крайней мере с одним указанным источником данных, в конструкторе сопоставления моделей электронной отчетности возникает ошибка проверки. Выводится сообщение о том, что настроенный источник данных JOIN невозможно выполнить во время выполнения.
Следующие шаги показывают, как может произойти эта проблема.
Начните настройку компонента сопоставления модели электронной отчетности.
Добавьте источник данных типа Dynamics 365 for Operations \ Записи таблицы.
Назовите новый источник данных Vendor. В поле Таблица выберите VendTable, чтобы указать, что этот источник данных будет запрашивать таблицу VendTable.
Добавьте источник данных типа Dynamics 365 for Operations \ Записи таблицы.
Назовите новый источник данных Trans. В поле Таблица выберите VendTrans, чтобы указать, что этот источник данных будет запрашивать таблицу VendTrans.
Добавьте источник данных типа Вычисляемое поле в качестве вложенного поля источника данных Vendor.
Назовите новый источник данных FilteredTrans и настройте его так, чтобы он содержал выражение
FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
.Добавьте источник данных типа Присоединить.
Назовите новый источник данных JoinedList и настройте его следующим образом:
- Добавьте источник данных Vendor в качестве первого набора соединяемых записей.
- Добавьте источник данных Vendor.FilteredTrans в качестве второго набора соединяемых записей. Выберите INNER как тип.
- В поле Выполнить выберите Запрос, чтобы указать, что этот источник данных должен запускаться на уровне базы данных.
Выберите Проверить для проверки редактируемого компонента сопоставления моделей на странице Конструктор сопоставления моделей и убедитесь, что можно запросить настроенный источник данных JoinedList.
Измените выражение источника данных Vendor.FilteredTrans с
FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
наWHERE(Trans, Trans.AccountNum=Vendor.AccountNum)
.Выберите Проверить для проверки редактируемого компонента сопоставления моделей на странице Конструктор сопоставления моделей и убедитесь, что можно запросить настроенный источник данных JoinedList.
Обратите внимание, что происходит ошибка проверки, так как выражение источника данных Vendor.FilteredTrans не может быть преобразовано в прямой вызов SQL. Кроме того, прямой вызов SQL не позволяет преобразовать вызов источника данных JoinedList в прямую инструкцию SQL.
На следующем рисунке показана ошибка среды выполнения, которая происходит, если вы проигнорируете предупреждение и выберите команду Выполнить, чтобы выполнить формат, настроенный для использования сопоставления модели.
Автоматическое разрешение
Нет параметров для автоматического исправления этой проблемы.
Разрешение вручную
Параметр 1
Измените выражение источника данных Vendor.FilteredTrans с WHERE(Trans, Trans.AccountNum=Vendor.AccountNum)
обратно на FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
, как рекомендуется в предупреждении.
Параметр 2
Измените значение поля Выполнить для источника данных JoinedList с Запрос на В памяти. Мы не рекомендуем изменять значение для таблицы, которая имеет большой объем данных (таблица проводок), так как все записи будут получены, и присоединение произойдет в памяти. Таким образом, такой подход может привести к снижению производительности. Для информирования об этом риске отображается предупреждение проверки.
Предпочтительность функции FILTER по сравнению с WHERE
Встроенная функция электронной отчетности FILTER используется для доступа к таблицам приложений, представлениям или сущностям данных путем помещения одного вызова SQL для получения необходимых данных в виде списка записей. Функция WHERE извлекает все записи из данного источника и выполняет выбор записей в памяти. Источник данных типа Список записей используется в качестве аргумента обеих функций и определяет источник получения записей. Электронная отчетность проверяет, возможно ли установление прямого вызова SQL к источнику данных, на который имеется ссылка в функции WHERE. Если невозможно установить прямой вызов, в конструкторе сопоставления моделей электронной отчетности возникает предупреждение проверки. Полученное сообщение рекомендует использовать функцию FILTER вместо функции WHERE для повышения эффективности.
Следующие шаги показывают, как может произойти эта проблема.
Начните настройку компонента сопоставления модели электронной отчетности.
Добавьте источник данных типа Dynamics 365 for Operations \ Записи таблицы.
Назовите новый источник данных Trans. В поле Таблица выберите VendTrans, чтобы указать, что этот источник данных будет запрашивать таблицу VendTrans.
Добавьте источник данных типа Вычисляемое поле в качестве вложенного поля источника данных Vendor.
Назовите новый источник данных FilteredTrans и настройте его так, чтобы он содержал выражение
WHERE(Trans, Trans.AccountNum="US-101")
.Добавьте источник данных типа Dynamics 365 for Operations \ Записи таблицы.
Назовите новый источник данных Vendor. В поле Таблица выберите VendTable, чтобы указать, что этот источник данных будет запрашивать таблицу VendTable.
Добавьте источник данных типа Вычисляемое поле.
Назовите новый источник данных FilteredVendor и настройте его так, чтобы он содержал выражение
WHERE(Vendor, Vendor.AccountNum="US-101")
.Выберите Проверить, чтобы проверить редактируемый компонент сопоставления моделей на странице Конструктор сопоставления моделей.
Обратите внимание, что предупреждения проверки рекомендуют использовать функцию FILTER вместо функции WHERE для источников данных FilteredVendor и FilteredTrans.
Автоматическое разрешение
Выберите Исправить, чтобы автоматически заменить функцию WHERE функцией FILTER в выражениях всех источников данных, которые отображаются в сетке на вкладке Предупреждения для данного типа проверки.
Вместо этого можно выбрать строку для одного предупреждения в сетке, а затем выбрать Исправить выбранное. В этом случае выражение автоматически изменяется только в источнике данных, который упоминается в выбранном предупреждении.
Разрешение вручную
Можно вручную настроить выражения всех источников данных в сетке проверки, заменив функцию WHERE функцией FILTER.
Предпочтительность функции ALLITEMSQUERY по сравнению с ALLITEMS
Встроенные функции электронной отчетности ALLITEMS и ALLITEMSQUERY возвращают плоское значение Список записей, состоящее из списка записей, представляющих все элементы, которые соответствуют указанному пути. Электронная отчетность проверяет, возможно ли установление прямого вызова SQL к источнику данных, на который имеется ссылка в функции ALLITEMS. Если невозможно установить прямой вызов, в конструкторе сопоставления моделей электронной отчетности возникает предупреждение проверки. Полученное сообщение рекомендует использовать функцию ALLITEMSQUERY вместо функции ALLITEMS для повышения эффективности.
Следующие шаги показывают, как может произойти эта проблема.
Начните настройку компонента сопоставления модели электронной отчетности.
Добавьте источник данных типа Dynamics 365 for Operations \ Записи таблицы.
Назовите новый источник данных Vendor. В поле Таблица выберите VendTable, чтобы указать, что этот источник данных будет запрашивать таблицу VendTable.
Добавьте источник данных типа Вычисляемое поле, чтобы получить записи для нескольких поставщиков.
Назовите новый источник данных FilteredVendor и настройте его так, чтобы он содержал выражение
FILTER(Vendor, OR(Vendor.AccountNum="US-101",Vendor.AccountNum="US-102"))
.Добавьте источник данных типа Вычисляемое поле, чтобы получить проводки для всех отфильтрованных поставщиков.
Назовите новый источник данных FilteredVendorTrans и настройте его так, чтобы он содержал выражение
ALLITEMS(FilteredVendor.'<Relations'.'VendTrans.VendTable_AccountNum')
.Выберите Проверить, чтобы проверить редактируемый компонент сопоставления моделей на странице Конструктор сопоставления моделей.
Обратите внимание, что происходит предупреждение проверки. Сообщение рекомендует использовать функцию ALLITEMSQUERY вместо функции ALLITEMS для источника данных FilteredVendorTrans.
Автоматическое разрешение
Выберите Исправить, чтобы автоматически заменить функцию ALLITEMS функцией ALLITEMSQUERY в выражениях всех источников данных, которые отображаются в сетке на вкладке Предупреждения для данного типа проверки.
Вместо этого можно выбрать строку для одного предупреждения в сетке, а затем выбрать Исправить выбранное. В этом случае выражение автоматически изменяется только в источнике данных, который упоминается в выбранном предупреждении.
Разрешение вручную
Можно вручную настроить выражения всех источников данных, упоминаемых в сетке проверки, заменив функцию ALLITEMS функцией ALLITEMSQUERY.
Рассмотрение пустых вариантов списка
Можно настроить компонент сопоставления моделей или формата электронной отчетности, чтобы получить значение поля источника данных типа Список записей. Модуль электронной отчетности проверяет, учитывает ли ваш дизайн ситуацию, когда источник данных, который вызывается, не содержит записей (то есть, он пуст), чтобы предотвратить возникновение ошибок времени выполнения, когда значение извлекается из поля несуществующей записи.
Следующие шаги показывают, как может произойти эта проблема.
Начните настраивать модель данных электронной отчетности, компоненты сопоставления модели электронной отчетности и компоненты формата электронной отчетности одновременно.
В дереве модели данных добавьте корневой элемент с именем Root3.
Измените элемент Root3, добавив вложенный элемент типа Список записей.
Назовите новый вложенный элемент Vendor.
Измените элемент Vendor следующим образом:
- Добавьте вложенное поле типа Строка и назовите его Name.
- Добавьте вложенное поле типа Строка и назовите его AccountNumber.
В конструкторе сопоставления модели, в области источников данных добавьте источник данных типа Dynamics 365 for Operations \ Записи таблицы.
Назовите новый источник данных Vendor. В поле Таблица выберите VendTable, чтобы указать, что этот источник данных будет запрашивать таблицу VendTable.
Добавьте источник данных типа Общее \ Параметр ввода пользователя для поиска счета поставщика в диалоговом окне времени выполнения.
Назовите новый источник данных RequestedAccountNum. В поле Подпись введите Номер банковского счета поставщика. В поле Имя типа данных операций оставьте значение по умолчанию — Описание.
Добавьте источник данных типа Вычисляемое поле, чтобы отфильтровать поставщика, о котором выполняется запрос.
Назовите новый источник данных FilteredVendor и настройте его так, чтобы он содержал выражение
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Привяжите элементы модели данных к настроенным источникам данных следующим образом:
- Привяжите FilteredVendor к Vendor.
- Привяжите FilteredVendor.AccountNum к Vendor.AccountNumber.
- Привяжите FilteredVendor.'name()' к Vendor.Name.
В дереве структуры формата добавьте следующие элементы для создания исходящего документа в формате XML, содержащего сведения о поставщике:
Добавьте корневой XML-элемент Statement.
Для XML-элемента Statement добавьте вложенный XML-элемент Party.
Для XML-элемента Party добавьте следующие вложенные XML-атрибуты.
- Наименование
- AccountNum
Привяжите элементы формата к предоставленным источникам данных следующим образом:
- Привяжите элемент формата Statement\Party\Name к полю источника данных model.Vendor.Name.
- Привяжите элемент формата Statement\Party\AccountNum к полю источника данных model.Vendor.AccountNumber.
Выберите Проверить, чтобы проверить редактируемый компонент формата на странице Конструктор формата.
Обратите внимание, что происходит ошибка проверки. В сообщении говорится, что может выдаваться ошибка для настроенных компонентов формата Statement\Party\Name и Statement\Party\AccountNum во время выполнения, если список
model.Vendor
пуст.
На следующем рисунке показана ошибка среды выполнения, которая происходит, если вы проигнорируете предупреждение, выберите команду Выполнить, чтобы выполнить формат, и выберите номер счета несуществующего поставщика. Так как запрошенный поставщик не существует, список model.Vendor
будет пустым (то есть, он не будет содержать записей).
Автоматическое разрешение
Для строки, выбранной в сетке на вкладке Предупреждения, можно выбрать Отменить привязку. Привязка, на которую указывает указатель в столбце Путь, автоматически удаляется из элементов форматирования.
Разрешение вручную
Параметр 1
Вы можете привязать элемент формата Statement\Party\Name к элементу источника данных model.Vendor
. Во время выполнения эта привязка вызывает сначала источник данных model.Vendor
. Когда model.Vendor
возвращает пустой список записей, вложенные элементы формата не будут выполнены. Поэтому для данной конфигурации формата предупреждения проверки не возникают.
Параметр 2
Измените привязку элемента формата Statement\Party\Name с model.Vendor.Name
на FIRSTORNULL(model.Vendor).Name
. Обновленная привязка условно преобразует первую запись источника данных model.Vendor
типа Список записей в новый источник данных типа Запись. Этот новый источник данных содержит такой же набор полей.
- Если имеется хотя бы одна запись в источнике данных
model.Vendor
, поля этой записи заполняются значениями полей первой записи источника данныхmodel.Vendor
. В этом случае обновленная привязка возвращает имя поставщика. - В противном случае каждое поле создаваемой записи заполняются значением по умолчанию для типа данных этого поля. В этом случае пустая строка возвращается в качестве значения по умолчанию для типа данных Строка.
Таким образом, не происходит предупреждений проверки для элемента формата Statement\Party\Name, когда он привязан к выражению FIRSTORNULL(model.Vendor).Name
.
Параметр 3
Если вы хотите явно указать данные, вводимые в созданный документ, когда источник данных model.Vendor
типа Список записей не возвращает записей (текст Недоступно в этом примере), измените привязку элемента формата Statement\Party\Name с model.Vendor.Name
на IF(NOT(ISEMPTY(model.Vendor)), model.Vendor.Name, "Not available")
. Также можно использовать выражение IF(COUNT(model.Vendor)=0, model.Vendor.Name, "Not available")
.
Дополнительные соображения
Кроме того, в ходе проверки выводится предупреждение о другой потенциальной проблеме. По умолчанию, при привязке элементов формата Statement\Party\Name и Statement\Party\AccountNum к соответствующим полям источника данных model.Vendor
типа Список записей, эти привязки будут выполняться и будут получать значения соответствующих полей первой записи источника данных model.Vendor
, если этот список не пуст.
Так как элемент формата Statement\Party не привязан к источнику данных model.Vendor
, элемент Statement\Party не будет перебираться для каждой записи источника данных model.Vendor
во время выполнения формата. Вместо этого созданный документ будет заполнен данными только из первой записи списка записей, если этот список содержит несколько записей. Таким образом, может возникнуть проблема, если формат предназначен для заполнения созданного документа сведениями обо всех поставщиках из источника данных model.Vendor
. Чтобы устранить эту проблему, свяжите элемент Statement\Party с источником данных model.Vendor
.
Выполнимость выражения с функцией FILTER (кэширование)
Несколько встроенных функций электронной отчетности, включая FILTER и ALLITEMSQUERY, используются для доступа к таблицам приложений, представлениям или сущностям данных путем помещения одного вызова SQL для получения необходимых данных в виде списка записей. Источник данных типа Список записей используется в качестве аргумента каждой из этих функций и определяет источник приложения для вызова. Электронная отчетность проверяет, возможно ли установление прямого вызова SQL к источнику данных, на который имеется ссылка в одной из этих функций. Если невозможно установить прямой вызов, так как источник данных был помечен как кэшированный, в конструкторе сопоставления моделей электронной отчетности возникает ошибка проверки. Выводится сообщение о том, что выражение электронной отчетности, содержащее одну из этих функций, не может быть выполнено во время выполнения.
Следующие шаги показывают, как может произойти эта проблема.
Начните настройку компонента сопоставления модели электронной отчетности.
Добавьте источник данных типа Dynamics 365 for Operations \ Записи таблицы.
Назовите новый источник данных Vendor. В поле Таблица выберите VendTable, чтобы указать, что этот источник данных будет запрашивать таблицу VendTable.
Добавьте источник данных типа Общее \ Параметр ввода пользователя для поиска счета поставщика в диалоговом окне времени выполнения.
Назовите новый источник данных RequestedAccountNum. В поле Подпись введите Номер банковского счета поставщика. В поле Имя типа данных операций оставьте значение по умолчанию — Описание.
Добавьте источник данных типа Вычисляемое поле, чтобы отфильтровать поставщика, о котором выполняется запрос.
Назовите новый источник данных FilteredVendor и настройте его так, чтобы он содержал выражение
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Пометьте настроенный источник данных Vendor как кэшированный.
Выберите Проверить, чтобы проверить редактируемый компонент сопоставления моделей на странице Конструктор сопоставления моделей.
Обратите внимание, что происходит ошибка проверки. В сообщении говорится, что функция FILTER не может применяться к кэшированному источнику данных Vendor.
На следующем рисунке показана ошибка среды выполнения, которая происходит, если вы проигнорируете предупреждение и выберите команду Выполнить, чтобы выполнить формат.
Автоматическое разрешение
Нет параметров для автоматического исправления этой проблемы.
Разрешение вручную
Параметр 1
Удалите флаг Кэш из источника данных Vendor. Источник данных FilteredVendor затем становится исполняемым, но обращение к источнику данных Vendor, на который есть ссылка в таблице VendTable, будет выполняться при каждом вызове источника данных FilteredVendor.
Параметр 2
Измените выражение источника данных FilteredVendor с FILTER(Vendor, Vendor.AccountNum="US-101")
на WHERE(Vendor, Vendor.AccountNum="US-101")
. В этом случае обращение к источнику данных Vendor, на который есть ссылка в таблице VendTable, будет производиться только при первом вызове источника данных Vendor. Однако выбор записей будет выполнен в памяти. Таким образом, такой подход может привести к снижению производительности.
Отсутствует привязка
При настройке компонента формата электронной отчетности базовая модель данных электронной отчетности предлагается как источник данных по умолчанию для формата электронной отчетности. При выполнении настроенного формата электронной отчетности сопоставление модели по умолчанию для базовой модели используется для заполнения модели данных данными приложения. Конструктор формата электронной отчетности показывает предупреждение, если вы связываете элемент формата с элементом модели данных, который не связан ни с одним источником данных в сопоставлении модели, которая выбрана в настоящее время в качестве сопоставления модели по умолчанию для редактируемого формата. Этот тип привязки не может выполняться во время выполнения, так как формат, который выполняется, не может заполнять связанный элемент данными приложения. Таким образом, ошибка возникает во время выполнения.
Следующие шаги показывают, как может произойти эта проблема.
Начните настраивать модель данных электронной отчетности, компоненты сопоставления модели электронной отчетности и компоненты формата электронной отчетности одновременно.
В дереве модели данных добавьте корневой элемент с именем Root3.
Измените элемент Root3, добавив новый вложенный элемент типа Список записей.
Назовите новый вложенный элемент Vendor.
Измените элемент Vendor следующим образом:
- Добавьте вложенное поле типа Строка и назовите его Name.
- Добавьте вложенное поле типа Строка и назовите его AccountNumber.
В конструкторе сопоставления модели, в области источников данных добавьте источник данных типа Dynamics 365 for Operations \ Записи таблицы.
Назовите новый источник данных Vendor. В поле Таблица выберите VendTable, чтобы указать, что этот источник данных будет запрашивать таблицу VendTable.
Добавьте источник данных типа Общее \ Параметр ввода пользователя для запроса счета поставщика в диалоговом окне времени выполнения.
Назовите новый источник данных RequestedAccountNum. В поле Подпись введите Номер банковского счета поставщика. В поле Имя типа данных операций оставьте значение по умолчанию — Описание.
Добавьте источник данных типа Вычисляемое поле, чтобы отфильтровать поставщика, о котором выполняется запрос.
Назовите новый источник данных FilteredVendor и настройте его так, чтобы он содержал выражение
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Привяжите элементы модели данных к настроенным источникам данных следующим образом:
- Привяжите FilteredVendor к Vendor.
- Привяжите FilteredVendor.AccountNum к Vendor.AccountNumber.
Примечание
Поле модели данных Vendor.Name остается несвязанным.
В дереве структуры формата добавьте следующие элементы для создания исходящего документа в формате XML, содержащего сведения о поставщиках, о которых производится запрос:
Добавьте корневой XML-элемент Statement.
Для XML-элемента Statement добавьте вложенный XML-элемент Party.
Для XML-элемента Party добавьте следующие вложенные XML-атрибуты.
- Наименование
- AccountNum
Привяжите элементы формата к предоставленным источникам данных следующим образом:
- Привяжите элемент формата Statement\Party к элементу источника данных
model.Vendor
. - Привяжите элемент формата Statement\Party\Name к полю источника данных model.Vendor.Name.
- Привяжите элемент формата Statement\Party\AccountNum к полю источника данных model.Vendor.AccountNumber.
- Привяжите элемент формата Statement\Party к элементу источника данных
Выберите Проверить, чтобы проверить редактируемый компонент формата на странице Конструктор формата.
Обратите внимание, что происходит предупреждение проверки. В сообщении говорится, что поле источника данных model.Vendor.Name не привязано ни к какому источнику данных в сопоставлении моделей, настроенных для использования этим форматом. Таким образом, элемент формата Statement\Party\Name может не заполняться во время выполнения, и может возникнуть исключение времени выполнения.
На следующем рисунке показана ошибка среды выполнения, которая происходит, если вы проигнорируете предупреждение и выберите команду Выполнить, чтобы выполнить формат.
Автоматическое разрешение
Нет параметров для автоматического исправления этой проблемы.
Разрешение вручную
Параметр 1
Измените настроенное сопоставление модели, добавив привязку для поля источника данных model.Vendor.Name.
Параметр 2
Измените настроенный формат, удалив привязку для элемента формата Statement\Party\Name.
Несвязанный шаблон
Когда вы вручную настраиваете компонент формата электронной отчетности для использования шаблона для создания исходящего документа, необходимо вручную добавить элемент Excel\File, добавить нужный шаблон в качестве вложения редактируемого компонента и выбрать это вложение в добавленном элементе Excel\File. Таким образом, вы указываете, что добавленный элемент будет заполнять выбранный шаблон во время выполнения. При настройке версии компонента формата в статусе Черновик можно добавить несколько шаблонов к редактируемому компоненту, а затем выбрать каждый шаблон в элементе Excel\Файл, чтобы выполнить формат электронной отчетности. Таким образом, можно увидеть, как другие шаблоны заполняются во время выполнения. Если имеются шаблоны, которые не выбраны ни в одном элементе Excel\File, конструктор формата электронной отчетности выводит предупреждение о том, что эти шаблоны будут удалены из редактируемой версии компонента формата электронной отчетности, когда его состояние изменится с Черновик на Завершено.
Следующие шаги показывают, как может произойти эта проблема.
Начните настройку компонента формата электронной отчетности.
В дереве структуры формата добавьте элемент Excel\File.
Для элемента Excel\File, который вы только что добавили, добавьте файл книги Excel A.xlsx в качестве вложения. Для указания хранилища шаблонов формата электронной отчетности используется тип документа, настроенный в параметрах электронной отчетности.
Для элемента Excel\File добавьте другой файл книги Excel B.xlsx в качестве вложения. Используйте тот же тип документа, который используется для файла книги A.
В элементе Excel\File выберите файл книги A.
Выберите Проверить, чтобы проверить редактируемый компонент формата на странице Конструктор формата.
Обратите внимание, что происходит предупреждение проверки. В сообщении говорится, что файл книги B. xlsx не связан ни с какими компонентами, и что он будет удален после изменения состояния версии конфигурации.
Автоматическое разрешение
Нет параметров для автоматического исправления этой проблемы.
Разрешение вручную
Измените настроенный формат, удалив все шаблоны, не связанные ни с одним элементом Excel\File.
Несинхронизированный формат
Когда вы настраиваете компонент формата электронной отчетности для использования шаблона Excel для создания исходящего документа, можно вручную добавить элемент Excel\File, добавить нужный шаблон в качестве вложения редактируемого компонента и выбрать это вложение в добавленном элементе Excel\File. Таким образом, вы указываете, что добавленный элемент будет заполнять выбранный шаблон во время выполнения. Так как добавленный шаблон Excel спроектирован как внешний, редактируемый формат электронной отчетности может содержать имена Excel, отсутствующие в добавленном шаблоне. В конструкторе формата электронной отчетности выводится предупреждение о любых несоответствиях свойств элементов формата электронной отчетности, которые ссылаются на имена, не включенные в добавленный шаблон Excel.
Следующие шаги показывают, как может произойти эта проблема.
Начните настройку компонента формата электронной отчетности.
В дереве структуры формата добавьте элемент Excel\FileОтчет.
Для элемента Excel\File, который вы только что добавили, добавьте файл книги Excel A.xlsx в качестве вложения. Для указания хранилища шаблонов формата электронной отчетности используется тип документа, настроенный в параметрах электронной отчетности.
Важно
Убедитесь, что добавленная книга Excel не содержит имени ReportTitle.
Добавьте элемент Excel\ЯчейкаЗаголовок в качестве вложенного элемента для элемента Отчет. В поле Диапазон Excel введите ReportTitle.
Выберите Проверить, чтобы проверить редактируемый компонент формата на странице Конструктор формата.
Обратите внимание, что происходит предупреждение проверки. В сообщении говорится, что имя ReportTitle не существует на листе Лист1 шаблона Excel, который вы используете.
Автоматическое разрешение
Нет параметров для автоматического исправления этой проблемы.
Разрешение вручную
Параметр 1
Измените настроенный формат, удалив все элементы, которые ссылаются на имена Excel, отсутствующие в шаблоне.
Параметр 2
Обновите редактируемый формат электронной отчетности путем импорта шаблона Excel. Структура редактируемого формата электронной отчетности будет синхронизирована со структурой импортированного шаблона Excel.
Дополнительные соображения
Сведения о том, как можно синхронизировать структуру формата с шаблоном электронной отчетности в редакторе шаблонов управления бизнес-документами, см. в разделе Обновление структуры шаблона бизнес-документа.
Не синхронизировано с форматом шаблона Word
Когда вы настраиваете компонент формата электронной отчетности для использования шаблона Word для создания исходящего документа, можно вручную добавить элемент Excel\Файл, добавить нужный шаблон Word в качестве вложения редактируемого компонента и выбрать это вложение в добавленном элементе Excel\Файл.
Примечание
После вложения документа Word конструктор формата ER предоставляет редактируемый элемент как Word\Файл.
Таким образом, вы указываете, что добавленный элемент будет заполнять выбранный шаблон во время выполнения. Так как добавленный шаблон Word спроектирован как внешний, редактируемый формат электронной отчетности может содержать ссылки на элементы управления содержимым Word, отсутствующие в добавленном шаблоне. В конструкторе формата электронной отчетности выводится предупреждение о любых несоответствиях свойств элементов формата электронной отчетности, которые ссылаются на элементы управления содержимым, не включенные в добавленный шаблон Word.
Пример, в котором показано, как может произойти эта проблема, см. в разделе Настройка редактируемого формата для подавления раздела сводки.
Автоматическое разрешение
Нет параметров для автоматического исправления этой проблемы.
Разрешение вручную
Параметр 1
Измените настроенный формат, удалив формулу Удаленный из элемента формата, который упоминается в предупреждении проверки.
Параметр 2
Изменение с использованием шаблона Word путем добавления необходимого тега к соответствующему элементу управления содержимым Word.
Сопоставление по умолчанию отсутствует
Когда проверка Отсутствует привязка выполнена, проверки привязок формата сравниваются с привязками соответствующего компонента сопоставления моделей. Так как можно импортировать несколько конфигураций сопоставления модели ER в ваш экземпляр Финансы, и каждая конфигурация может содержать применимый компонент сопоставления моделей, одна конфигурация должна быть выбрана в качестве конфигурации по умолчанию. В противном случае при попытке выполнить, изменить или проверить проверенный формат ER произойдет исключение и появится следующее сообщение: "Существует более одного сопоставления моделей для модели данных <название модели (корневой дескриптор)> в конфигурациях <имена конфигураций, разделенные запятой>. Установите одну из конфигураций по умолчанию".
Пример, показывающий, как может произойти эта проблема и порядок ее устранения, см. в разделе Управление несколькими производными сопоставлениями для одного корня модели.
Несогласованный параметр компонентов верхнего или нижнего колонтитула
При настройке компонента формата ER для использования шаблона Excel для создания исходящего документа можно добавить компонент Excel\Заголовок, чтобы заполнить верхние колонтитулы в верхней части листа в книге Excel. Можно также добавить компонент Excel\Нижний колонтитул для заполнения нижних колонтитулов в нижней части листа. Для каждого добавляемого компонента Excel\Заголовок или Excel\Нижний колонтитул необходимо задать свойство Внешний вид верхнего или нижнего колонтитула, чтобы указать страницы, для которых выполняется компонент. Поскольку можно настроить несколько компонентов Excel\Заголовок или Excel\Нижний колонтитул для одного компонента Лист, а также создать разные верхние или нижние колонтитулы для разных типов страниц на листе Excel, необходимо настроить один компонент Excel\Заголовок или Excel\Нижний колонтитул для определенного значения свойства Внешний вид верхнего или нижнего колонтитула. Если настроено более одного компонента Excel\Заголовок или Excel\Нижний колонтитул для определенного значения свойства Внешний вид верхнего или нижнего колонтитула, то при проверке будет выводиться следующее сообщение об ошибке: "Верхние или нижние колонтитулы (<тип компонента: верхний или нижний колонтитул>) не соответствуют".
Автоматическое разрешение
Нет параметров для автоматического исправления этой проблемы.
Разрешение вручную
Параметр 1
Измените настроенный формат, удалив один из несогласованных компонентов Excel\Заголовок или Excel\Нижний колонтитул.
Параметр 2
Измените значение свойства Внешний вид верхнего или нижнего колонтитула для одного из несогласованных компонентов Excel\Заголовок или Excel\Нижний колонтитул.
Несогласованная настройка компонента страницы
При настройке компонента формата электронной отчетности для использования шаблона Excel для создания исходящего документа можно добавить компонент Excel\Страница для разбивки созданного документа на страницы с помощью формул электронной отчетности. Для каждого добавляемого компонента Excel\Страница можно добавить множество вложенных компонентов Диапазон, но все же остаться соответствующим следующей структуре:
- Первый вложенный компонент Диапазон можно настроить таким образом, чтобы свойство Направление репликации было установлено в значение Нет репликации. Этот диапазон используется для создания заголовков страниц в создаваемых документах.
- Можно добавить много других вложенных компонентов Диапазон, для которых свойство Направление репликации имеет значение Вертикальное. Эти диапазоны используются для заполнения созданных документов.
- Последний вложенный компонент Диапазон можно настроить таким образом, чтобы свойство Направление репликации было установлено в значение Нет репликации. Этот диапазон используется для создания нижних колонтитулов в созданных документах и для добавления необходимых разрывов страниц.
Если вы не будете следовать этой структуре для формата электронной отчетности в конструкторе форматов электронной отчетности в режиме разработки, произойдет ошибка проверки и появится следующее сообщение об ошибке: "Имеется более двух компонентов диапазона без репликации. Удалите ненужные компоненты."
Автоматическое разрешение
Нет параметров для автоматического исправления этой проблемы.
Разрешение вручную
Параметр 1
Измените настроенный формат, изменив свойство Направление репликации для всех несогласованных компонентов Excel\Диапазон.
Выполнимость выражения с функцией ORDERBY
Встроенная функция ORDERBY используется для сортировки записей источника данных ER типа Список записей, указанного в качестве аргумента функции.
Аргументы функции ORDERBY
могут быть указаны для сортировки записей таблиц приложений, представлений или сущностей данных путем помещения вызова отдельной базы данных для извлечения отсортированных данных в виде списка записей. Источник данных типа Список записей используется в качестве аргумента данной функции и определяет источник приложения для вызова.
Электронная отчетность проверяет, можно ли установить прямой запрос базы данных для источника данных, на который имеется ссылка в функции ORDERBY
. Если невозможно установить прямой запрос, в конструкторе сопоставления моделей электронной отчетности возникает ошибка проверки. Выводится сообщение о том, что выражение электронной отчетности, включающее функцию ORDERBY
, не может быть выполнено во время выполнения.
Следующие шаги показывают, как может произойти эта проблема.
Начните настройку компонента сопоставления модели электронной отчетности.
Добавьте источник данных типа Dynamics 365 for Operations \ Записи таблицы.
Назовите новый источник данных Vendor. В поле Таблица выберите VendTable, чтобы указать, что этот источник данных будет запрашивать таблицу VendTable.
Добавьте источник данных типа Вычисляемое поле.
Назовите новый источник данных OrderedVendors и настройте его так, чтобы он содержал выражение
ORDERBY("Query", Vendor, Vendor.AccountNum)
.Выберите Проверить для проверки редактируемого компонента сопоставления моделей на странице Конструктор сопоставления моделей и убедитесь, что можно запросить выражение в источнике данных OrderedVendors.
Измените источник данных Vendor, добавив вложенное поле типа Вычисляемое поле для того, чтобы получить номер счета поставщика с удаленными начальными и конечными лишними символами.
Назовите новое вложенное поле $AccNumber и настройте его так, чтобы оно содержало выражение
TRIM(Vendor.AccountNum)
.Выберите Проверить для проверки редактируемого компонента сопоставления моделей на странице Конструктор сопоставления моделей и убедитесь, что можно запросить выражение в источнике данных Vendor.
Обратите внимание, что возникает ошибка проверки, так как источник данных Vendor содержит вложенное поле типа Вычисляемое поле, которое не позволяет преобразовать выражение источника данных OrderedVendors в прямую инструкцию базы данных. Одна и та же ошибка возникает во время выполнения, если вы проигнорируете ошибку проверки и выберите Выполнить, чтобы выполнить сопоставление модели.
Автоматическое разрешение
Нет параметров для автоматического исправления этой проблемы.
Разрешение вручную
Параметр 1
Вместо добавления вложенного поля типа Вычисляемое поле к источнику данных Vendor добавьте вложенное поле $AccNumber в источник данных FilteredVendors и настройте поле так, чтобы оно содержало выражение TRIM(FilteredVendor.AccountNum)
. Таким образом, выражение ORDERBY("Query", Vendor, Vendor.AccountNum)
можно выполнить на уровне базы данных и рассчитать вложенное поле $AccNumber позже.
Параметр 2
Измените выражение источника данных FilteredVendors с ORDERBY("Query", Vendor, Vendor.AccountNum)
на ORDERBY("InMemory", Vendor, Vendor.AccountNum)
. Мы не рекомендуем изменять выражение для таблицы, которая имеет большой объем данных (таблица проводок), так как все записи будут получены, и порядок необходимых записей будет выполнен в памяти. Таким образом, такой подход может привести к снижению производительности.
Устаревший артефакт приложения
При разработке компонента сопоставления модели ER или компонента формата ER можно настроить выражение ER для вызова артефакта приложения в ER, например таблицы базы данных, метода класса и т. д. В версии 10.0.30 Finance и более поздних версиях можно принудить ER к предупреждению вас о том, что используемый в ссылке артефакт приложения помечен в исходном коде как устаревший. Это предупреждение может быть полезным, поскольку обычно устаревшие артефакты в итоге удаляются из исходного кода. Уведомление о статусе артефакта может привести к прекращению использования устаревшего артефакта в редактируемом компоненте ER перед его удалением из исходного кода, что поможет предотвратить ошибки при вызове несуществующих артефактов приложения из компонента ER во время выполнения.
Включите функцию Проверка устаревших элементов источников данных электронной отчетности в рабочей области Управление функциями, чтобы начать оценку атрибута obsolete для артефактов приложения во время проверки редактируемого компонента ER. Атрибут obsolete в настоящее время оценивается для следующих типов артефактов приложения:
- Таблица базы данных
- Поле таблицы
- Метод таблицы
- Класс приложения
- Метод класса
Примечание
Предупреждение возникает во время проверки редактируемого компонента ER для источника данных, ссылающегося на устаревший артефакт только в том случае, если этот источник данных используется хотя бы в одной привязке этого компонента ER.
Совет
Если класс SysObsoleteAttribute используется, чтобы уведомить компилятор о необходимости показа предупреждающих сообщений вместо ошибок, предупреждение проверки подается в предусмотренном в исходном коде виде во время разработки на экспресс-вкладке Подробно на странице Конструктор сопоставлений моделей или Конструктор форматов.
На следующем рисунке показано предупреждение проверки, которое появляется, когда устаревшее поле DEL_Email
таблицы приложения CompanyInfo
привязывается к полю модели данных с использованием настроенного источника данных company
.
Автоматическое разрешение
Нет параметров для автоматического исправления этой проблемы.
Разрешение вручную
Измените настроенное сопоставление модели или формат, удалив все привязки к источнику данных, который ссылается на устаревший артефакт приложения.
Дополнительные ресурсы
Обзор управления бизнес-документами
Подавлять элементы управления содержимым Word в сформированных отчетах
Управление несколькими производными сопоставлениями для одного корня модели