Как известно история по документам в супермаге не содержит детализации по конкретному товару. Т.е. есть информация о том что делалось с документом но построчной детализации нет.
Изменение данных по соглашению оказалось в данном случае критичным. Кто то добавил товар в соглашение, пошла перетарка, на вопрос кто виноват ответа нет так как нет истории. Все административные способы регулирования вопроса себя исчерпали.
Решил помочь менеджерам и написать отчет который бы при помощи versions BETWEEN scn запрашивал историю изменений за прошлый период, далее они могли бы сохранить эти данные в xls и хранить для дальнейшей проверки.
Проверил запуск запроса через Navicat все работает. Запускаю отчет и появляется ошибка Привилегий недостаточно. Grand на таблицу предоставил. Вопрос - каких привилегий недостаточно и как их предоставить.
Текст запроса:
SQL код:
select
scn_to_timestamp (VERSIONS_STARTSCN) as timestamp, case when VERSIONS_OPERATION='D' THEN 'Удален' else 'Добавлен' end status , article, DOCID from
supermag.SMSPECCQ versions BETWEEN scn minvalue and
maxvalue where versions_startscn > 0
ORDER BY ARTICLE, DOCID
Текст ошибки:
2018.12.19 (Wednesday) 09:18:51 1.38.0.0 sp1 Sm.Main ( NREPOR )
----- Прерывание работы программы -----
сообщение: "Неправильный результат из-за исключения, возникшего во время операции. См. описание исключения в InnerException."
исключение: System.Reflection.TargetInvocationException
источник: System
метод: Void RaiseExceptionIfNecessary()
в System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
в Sm.Core.RunWorkerCompletedEventArgs`1.get_Result()
в Sm.FastReports.Domain.FastReportDomainPanel.<>c__DisplayClass2.<RunSingleReport>b__0(Object sender, RunWorkerCompletedEventArgs`1 e)
----- Причина исключения, уровень вложения 1 -----
сообщение: "ORA-01031: привилегий недостаточно"
исключение: Oracle.ManagedDataAccess.Client.OracleException
источник: Oracle Data Provider for .NET, Managed Driver
данные: соединено с: База данных=CO; Пользователь=
текст команды: select scn_to_timestamp (VERSIONS_STARTSCN) as timestamp, case when VERSIONS_OPERATION='D' THEN 'Удален' else 'Добавлен' end status , article, DOCID from supermag.SMSPECCQ versions BETWEEN scn minvalue and maxvalue where versions_startscn > 0 ORDER BY ARTICLE, DOCID
тип команды: Text
метод: Boolean ReadBuffer(System.Collections.ObjectModel.ReadOnlyCollection`1[TRecord] ByRef)
в Sm.BusinessServer.BackgroundReaderBase`1.ReadBuffer(ReadOnlyCollection`1& result)
в Sm.FastReports.Server.FastReportBO.Sm.FastReports.Link.IFastReportBO.FillTableDataNext(BusinessOperation businessOperation, ReadOnlyCollection`1& dataTable)
в Sm.FastReports.SupermagFastReportConnection.<>c__DisplayClass8.<FillTableData>b__5(IFastReportBO bo)
в Sm.BusinessServer.LocalServer.LocalClient`1.Do(Action`1 action)
в Sm.FastReports.SupermagFastReportConnection.TransactedBusinessObject.Do(Action`1 action)
в Sm.FastReports.SupermagFastReportConnection.FillTableData(DataTable table, String selectCommand, CommandParameterCollection parameters)
в FastReport.Data.DataConnectionBase.FillTable(TableDataSource source)
в FastReport.Data.TableDataSource.LoadData(ArrayList rows)
в FastReport.Data.DataSourceBase.Init(Relation relation, String filter, SortCollection sort, Boolean useAllParentRows)
в FastReport.Data.DataSourceBase.Init(DataSourceBase parentData, String filter, SortCollection sort, Boolean useAllParentRows)
в FastReport.DataBand.InitDataSource()
в FastReport.Engine.ReportEngine.RunDataBand(DataBand dataBand)
в FastReport.Engine.ReportEngine.RunBands(BandCollection bands)
в FastReport.Engine.ReportEngine.RunReportPage(ReportPage page)
в FastReport.Engine.ReportEngine.RunReportPages()
в FastReport.Engine.ReportEngine.RunReportPages(ReportPage page)
в FastReport.Engine.ReportEngine.Run(Boolean runDialogs, Boolean append, ReportPage page)
в FastReport.Report.Prepare(Boolean append)
в Sm.FastReports.Domain.FastReportDomainModel.ExecuteReport(Report report, String reportFile, List`1 commonParameters, List`1 objectParameters, Int32 moduleRole, Int32 functionRole)
в Sm.FastReports.Domain.FastReportDomainPanel.Report_DoWork(Object sender, TaskWorkEventArgs`3 e)
в Sm.Core.TaskWorker`3.OnDoWork(DoWorkEventArgs e)
в Sm.Core.TaskWorkerBase.InternalBackgroundWorker.OnDoWork(DoWorkEventArgs e)
в System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)