Вопрос

Добрый день. Использую 5 версию системы.

Необходимо вывести на странице реестра отфильтрованный по определенным условиям список. В таблице, по которой будет осуществлена фильтрация, имеется колонка Phone с номером телефона, который записан без маски(т.е. в значении могут быть указаны дефисы, пробелы, скобки). Необходимо все лишние символы при фильтрации "выкинуть", вопрос Как это правильно сделать?

var Filters5 = facilityStructure.CreateFilterWithParameters(dataSource.Schema, FilterComparisonType.Equal, "Phone", Number.Replace('-',''));

У меня такой же вопрос

6 комментариев
Лучший ответ

Для быстрого поиска номера можно добавить спрятанное (не выведенное на страничке поле) куда сохранять номер телефона с которого удалять все кроме цифр и хранить в перевернутом виде тогда можно будет искать номера независимо от того содержат ли они код страны или нет те

+(38064) 714 -82 -23

записать как

322841764083

Для поиска вы переворачиваете номер удалив с него все кроме цифр и используете фильтр начинается с  или содержит

Этот способ используется в некоторых стандартых разделов в bpmonline

В интернете много примеров использования регулярных выражений для обработки телефонных примеров,найдите подходящие вам и используйте!

Меня интересует как правильно прописать фильтр на bpm, а не как использовать реплэйсы.

Для быстрого поиска номера можно добавить спрятанное (не выведенное на страничке поле) куда сохранять номер телефона с которого удалять все кроме цифр и хранить в перевернутом виде тогда можно будет искать номера независимо от того содержат ли они код страны или нет те

+(38064) 714 -82 -23

записать как

322841764083

Для поиска вы переворачиваете номер удалив с него все кроме цифр и используете фильтр начинается с  или содержит

Этот способ используется в некоторых стандартых разделов в bpmonline

Григорий, я правильно Вас понимаю, что без вот таких так скажем "выкрутасов", я не смогу фильтр написать!?

Алексейченко Антонина,

Можно, но это уже будет не фильтрация, а поиск записей с обработкой выбранных значений и последующая фильтрация. Если у вас количество записей в базе большое, поиск нужно будет делать на стороне сервера (sql) те прикручивать внешний сервис или что-то аналогичное.

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

Все разновидности функции CreateFilterWithParameters перечислены тут, а варианты FilterComparisonType — тут. Варианта с регулярными выражениями там нет, максимум доступно включение подстроки в начале, конце или где угодно.

Так что придётся, как посоветовал Григорий, или добавлять второе поле с номером без спецсимволов, или чисто программно перебирать и находить массив ID найденных подходящих записей, которые и добавлять в фильтр.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Продукт: BPMonline Service Desk, версия 5.4.0.2408.

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

Может кто-нибудь помочь с этим вопросом?

Прикрепленные файлы

У меня такой же вопрос

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

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

Александр, спасибо за ответ. Но это не самодельный справочник. У меня имеется руководство по настройке системы, где расписаны действия по созданию стандартных и нестандартных справочников. Нестандартным, в соответствии с этим руководством, считается справочник, для которого помимо создания объекта и регистрации справочника, должны быть созданы страницы карточки и реестра справочника.

Елена, имею в виду, что если Вы сами его создали, то это самодельный справочник. Он может быть стандартным (две текстовых колонки «название» и «описание» в объекте, отдельная карточка не нужна) и нестандартным (больше колонок, своя карточка).

Александр, Ваше решение помогло. За это огромное спасибо! Создала только страницу редактирования (так как справочник нестандартный) и в карточке регистрации справочника, в поле "страница карточки" выбрала созданную страницу редактирования, а поле "страница реестра" оставила пустым. Тогда всё получилось."

Обычно страницу реестра делают только для справочников с нестандартной логикой. Например, для «двухэтажных».

Войдите или зарегистрируйтесь, чтобы комментировать

Вопрос по правам доступа в портале:

на текущий момент пользователь имеет доступ или к своим обращениям (где он заявитель) , или ко всем обращениям Контрагента

А можно самим принудительно (программно) сделать доступ только к обращениям, если в них указан определенный сервис ?
 

У меня такой же вопрос

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

По идее, эта логика меняется в функции GetContactFilter страницы PortalServiceRequestsModulePage или PortalServiceRequestsGridPage. Возможно, в обеих местах. Нужно тестировать.

Войдите или зарегистрируйтесь, чтобы комментировать

С некоторого времени не можем посмотреть структуру БизнесПроцессов (БП). Требуется установка SilverLight. При нажатии на "установить" - все устанавливается, но тем не менее структуру БП не видим

У меня такой же вопрос

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

См. комментарии тут.

работайте в Microsoft Explorer 

в chrome://flags/#enable-npapi не нашла возм-ть включения..

 

Его там и нет. См. ответы по ссылке.

Войдите или зарегистрируйтесь, чтобы комментировать

Добрый день. Можно ли в портале сделать фильтр, который в системе слева настраивается?

У меня такой же вопрос

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

К сожалению, в Сustomer Portal для фильтрации можно использовать только быстрый фильтр.

Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

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

Вот скрипт, который очистит таблицы базы данных SysLicUser, SysLic и SysLicPackage от информации о старых и повреждённых лицензиях. Это должно помочь удалить «неиспользуемые» записи в этих 3 таблицах, а также лицензии, у которых вышел срок.

Чтобы просто проверить наличие таких записей, замените «delete» на «select *».

delete from "SysLicUser"
where "Id" not in (select slu."Id" from "SysLicUser" slu
inner join "SysLicPackage" slp on slp."Id" = slu."SysLicPackageId"
inner join "SysAdminUnit" sau on sau."Id" = slu."SysUserId"
inner join "Contact" c on c."Id" = sau."ContactId"
where slu."Active" = '1'
)
 
