Поделиться через


Отложенное выполнение элементов последовательности в форматах электронной отчетности

Обзор

Можно использовать конструктор Operations структуры Электронная отчетность (ER), чтобы настроить компонент форматирования решения ER, используемого для создания исходящих документов в текстовом формате. Иерархическая структура сконфигурированного компонента форматирования состоит из элементов форматирования различных типов. Эти элементы форматирования используются для заполнения созданных документов необходимой информацией во время выполнения. По умолчанию при выполнении формата ER элементы форматирования выполняются в том же порядке, в котором они представлены в иерархии форматов: один за одним, начиная с верхнего и до нижнего. Однако во время разработки можно изменить порядок выполнения для всех элементов последовательности сконфигурированного компонента форматирования.

При включении параметра Отложенное выполнение для элемента формата последовательности в настроенном формате можно отложить выполнение этого элемента. В этом случае элемент не выполняется, пока не будут запущены все остальные элементы его родительского элемента.

Чтобы получить дополнительные сведения об этой функции, выполните пример в этой статье.

Ограничения

Параметр Отложенное выполнение поддерживается только для элементов последовательности, настроенных для формата ER, который используется для создания исходящих документов в текстовом формате.

Параметр Отложенное выполнение неприменим к последовательностям, которые были настроены в виде усеченных последовательностей, для которых максимальная длина ограничивается.

Пример: отложить выполнение элемента последовательности в формате ER

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

Эти шаги можно выполнить в компании USMF в Microsoft Dynamics 365 Finance.

Необходимые условия

Чтобы выполнить пример в этом разделе, необходимо иметь доступ к компании USMF в Finance для одной из следующих ролей:

  • Консультант по функциональным возможностям электронной отчетности
  • Системный администратор

Если вы еще не завершили пример в статье Отложенное выполнение элементов XML в форматах электронной отчетности, загрузите следующие конфигурации примера решения ER.

Описание содержания Имя файла
Конфигурации модели данных электронной отчетности Model to learn deferred elements.version.1.xml
Конфигурация сопоставления модели ER Mapping to learn deferred elements.version.1.1.xml

Прежде чем начать, необходимо загрузить и сохранить следующую конфигурацию примера решения ER.

Описание содержания Имя файла
Конфигурация формата электронной отчетности Format to learn deferred sequences.version.1.1.xml

Импорт примера конфигураций электронной отчетности

  1. Перейдите в раздел Управление организацией>Рабочие области>Электронная отчетность.

  2. Выберите Конфигурации отчетности.

  3. На странице Конфигурации, если конфигурация Модель для изучения отложенных элементов недоступна в дереве конфигурации, импортируйте конфигурацию модели данных ER:

    1. Выберите Обмен, а затем выберите Загрузить из XML-файла.
    2. Выберите Обзор, найдите и выберите файл Model to learn deferred elements.1.xml, а затем нажмите ОК.
  4. Если конфигурация Сопоставление для изучения отложенных элементов недоступна в дереве конфигурации, импортируйте конфигурацию сопоставления модели ER:

    1. Выберите Обмен, а затем выберите Загрузить из XML-файла.
    2. Выберите Обзор, найдите и выберите файл Mapping to learn deferred elements.1.1.xml, а затем нажмите ОК.
  5. Импорт конфигурации формата ER:

    1. Выберите Обмен, а затем выберите Загрузить из XML-файла.
    2. Выберите Обзор, найдите и выберите файл Format to learn deferred sequences.1.1.xml, а затем нажмите ОК.
  6. В дереве конфигурации раскройте Модель для изучения отложенных элементов.

  7. Просмотрите список импортированных конфигураций ER в дереве конфигурации.

    Импортированные конфигурации ER на странице конфигурации.

