Ответы в темах
-
АвторСообщения
-
AndreyV
Участник@andreyv, обновите ScadaReport.dll в директории ScadaWeb. Ссылка
Помогло ли обновление избавиться от ошибки?Обновление 6.3.0 помогло. Отчет выводится! Спасибо большое!
Ссылка: http://192.168.1.136/ElasticReport/Print/PrintReport2?reportID=11&period=-1&unit=Month&archive=Min&format=HtmlПотестил и на несколько периодов назад, и с разными архивами, работает.
Заметил только неточность в выводе, иногда в отчет не включаются данные за 31-е число:
при period=-1 вывелся отчет с 1.01.25 по 31.01.25;
при period=-2 вывелся отчет с 1.12.24 по 30.01.25 (! пропало 31.01.2025); https://ibb.co/yFqkNdGT
при period=-3 вывелся отчет с 1.11.24 по 31.01.25.
https://ibb.co/qYFF029gAndreyV
УчастникСтавишь 1 и Day получаешь данные за сегодня. Ставишь -1 получаешь данные за вчера.
Это побочный эффект, но как оказалось полезный 🙂
Тогда нужен не period, а ещё один параметр offset. Например, чтобы получить отчёт за период длительностью 2 дня с датой начала 3 дня назад. Запишу пожелание.Это побочный эффект очень полезный!!! И хотельсь бы данный функционал иметь. А то не совсем понятно, зачем выводить отчет за период вперед, если дату его начала задать нельзя??? От текущей даты вперед в рабочих системах всегда не будет данных. А вот быстро вывести данные за предыдущий день, неделю, месяц на любом объекте пригодится.
AndreyV
Участник@andreyv, в дополнение к часовому поясу пользователя напишите часовой пояс серверов. Возможно, ошибка возникает, если часовой пояс сервера отличается от часового пояса пользователя. Нужно это проверить.
Михаил на всех ПК часовой пояс стоит (UTC+03:00) Москва, Санкт-Петербург.
Скрины с сервера:
https://ibb.co/pB15HSF3
https://ibb.co/wZL3sf2N
Версия dotnet сервера: https://ibb.co/tTtjw1NBС домашнего ПК только позно вечером смогу скинуть.
@andreyv, в дополнение к часовому поясу пользователя напишите часовой пояс серверов. Возможно, ошибка возникает, если часовой пояс сервера отличается от часового пояса пользователя. Нужно это проверить.
На серверном ПК один пользователь Admin. Ошибка возникает и при выводе месячного отчета под этим пользователем. Пробовал даже в адресе вместо IP писать localhost, реакция таже.AndreyV
Участник
MikhailПопробуйте как в примере выше (только со своим IP)
Также укажите, какая ОС на тестовом сервере и на рабочем сервере.
Протестировал ссылку на домашнем компе и на 1 рабочем сервере.
На домашнем компе работает. https://ibb.co/XdW0hzY
Данные по ОС:
Выпуск Windows 10 Pro
Версия 22H2
Сборка ОС 19045.4780Rapid SCADA 6.4.0 (в версиях 6.2.1 и 6.3.0 ссылки с месячными отчетами так же работали)
AspNetCoreModuleV2 18.0.24201.8
Ссылка:
http://localhost:10008/ElasticReport/Print/PrintReport2?reportID=1&period=1&unit=Month&archive=Hour&format=HtmlНа сервере не работает. https://ibb.co/rRfMJhpQ
Данные по ОС:
Edition Windows 11 Pro
Version 22H2
OS build 22621.3155
Experience Windows Feature Experience Pack 1000.22684.1000.0Rapid SCADA 6.3.0
AspNetCoreModuleV2 18.0.24201.8
Ссылка:
http://192.168.1.136/ElasticReport/Print/PrintReport2?reportID=1&period=1&unit=Month&archive=Hour&format=HtmlВ обеих системах тест проводил на исходном конфиге ElasticReport1.xml (даже номера каналов не менял).
AndreyV
УчастникНе вижу в переписке, какая ссылка у отчёта была?
В моем случае ссылка такая:
http://10.7.70.31/ElasticReport/Print/PrintReport2?reportID=1&period=-1&unit=Month&archive=Hour&format=HtmlAndreyV
УчастникХорошо. Ошибка
System.ArgumentException: The conversion could not be completed because the supplied DateTime did not have the Kind property set correctly. For example, when the Kind property is DateTimeKind.Local, the source time zone must be TimeZoneInfo.Local. (Parameter ‘sourceTimeZone’)
at System.TimeZoneInfo.ConvertTime(DateTime dateTime, TimeZoneInfo sourceTimeZone, TimeZoneInfo destinationTimeZone, TimeZoneInfoOptions flags, CachedData cachedData)
at System.TimeZoneInfo.ConvertTimeToUtc(DateTime dateTime, TimeZoneInfo sourceTimeZone)
at Scada.Report.ReportUtils.GetUtcStartTime(DateTime utcNow, TimeZoneInfo timeZone, PeriodUnit unit)
at lambda_method18(Closure, Object, Object[])
записывается в каком именно файле журнала?В файле ScadaWeb.log
Вот полная запись с момента перезапуска сервера:
———————————————————————————
2025-01-28 14:55:46 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Вебстанция 6.2.0.3 запущена
2025-01-28 14:55:46 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Хранилище FileStorage 6.2.0.0 загружено из файла C:\Program Files\SCADA\ScadaWeb\FileStorage.dll
2025-01-28 14:55:46 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Плагин PlgChart 6.1.0.0 загружен из файла C:\Program Files\SCADA\ScadaWeb\PlgChart.dll
2025-01-28 14:55:46 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Плагин PlgMain 6.1.0.1 загружен из файла C:\Program Files\SCADA\ScadaWeb\PlgMain.dll
2025-01-28 14:55:46 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Плагин PlgScheme 6.1.0.0 загружен из файла C:\Program Files\SCADA\ScadaWeb\PlgScheme.dll
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Плагин PlgSchBasicComp 6.1.0.0 загружен из файла C:\Program Files\SCADA\ScadaWeb\PlgSchBasicComp.dll
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Плагин PlgStore 6.1.0.1 загружен из файла C:\Program Files\SCADA\ScadaWeb\PlgStore.dll
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Плагин PlgWebPage 6.1.0.0 загружен из файла C:\Program Files\SCADA\ScadaWeb\PlgWebPage.dll
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Плагин PlgChartPro 6.1.0.0 загружен из файла C:\Program Files\SCADA\ScadaWeb\PlgChartPro.dll
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Плагин PlgDashboard 6.1.0.0 загружен из файла C:\Program Files\SCADA\ScadaWeb\PlgDashboard.dll
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Плагин PlgElasticReport 6.1.0.0 загружен из файла C:\Program Files\SCADA\ScadaWeb\PlgElasticReport.dll
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Плагин PlgSchExtraComp 6.1.0.0 загружен из файла C:\Program Files\SCADA\ScadaWeb\PlgSchExtraComp.dll
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Плагин PlgScheme: Извлечение компонентов схем из установленных плагинов
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Плагин PlgScheme: Добавлены компоненты из плагина PlgSchBasicComp
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Проверка регистрации PlgSchExtraComp: Регистрационный ключ действителен.
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Плагин PlgScheme: Добавлены компоненты из плагина PlgSchExtraComp
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Проверка регистрации PlgChartPro: Регистрационный ключ действителен.
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Проверка регистрации PlgDashboard: Регистрационный ключ действителен.
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Проверка регистрации PlgElasticReport: Регистрационный ключ действителен.
2025-01-28 14:55:47 [RUSTP-SCADA][RUSTP-SCADA$][ACT] Приём базы конфигурации
2025-01-28 14:55:50 [RUSTP-SCADA][RUSTP-SCADA$][ACT] База конфигурации получена успешно
2025-01-28 14:55:50 [RUSTP-SCADA][RUSTP-SCADA$][INF] Приложение готово к работе
2025-01-28 14:55:56 [RUSTP-SCADA][RUSTP-SCADA$][ERR] Необработанное исключение:
System.ArgumentException: The conversion could not be completed because the supplied DateTime did not have the Kind property set correctly. For example, when the Kind property is DateTimeKind.Local, the source time zone must be TimeZoneInfo.Local. (Parameter ‘sourceTimeZone’)
at System.TimeZoneInfo.ConvertTime(DateTime dateTime, TimeZoneInfo sourceTimeZone, TimeZoneInfo destinationTimeZone, TimeZoneInfoOptions flags, CachedData cachedData)
at System.TimeZoneInfo.ConvertTimeToUtc(DateTime dateTime, TimeZoneInfo sourceTimeZone)
at Scada.Report.ReportUtils.GetUtcStartTime(DateTime utcNow, TimeZoneInfo timeZone, PeriodUnit unit)
at lambda_method63(Closure, Object, Object[])
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)AndreyV
УчастникОбновите Rapid SCADA до версии 6.4.0 и плагин до самой свежей доступной версии. Поиск ошибок выполняется на свежих версиях ПО. От того, используется временный ключ или постоянный, возникновение ошибок не зависит.
По поводу постоянного и временного ключей я понимаю что не должно быть разницы, просто уже больше зацепиться не зачто. Вот и спрашиваем, в какую сторону далее смотреть для поиска решения.
-
Ответ изменён 1 год, 5 месяцев назад пользователем
AndreyV.
AndreyV
УчастникМихаил. Отчет ElasticReport1.xml на домашнем ноуте работает, а на серверах нет. Отчет ElasticReport1.xml выдает ровно такую же ошибку на обоих серверах. Я даже номера каналов не менял!
AndreyV
УчастникМихаил! Вот в этом то и вопрос!!!
Отчет-пример на вашей демо версии скады работает по прямой ссылке с месячным периодом. У меня на домашнем ноутбуке (использую пробный ключ) работает этот отчет по такой же ссылке и другие отчеты работают с месячным периодом. А на реальных серверах (проверили на 2-х) с рабочими проектами и купленными лицензиями те же самые отчеты не работают. Ошибка одна и таже, уже неоднократно выкладывалась на форуме.
И не ясно, что не так и как это исправить.
Для справки: на одном сервере стоит Win10, Rapid SCADA 6.3.1, на другом сервере Win11, Rapid SCADA 6.3.1., на обоих серверах куплены постоянные ключи — отчеты за месячный период не работают; у меня на ноутбуке Win10, Rapid SCADA 6.2.0, ключ пробный — те же отчеты работают; вчера обновил Rapid SCADA до версии 6.3.1 — те же отчеты работают! Куда копать???AndreyV
УчастникЕсли указывать положительный период то считается он от текущего времени вперед. И получаем пустые строки, т.к. данных в архивах естественно нет.
Вот пример отчета по прямой ссылке: http://192.168.1.136/ElasticReport/Print/PrintReport2?reportID=21&period=3&unit=Day&archive=Hour&format=HtmlAndreyV
УчастникДобрый день! Я так понимаю, что данные в дневной архив пишутся 1 раз в сутки и видимо в 00:00 часов:минут. Если выставить месячный интервал с дневным архивом и задать еще смещение времени в конфиге отчета, то данных и не будет (получаем — ).
Попробуйте задать месячный интервал, а архив часосой.AndreyV
УчастникЗапустил, и у меня туже ошибку выдает. Не понятно. Вечером попробую на домашнем ПК, где тестовый отчет работал.
AndreyV
УчастникА какое смещение у Вас установлено в параметрах отчета?
<DataOptions>
<PrependTime>00:00:00</PrependTime>
<AppendTime>00:00:00</AppendTime>
</DataOptions>
Попробуйте выставить для начала 00:00:00.Если можно, пришлите свой конфиг отчета, попробую у себя запустить.
AndreyV
УчастникА если выполнить запрос с параметром period=-1:
http://localhost:10008/ElasticReport/Print/PrintReport2?reportID=1&unit=Month&period=-1&archive=Day&format=Html
то выведутся данные за предыдущий месяц. https://ibb.co/pjrH9zy
Правда почему-то в данный период попало лишний день (31.08), надо разбираться.AndreyV
УчастникСогласно документации:
«Генерацию отчёта можно запустить по прямой ссылке. При этом вход пользователя в систему должен быть выполнен. Примеры ссылок приведены ниже. Обратите внимание, что наборы параметров запроса для адресов PrintReport1 и PrintReport2 различаются.Если выводишь отчет за конкретный временной промежуток, то в запросе надо ставить PrintReport1 и соответственно задавать параметры startTime и endTime. Если выводишь отчет за временной интервал, то в запросе надо ставить PrintReport2 и соответственно задавать параметр period.
Сейчас попробовал выполнить запрос http://localhost:10008/ElasticReport/Print/PrintReport2?reportID=1&unit=Month&period=1&archive=Day&format=Html с тестовой конфигурацией отчета, все вывелось без ошибок (правда данных нет, т.к. 1- число)).
https://ibb.co/Zm4M3nk -
Ответ изменён 1 год, 5 месяцев назад пользователем
-
АвторСообщения