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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.05.2019, 11:48   #1  
Pandasama is offline
Pandasama
Участник
 
457 / 134 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Ax2012, SSRS, infolog
Есть AX2012R3, есть SSRS-отчет, есть DataProvider класс, в нем есть метод который заполняет временную таблицу, на основе которой строится отчет.
Хочется в этом методе сделать некоторую проверку, которая выведет что-нибудь в инфолог - ну, например, что в проводках по которым построился отчет, не заполнена какая-нибудь валюта.

Если я просто в DataProvider делаю какой-нибудь info(), warning() - то это ничего не дает, конечно же.
Попытался протащить через контракт:
в контракте добавил set, для него добавил метод .parmSet() с атрибутами
[DataMemberAttribute,
SysOperationControlVisibilityAttribute(false),
AifCollectionTypeAttribute("Infomessage", Types::String)]

В DataProvider в .processReport() в этот .parmSet() положил множество строк с сообщениями

В Controller в postReportRun из контракта достаю этот .parmSet() - там пусто

Вопросы:
1) ЧЯДНТ с контрактом ?
2) Может я зря велосипед горожу, и описанный "вывод инфолога из дата провайдера" можно сделать как-то стандартно и просто ?
Старый 20.05.2019, 12:22   #2  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от Pandasama Посмотреть сообщение
Есть AX2012R3, есть SSRS-отчет, есть DataProvider класс, в нем есть метод который заполняет временную таблицу, на основе которой строится отчет.
Хочется в этом методе сделать некоторую проверку, которая выведет что-нибудь в инфолог
...
Вопросы:
1) ЧЯДНТ с контрактом ?
2) Может я зря велосипед горожу, и описанный "вывод инфолога из дата провайдера" можно сделать как-то стандартно и просто ?
С ошибками просто
class WrkCtrSchedulingInteropDataProvider
method getCapacityReservations()
Просто выбрасывает
throw error("@SYS329762");

Я бы повыбрасывал throw error для теста, а затем наставил бы точек в Info.
И потестировал в пакетном режиме помимо ручного. Скорее всего что-то типа AifInfolog.reset() не дает и пишет в log.
В принципе не исключения, а просто инфолог и не должен быть в SSRS фрэймворк by design.
За это сообщение автора поблагодарили: Logger (1).
Старый 20.05.2019, 12:25   #3  
Pandasama is offline
Pandasama
Участник
 
457 / 134 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Не, мне не надо throw error - мне надо чтобы отчет отработал как надо, просто доп. информация вывелась потом пользователям
Старый 20.05.2019, 12:37   #4  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Поддержка warning таки есть.

SrsReport.warning("my warning");

которые потом
Adds the warning messages that are created when a report is rendered to the infolog.
SrsReportRun.displayReportWarnings()
За это сообщение автора поблагодарили: Logger (3), Pandasama (1).
Старый 20.05.2019, 12:41   #5  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Точно есть. Вопрос в том как класть.

Gets the warning messages that are generated when rendering a report.
SrsProxy.getReportWarnings()

В SSReport есть проперти warning.
Старый 20.05.2019, 12:45   #6  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Этих паблик проперти warning натыкано практически во всех
в том числе
SRSReportDataSource
Старый 20.05.2019, 12:48   #7  
Pandasama is offline
Pandasama
Участник
 
457 / 134 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Спасибо, поизучаю этот момент
Правда есть подозрения, что это варнинги, которые идут из SSRS-сервера - типа там "обратите внимание: текст выходит за края отчета" или что-то в таком роде
Старый 21.05.2019, 18:19   #8  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
я что-то подобное делал через дополнительную таблицу: во время заполнения туда пишешь, потом откуда хочешь читаешь
__________________
Felix nihil admirari
За это сообщение автора поблагодарили: ax_mct (1), Pandasama (1).
Старый 21.05.2019, 19:02   #9  
axm2017 is offline
axm2017
Участник
 
1,890 / 295 (13) ++++++
Регистрация: 15.05.2017
Цитата:
Сообщение от wojzeh Посмотреть сообщение
я что-то подобное делал через дополнительную таблицу
Через alert ы наверное будет красивее.
Старый 22.05.2019, 11:45   #10  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от axm2017 Посмотреть сообщение
Через alert ы наверное будет красивее.
Если нужна своя история то свой logging table будет практичнее. И показать в инфолог можно в конце работы отчета и показывать как историю через меню. Причем времени уйдет не больше чем разбираться куда пропадает инфолог, а гибкости больше.
Теги
ax2012, ax2012r3, contract, infolog, ssrs

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX2012, SSRS отчеты AnGor DAX: Программирование 6 21.02.2017 13:43
emeadaxsupport: SSRS Report label shown as @SYSxxxx in AX2012 Blog bot DAX Blogs 0 02.11.2016 07:15
AX2012 SSRS date format language opsis DAX: Администрирование 0 29.10.2014 23:36
sumitax: AX2012 SSRS Reports – Toggle fields Blog bot DAX Blogs 0 31.05.2012 19:11
emeadaxsupport: SSRS error in AX2012 - An item with the same key has already been added Blog bot DAX Blogs 0 13.03.2012 18:11
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:11.