BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 19 апр 2024, 14:18

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Re: Разные мелочи (CRM)
СообщениеДобавлено: 25 янв 2016, 13:02 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
совсем не мелочью было бы объяснение логических дейсвий под символами
=~ и !~

особенно это актуально, ввиду того что логически в синтаксе выражений не разобраться. вот почему например -
process.getStatusId() !=10 and 1 !~ user.getGroupIds() - нет ошибки, а
3 !~ process.getStatusId() ..... - синтаксическая ошибка
3 =~ process.getStatusId() ..... - синтаксическая ошибка


почему результаты из функций включаются в сравнение логически по-разному?

мне нужно например правило запрета правки по всех статусах кроме одного для одной группы с возможностью править в любом статусе для всех остальных групп. перепробавал всё - никак не могу понять как описать имеющимся функционалом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные мелочи (CRM)
СообщениеДобавлено: 25 янв 2016, 15:13 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
# проверка заполнения поля описания:
#http://www.bgcrm.ru/doc/3.0/javadoc/ru/bgcrm/model/process/Process.html
onProcessEvent.20.events=statusChanging:12
onProcessEvent.20.checkExpression=process.getDescription() == ""
onProcessEvent.20.checkErrorMessage= Невозможно поменять статус без заполнения Описания.
---------------------------------------

не работает. т.е. работает так, как-будто process.getDescription() всегда возращает пустую строку.
а что такое это Description? это поле текстовое в процессе - как в скриншоте или что-то ещё?


Вложения:
qwest1.png
qwest1.png [ 266.73 КБ | Просмотров: 3720 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 янв 2016, 16:34 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
http://docs.bitel.ru/pages/viewpage.act ... Id=6193536

процесс проходит по не нескольким статусам(ну скажем 10,11,12). группе пользователей(ID=1), что его заводит запрещено править процесс после того как он ушёл из начального статуса(ID=10).

пишу в настройке типов процессов:

onProcessEvent.19.events=paramChanging
onProcessEvent.19.checkExpression=1 =~ user.getGroupIds() and process.getStatusId() !=10
onProcessEvent.19.checkErrorMessage=После создания процесса редактировать вам нельзя.
---------------------------------------------------

работает не правильно. запрещает пользоватлям И ДРУГИХ ГРУПП, которые не входят в id=1 редактировать.
попытки менять условия не приводят к нужному результату.

пробовал вообще разобраться с логикой работы этой фигни.
так
onProcessEvent.19.checkExpression=1 !~ user.getGroupIds()
ещё вроде работает, а вот с оператором and он по-моему что-то другое сравнивает. но никак не два условия -ПОСЛЕ- вычислений состояния в этих двух условиях.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 янв 2016, 12:20 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Цитата:
почему результаты из функций включаются в сравнение логически по-разному?

Потому что операции с тильдой проверяют на (не)вхождение элемент в коллекцию элементов.
Цитата:
3 !~ process.getStatusId() ..... - синтаксическая ошибка

Справа должна быть коллекция.
Цитата:
3 =~ process.getStatusId() ..... - синтаксическая ошибка

То же самое.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 янв 2016, 12:25 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Попробуйте так:
Цитата:
onProcessEvent.20.checkExpression=su.isNotBlank(process.getDescription())

JEXL - это фактически Java, а в терминах JAVA вы пытались сравнить _ссылку_ на строку, которая является описанием со ссылкой на вновь созданную пустую строку.
Обычно это неверный способ. Это два разных объекта в хипе и ссылки будут на разные участки памяти.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 янв 2016, 12:29 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
По поводу вашей фигни тоже ничего не понял, прошу объяснить подробнее, что вы добиваетесь.
Возможно, что проблема в приоритете операций, где-то надо скобок расставить.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 янв 2016, 17:51 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
Администратор писал(а):
По поводу вашей фигни тоже ничего не понял.


ну может быть, зато мне почему-то очень сильно помогло :mrgreen: я очень много сразу понял. спасибо. :facepalm: :mrgreen:


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.129s | 38 Queries | GZIP : On ]