delete from "SysLic"
where "SysLicPackageId" not in (select slp."Id" from "SysLicUser" slu
inner join "SysLicPackage" slp on slp."Id" = slu."SysLicPackageId"
inner join "SysAdminUnit" sau on sau."Id" = slu."SysUserId"
inner join "Contact" c on c."Id" = sau."ContactId"
where slu."Active" = '1'
)
or "DueDate" < GETDATE() --если Oracle, то заменить на SYSDATE без скобок
 
delete from  "SysLicPackage"
where "Id" not in (select slp."Id" from "SysLicUser" slu
inner join "SysLicPackage" slp on slp."Id" = slu."SysLicPackageId"
inner join "SysAdminUnit" sau on sau."Id" = slu."SysUserId"
inner join "Contact" c on c.Id = sau."ContactId"
where slu."Active" = '1'
)

Если это не поможет, придётся полностью очистить таблицы лицензий запросами:

delete from "SysLicUser"
 
delete from "SysLic"
 
delete from "SysLicPackage"

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

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

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

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Версия 5.4. Просьба подсказать, где можно изменить текст при входе в систему?

 

Прикрепленные файлы

У меня такой же вопрос

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

Чтобы изменить текст на странице входа, можно ручками поправить страницу Login.aspx в корневой >папке сайта (предварительно конечно лучше сделав копию).

 

Сама логика вывода того или иного города и телефона в зависимости от локали сделана в ядре.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день.

Из карточки обращения открываю карточку контакта и передаю туда параметры с обращения. Далее сохраняю контакт и при сохранении хочу отдать некоторые параметры в карточку обращения обратно.

Могу ли я каким-то образом поднять уже открытую ранее карточку обращения и сделать там обновления?

У меня такой же вопрос

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

Антонина, можно при открытии дочернего окна передавать ему то сообщение, которое оно породит при закрытии. Затем в родительском будет срабатывать обработчик этого сообщения. А непосредственно данные передавать через UserConnection.SessionData. Пример можно увидеть в стандартном процессе FindInSocialMediaModuleProcess. Там 2 скрипта, один готовит дочернее окно, другой получает из него данные.

Посмотрела как написан код...только не поняла, разве родительское окно поднимется как активное, если оно было свернутое?

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день.

В разделе Объекты имеется вкладка "Файлы и ссылки объекта", а также возможность просматривать изображения(добавленные на вкладке Файлы и ссылки объекта) при помощи отдельной детали "Изображения".

Так вот, я хочу чтобы страница с реестром изображений вызывалась по кнопке "Посмотреть".

Для этого использую действие "Открыть страницу". Какие параметры необходимо передать, чтобы она открывалась и инициализировала область изображений с их отображением?

Мой код:

var defValues = new Dictionary <string, object>();
var parameters = new Dictionary <string, string>();
var defValuesId = Guid.NewGuid();
var facilityInAppESQ = FacilityInApplicationESQ as EntitySchemaQuery;
 
	var activeRowPrimaryColumnValue = Page.DataSource.ActiveRowPrimaryColumnValue;
	var activeRowUId = Guid.Empty;
	activeRowUId = activeRowPrimaryColumnValue;//Выбранный в реестре файл
 
	Select ProtocolRecordId = new Select(UserConnection)
          	 .Column("FacilityId")
           	 .From("FacilityFile")
           	 .Where("Id").IsEqual(Column.Parameter(activeRowUId)) as Select;
			Guid ProtocolRecord = ProtocolRecordId.ExecuteScalar<Guid>();	
 
UserConnection.SessionData[defValuesId.ToString()] = defValues;
parameters.Add("defValuesId", defValuesId.ToString());
parameters.Add("FacilityId", ProtocolRecord.ToString());
parameters.Add("recordId", activeRowUId.ToString());
OpenTaskEditPageFacilityUserTask.PageParameters = parameters;	
OpenTaskEditPageFacilityUserTask.PageUId = new Guid("d42fdb94-9284-423a-a561-30ccaff36409");
 
return true;

 

У меня такой же вопрос

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

Антонина, эта деталь изображений является нестандартной и,вероятно, разработана в ходе проекта. Сложно сказать, не видя всей её логики.

Каким образом я могу Вам показать работу данной детали?

Посмотрел ещё раз, на самом деле эта деталь изображений есть в коробке Loyalty, её схема FacilityPicturesDetailGridPage. Использует такой же источник данных файлов в объекте, как обычная деталь файлов в этом разделе.

Соответственно, если Вы где-то уже делали показ по кнопке страницы реестра, отфильтрованной по записи основного раздела, то делать аналогично.

Если нет, то нужно смотреть, как в БП схемы-страницы BaseModulePage и вызываемых из неё схемах-действиях InitializeDetails и SetDetailFilter сделана привязка любой детали к нужной странице и наложение фильтра.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день,

Анализируем варианты интеграции BPMOnline 5.4 c www.unisender.com для рассылок Email.

Подскажите существует ли такая возможность в 5.4? Возможно ли ее туда добавить без доработок?

Вот информация от ТП unisender

Terrasoft уже имеет прямую интеграцию своего продукта с unisender, как транспортный канал трафика email, вполне возможно что вам и не требуется реализовывать его повторно. 

 

У меня такой же вопрос

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

Антон, интеграция с Unisender появилась только в 7.8. Вероятно, они её и имели в виду. Там используется находящийся на отдельном сайте облачный сервис рассылок bpm’online Cloud Email Service, который интегрируется с ним и другими подобными сервисами рассылок. В 5.4 всего этого механизма не было, поэтому без доработок подключить не получится.

Войдите или зарегистрируйтесь, чтобы комментировать