Здравствуйте!
Возникает ошибка при попытке зайти в раздел Итоги от системного администратора Supervisor.
В ходе исследования проблемы, было обнаружено, что не запускается окно «Продажи на текущий месяц».
Появляется ошибка: Exception Message: Incorrect syntax near the keyword 'AND'.
Ошибка возникает в методе InitScriptExecute в строке select.Condition.Add(queryCondition).
Т.е. если ее закомментировать, то ошибки нет, но и фильтрации нет.
Если запускать отладчик C# и смотреть через него, то программа слетает в методе PageLoadCompleteScriptTaskExecute в строке Page.DataSource.LoadRows().
Версия BPM 5.4.0.317
Нравится
Александра, если логика окна «Продажи на текущий месяц» не изменялась, для устранения ошибки следует заменить код скрипта InitScript на:
[csharp]
Page.DataSource.PrepareFilters += delegate(object sender, DataSourceEventArgs e) {
Page.ThrowEvent("PrepareFilters");
};
Page.DataSource.Loading += delegate(object sender, DataSourceEventArgs e) {
var startMonthDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
var endMonthDate = startMonthDate.AddMonths(1).AddSeconds(-1);
var select = e.SelectQuery;
var queryCondition = new QueryCondition(select);
if (select.Condition.Count != 0)
queryCondition.LogicalOperation = LogicalOperation.And;
else
queryCondition.LogicalOperation = LogicalOperation.None;
queryCondition.Exists(new Select(UserConnection).Column(Column.Asterisk())
.From("Invoice")
.Where("Invoice", "OpportunityId").IsEqual("Opportunity", "Id")
.And("Invoice", "OwnerId").IsEqual(Column.Parameter(UserConnection.CurrentUser.ContactId))
.And("Invoice", "PaymentStatusId").Not().IsEqual(Column.Parameter(new Guid("698d39fd-52e6-df11-971b-001d60e938c6")))
.And("Invoice", "DueDate").IsBetween(Column.Parameter(startMonthDate)).And(Column.Parameter(endMonthDate))
.And("Opportunity", "OwnerId").IsEqual(Column.Parameter(UserConnection.CurrentUser.ContactId))
);
select.Condition.Add(queryCondition);
};
return true;
[/csharp]