Фильтры

Приглашаем на вебинар "Studio Creatio: новые возможности и планы по развитию BPM-технологий Creatio"!

Product Owner’ы Studio Creatio Александр Хардиков и Сергей Шишкин расскажут о новых возможностях в работе с бизнес-процессами, которые появились в последних релизах. Вы также узнаете о тех фичах, которые уже в ближайшее время можно будет увидеть в платформе. Кроме того, Александр и Сергей поделятся с участниками вебинара эксклюзивными планами команды по дальнейшему развитию Studio Creatio. 

Добро пожаловать на первую виртуальную встречу Creatio Club! Регистрируйтесь на вебинар и отправляйте ваши вопросы спикерам прямо из формы регистрации: http://bit.ly/2vgw6kD

 

Дата: 27 февраля 2020

Время: 11:00 (МСК)

Спикеры:

Александр Хардиков, Product Owner Studio Creatio

Сергей Шишкин, Product Owner Studio Creatio

Учестие в вебинаре бесплатное.

Вам будет интересен этот вебинар, если вы работаете с продуктами Creatio в качестве аналитика или разработчика, глубоко погружены в построение бизнес-процессов, автоматизацию, настройку пользовательских интерфейсов и работу с базами данных.

Нравится

Поделиться

0 комментариев
Показать все комментарии
Вопрос

Добрый день.

Подскажите пожалуйста по возможности реализации Детали с полями.

Нашла пример реализации на академии (https://academy.terrasoft.ru/documents/technic-sdk/7-11/sozdanie-polzov…) , непонятно это будет работать только в банковских продуктах bpm'online ? Можно такой же функционал реализовать в Creatio Service?

 

Нужна именно деталь, потому что нам нужно разным сотрудникам на разные детали по отдельности раздавать права (на группу полей я так понимаю нельзя правами управлять, как с деталями), и нужны именно поля фиксированные, без добавления значений через +.

 

Может быть есть другие варианты реализации такого кейса?

Нравится

1 комментарий

Добавление можно убрать на схеме детали:         

diff: /**SCHEMA_DIFF*/[
            {
                "operation": "remove",
                "name": "AddRecordButton"
            }
        ]/**SCHEMA_DIFF*/,

 

Показать все комментарии

Добрый день! 

Подскажите, пожалуйста, есть ли способ преобразовать Select в ESQ?

Что то похожее на метод ESQ:

public Select GetSelectQuery(UserConnection userConnection);

только в обратную сторону.

Нравится

0 комментариев
Показать все комментарии

Добрый день!

Подскажите, пожалуйста, как реализовать данный ESQ запрос:

select c.Id, c.Name, count(1) as AmountOfLeadHandled
from Lead l inner join Contact c on c.Id=l.OwnerId 
where exists (select 1 from Activity a
	where a.LeadId=l.id
	and not (a.TypeId='E2831DEC-CFC0-DF11-B00F-001D60E938C6' 
		and a.MessageTypeId='7F9D1F86-F36B-1410-068C-20CF30B39373')
	and a.StatusId in ('4BDBB88F-58E6-DF11-971B-001D60E938C6'))
	Group by c.Id, c.Name

Есть такой код:

var schema = _userConnection.EntitySchemaManager.GetInstanceByName("Lead");
EntitySchemaQuery esqTotal = new EntitySchemaQuery(schema);
esqTotal.AddColumn("=Owner.Id");
esqTotal.AddColumn("=Owner.Name");
esqTotal.AddColumn(esqTotal.CreateAggregationFunction(Terrasoft.Common.AggregationTypeStrict.Count, "Id"));
var activityTypeId = new Guid("E2831DEC-CFC0-DF11-B00F-001D60E938C6");
var activitymessageTypeId = new Guid("7F9D1F86-F36B-1410-068C-20CF30B39373");
var activityStatusId = new Guid("4BDBB88F-58E6-DF11-971B-001D60E938C6");
var esqActivity = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Activity");
esqActivity.AddColumn("Lead");
var filtersByExisting = new EntitySchemaQueryFilterCollection(esqActivity);
filtersByExisting.IsNot = true;
filtersByExisting.Add(esqActivity.CreateFilterWithParameters(FilterComparisonType.Equal, "Type", activityTypeId));
filtersByExisting.Add(esqActivity.CreateFilterWithParameters(FilterComparisonType.Equal,                 "MessageType", activitymessageTypeId));
esqActivity.Filters.Add(filtersByExisting);
esqActivity.Filters.Add(esqActivity.CreateFilterWithParameters(FilterComparisonType.Equal,                "Status", activityStatusId));
esqTotal.Filters.Add(esqTotal.CreateFilter(FilterComparisonType.Exists, "Id", esqActivity));

Но он выдает не совсем то что надо. Мне надо выполнить условие:  

where a.LeadId=l.id

Не могу ни как добиться результата. Может кто нибудь подсказать?

Нравится

7 комментариев

Добрый день!

 

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

В любой непонятной ситуации советуй view.wink

Руслан, а с чем связано требование именно при помощи ESQ?

На сервере есть класс Select, покрывающий почти все возможности его синтаксиса.

И смотрю на Ваш запрос, его точно ли нельзя «вывернуть», чтобы выборка шла из Activity, с join остальных таблиц без всяких exists? Как тут.

Зверев Александр пишет:
В любой непонятной ситуации советуй view.

Точно) Дешево и сердито... 

 

Ну, а что можно, даже создать представление только для запроса с Activity, а потом уже в коде использовать его.

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

Зверев Александр,

Ну, можно специальную view тогда написать)))

Алла Савельева,

Представление не подойдет.

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

2. Мне нужно встроиться в существующий механизм, который как раз использует ESQ.

3. Ну и права не помешают.

Зверев Александр,

Хорошо, я подумаю как вывернуть запрос. Может что то получится. Спасибо за совет.

Показать все комментарии

Добрый день.

 

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

Я сделала процесс, который должен срабатывать по событию создания записи в объекте Запись журнала. Но процесс не стартует вообще ни по изменению в деталях, ни по изменению в основной записи.

Есть ли у кого-нибудь опыт работы с записями истории в деталях?

 

Нравится

2 комментария

Добрый день!
Не понятно, зачем вы делаете бизнес процесс.
1) Если вам нужно отображать изменения в подчиненных объектах, то вам нужно настроить логирование на сами подчиненные объекты
2) Ваш бизнес процесс не отрабатывает, т.к. записи объекта "Запись журнала" сохраняются в базе данных без сигнала
3) Если все таки нужно ориентироваться на событие создания записи в объекте Запись журнала, то тут поможет только создание триггера на базу данных

Сидоров Александр В.,

Благодарю за ответ. Логирование в подчиненных объектах включено. Попробую сделать триггер.

Показать все комментарии