Активация поставщика конфигураций

  1. Перейдите в раздел Управление организацией>Рабочие области>Электронная отчетность.

  2. На странице Конфигурации локализации в разделе Поставщики конфигурации убедитесь, что поставщик конфигурации для демонстрационной компании Litware, Inc. (http://www.litware.com) и помечен как "Активный". Если этого поставщика конфигурации нет в списке или он не помечен как активный, выполните шаги в статье Создание поставщика конфигурации и пометка его как активного.

    Демонстрационная компания Litware, Inc. на странице конфигураций локализации.

Просмотр импортированного сопоставления модели

Просмотрите настройки компонента сопоставления модели ER, настроенного для доступа к налоговым проводкам, и предоставьте доступ к данным по запросу.

  1. Перейдите в раздел Управление организацией>Рабочие области>Электронная отчетность.

  2. Выберите Конфигурации отчетности.

  3. На странице Конфигурации в дереве конфигураций разверните Модель для изучения отложенных элементов.

  4. Выберите конфигурацию Сопоставление для изучения отложенных элементов.

  5. Выберите конструктор, чтобы открыть список сопоставлений.

  6. Выберите конструктор, чтобы просмотреть сведения о сопоставлении.

  7. Выберите Показать сведения.

  8. Просмотрите источники данных, которые настроены для доступа к налоговым проводкам:

    • Источник данных Проводки типа Табличная запись настроен на доступ к записям таблицы приложений TaxTrans.

    • Источник данных Ваучеры типа Вычисляемое поле настраивается так, чтобы в качестве списка записей возвращались требуемые коды ваучеров (INV-10000349 и INV-10000350).

    • В источнике данных Отфильтровано для типа Вычисляемое поле настраивается выбор из источника данных Проводки только налоговых проводок по необходимым ваучерам.

    • Поле $TaxAmount типа Вычисляемое поле добавляется для источника данных Отфильтровано, чтобы предоставить значение налога с противоположным знаком.

    • Источник данных Сгруппировано типа Группа по настроен для группирования отфильтрованных налоговых проводок по источнику данных Отфильтровано.

    • Поле агрегирования TotalSum для источника данных Сгруппировано настраивается для суммирования значений поля $TaxAmount источника данных Отфильтровано для всех фильтруемых налоговых проводок этого источника данных.

      Поле агрегирования TotalSum на странице изменение параметров изменения

  9. Проверьте, как настроенные источники данных привязаны к модели данных и как они предоставляют доступ к данным, чтобы сделать их доступными в формате ER:

    • Источник данных Отфильтровано связан с полем Data.List модели данных.
    • Поле $TaxAmount источника данных Отфильтровано привязано к полю Data.List.Value модели данных.
    • Поле TotalSum источника данных Сгруппировано связано с полем Data.Summary.Total модели данных.

    Страница конструктора сопоставления модели.

  10. Закройте страницы Конструктор сопоставления моделей и Сопоставления моделей.

Просмотр импортированного формата

  1. На странице Конфигурации в дереве конфигурации выберите конфигурацию Формат для изучения отложенных последовательностей.

  2. Выберите конструктор, чтобы просмотреть сведения о формате.

  3. Выберите Показать сведения.

  4. Проверьте настройки компонентов формата ER, настроенные для создания исходящего документа в текстовом формате, который включает в себя подробные сведения о налоговых проводках:

    • Элемент формата последовательности Отчет\Строки настроен для заполнения исходящего документа одной строкой, которая создается из вложенных элементов последовательности (Заголовок, Запись и Сводка).

      Строковый элемент форматирования последовательности и вложенные элементы на странице конструктора формата.

    • Элемент формата последовательности Отчет\Строки\Заголовок настроен для заполнения исходящего документа одной строкой заголовка, в которой отображаются дата и время начала обработки.

    • Элемент формата последовательности Отчет \Строки\Запись настроен для заполнения исходящего документа одной строкой, отображающей сведения об отдельных налоговых проводках. Эти налоговые проводки разделяются точкой с запятой.

      Элемент форматирования последовательности записей, в котором в качестве разделителя используется точка с запятой.

    • Элемент Отчет\Строки\Сводка настроен для заполнения исходящего документа одной строкой сводки, которая включает сумму налоговых значений из обработанных налоговых проводок.

  5. На вкладке Сопоставление изучите следующие сведения.

    • Элемент Отчет\Строки\Заголовок необязательно должен быть привязан к источнику данных для создания отдельной строки исходящего документа.
    • Элемент Prefix1 генерирует символы P1, чтобы указать, что добавляемая строка является строкой заголовка отчета.
    • Элемент ExecutionDateTime генерирует дату и время (включая миллисекунды) при добавлении строки заголовка.
    • Элемент Отчет\Строки\Запись привязан к model.Data.List для создания отдельной строки для каждой записи из связанного списка.
    • Элемент Prefix2 генерирует символы P2, чтобы указать, что добавляемая строка предназначена для сведений налоговых проводок.
    • Элемент TaxAmount привязан к model.Data.List.Value (который отображается как @.Value в представлении относительного пути) для создания значения налога текущей налоговой проводки.
    • Элемент RunningTotal является заполнителем для итоговых значений налога. В данный момент этот элемент не имеет выходных данных, так как для него не настроена ни привязка, ни значение по умолчанию.
    • Элемент ExecutionDateTime генерирует дату и время (включая миллисекунды), когда текущая транзакция обрабатывается в этом отчете.
    • Элемент Отчет\Строки\Сводка необязательно должен быть привязан к источнику данных для создания отдельной строки исходящего документа.
    • Элемент Prefix3 генерирует символы P3, чтобы указать, что добавляемая строка содержит итоговое значение налога.
    • Элемент TotalTaxAmount привязан к model.Data.Summary.Total для создания суммы налоговых значений обработанных налоговых проводок.
    • Элемент ExecutionDateTime генерирует дату и время (включая миллисекунды) при добавлении строки сводки.

    Вкладка сопоставления на странице конструктора формата.

Запуск импортированного формата

  1. На странице Конструктор формата выберите Выполнить.

  2. Загрузите файл, предлагаемый веб-браузером, и откройте его для просмотра.

    Загружен пример файла отчета.

Обратите внимание, что в строке 22 указана сумма значений налога для обработанных проводок. Так как формат настроен на использование привязки model.Data.Summary.Total для возврата этой суммы, сумма вычисляется путем вызова агрегирования TotalSum источника данных Сгруппировано типа GroupBy, который использует сопоставление модели. Чтобы рассчитать это агрегирование, сопоставление модели выполняет итерации по всем проводкам, выбранным в источнике данных Отфильтровано. Сравнивая время выполнения строк 21 и 22, можно определить, что вычисление суммы заняло 10 миллисекунд (мс). Сравнивая время выполнения строк 2 и 21, можно определить, что создание всех строк проводок заняло 7 мс. Таким образом, потребовалось всего 17 мс.

Измените формат так, чтобы суммирование основывалось на созданных выходных данных

Если объем проводок значительно превышает объем в текущем примере, расчетное время может увеличиться и вызвать снижение производительности. Изменяя настройку формата, можно помочь предотвратить эти проблемы в производительности системы. Так как для их включения в создаваемый отчет необходимо получить доступ к налоговым значениям, эти сведения можно повторно использовать для суммирования значений налога. Дополнительные сведения см. в разделе Настройка формата для инвентаризации и суммирования.

  1. На странице Конструктор форматов на вкладке Формат выберите элемент файла Отчет в дереве форматов.

  2. Установите для параметра Сбор сведений о результате значение Да. Теперь можно настроить этот формат с помощью содержимого существующего отчета в качестве источника данных, к которому можно получить доступ с помощью встроенных функций ER в категории Сбор данных.

  3. На вкладке Сопоставление выберите элемент последовательности Отчет\Строки.

  4. Настройте выражение Имя ключа собранных данных как WsColumn.

  5. Настройте выражение Значение ключа собранных данных как WsRow.

    Элемент последовательности

  6. Выберите числовой элемент Отчет\Строки\Запись\TaxAmount.

  7. Настройте выражение Имя ключа собранных данных как SummingAmountKey.

    Элемент числовой последовательности TaxAmount на странице конструктора формата.

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

  8. Выберите числовой элемент Отчет\Строки\Запись\RunningTotal, а затем выберите Изменить формулу.

  9. Настройте выражение SUMIF(SummingAmountKey, WsColumn, WsRow) с помощью встроенной функции ER SUMIF.

  10. Нажмите Сохранить.

    Выражение SUMIF.

  11. Закройте страницу Конструктор формул.

  12. Выберите Сохранить, затем выберите Выполнить.

  13. Загрузите и просмотрите файл, предлагаемый веб-браузером.

    Загруженный файл — суммы налога.

    Строка 21 содержит нарастающую сумму значений налогов, которая рассчитывается для всех обработанных проводок, используя созданные выходные данные в качестве источника данных. Этот источник данных начинается с начала отчета и продолжается до последней налоговой проводки. Строка 22 содержит сумму налоговых значений для всех обработанных проводок, которые рассчитываются в сопоставлении моделей, используя источник данных типа GroupBy. Обратите внимание, что эти значения равны. Таким образом, вместо GroupBy можно использовать суммирование на основе выходных данных. Сравнивая время выполнения строк 2 и 21, можно определить, что создание всех строк проводок и суммирование заняло 9 мс. Таким образом, после создания подробных строк и суммирования значений налога измененный формат будет примерно в два раза быстрее, чем исходный формат.

  14. Выберите числовой элемент Отчет\Строки\Сводка\TotalTaxAmount, а затем выберите Изменить формулу.

  15. Введите выражение SUMIF(SummingAmountKey, WsColumn, WsRow) вместо существующего выражения.

  16. Выберите Сохранить, затем выберите Выполнить.

  17. Загрузите и просмотрите файл, предлагаемый веб-браузером.

    Загруженный файл с редактируемой формулой.

    Обратите внимание, что нарастающее итоговое значение налога в строке сведений о последней проводке равно сумме в строке сводки.

Помещайте в заголовок отчета значения суммирования, основанные на выходных данных

Если, например, необходимо представить сумму значений налога в заголовке отчета, можно изменить формат.

  1. На странице Конструктор форматов на вкладке Формат выберите элемент последовательности Отчет\Строки\Сводка.

  2. Выберите Переместить вверх.

  3. Выберите Сохранить, затем выберите Выполнить.

  4. Загрузите и просмотрите файл, предлагаемый веб-браузером.

    Загруженный файл для суммирования в заголовке отчета.

    Обратите внимание на то, что сумма налоговых значений в строке сводки 2 в данном случае равняется 0 (нулю), поскольку эта сумма будет вычисляться на основе созданных выходных данных. Когда создается строка 2, созданные выходные данные еще не содержат строки со сведениями о проводке. Этот формат можно настроить, чтобы отложить выполнение элемента последовательности Отчет\Строки\Сводка, пока не будет выполнен элемент последовательности Отчет\Строки\Запись для всех налоговых проводок.

Отсрочка выполнения последовательности сводки для использования рассчитанного итогового значения

  1. На странице Конструктор форматов на вкладке Формат выберите элемент последовательности Отчет\Строки\Сводка.

  2. Для параметра Отложенное выполнение выберите значение Да.

    Параметр отложенного выполнения элемента последовательности сводки на странице конструктора формата.

  3. Выберите Сохранить, затем выберите Выполнить.

  4. Загрузите и просмотрите файл, предлагаемый веб-браузером.

    Загруженный файл — отложенное выполнение.

    Элемент последовательности Отчет\Строки\Сводка выполняется только после того, как все остальные элементы, вложенные в родительский элемент, Отчет\Строки, были выполнены. Поэтому он выполняется после того, как элемент последовательности Отчет\Строки\Запись был выполнен для всех налоговых проводок источника данных model.Data.List. Время выполнения строк 1, 2 и 3, а также последней строки 22, этот факт раскрывается.

Дополнительные ресурсы