Добрый день!

Возник небольшой вопрос по настройке global search.  Файл onsite-custom-onboard отредактировал, докер контейнеры создал. Но при этом все контейнеры имею нулевой адрес. С чем это связано?

Заранее благодарю за помощь!Изображение удалено.

Нравится

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

Добрый день, Роман!



По Вашему вопросу о указании адреса в настройках: 

Если все эти компоненты поднимаются в контейнере, т.е. run_mysql, run_elasticsearch и run_rabbitmq равно 1, то адреса необходимо оставить такие же, как в примере.

Также см. тему о настройке поиска.

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

Добрый день!

Подскажите, как в системе Service Enterpise правильно настроить календарь 24x7 в справочнике Календари.

Если указывать рабочее время с 0:00 до 23:59 то при подсчёте, например, кол-ва минут

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

Для рас чета используется функция  GetWorkingTimeSpan из схемы TermCalculatorActions.

Пример:

Дата создания: 2019-10-01 12:21:54.0000000

Дата планового решения: 2019-10-03 12:21:39.0000000

Срок решения: 2 календарных дня.

sql datediff: 2880 минут

расчёт с учетом календаря: 2878

 

Нравится

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

Здравствуйте.

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

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

Здравствуйте.

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

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

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

Добрый день, 

Подскажите, возможно прикрепить email работающий по протоколу РОР3?

Если нет, то подскажите какие возможны решения.

Нравится

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

Добрый день!



POP3 — старый протокол, от поддержки которого было принято решение отказаться. На данный в базовой версии bpm'online его нельзя использовать для интеграции с почтой. POP3 был так же удален из поддержки из-за того, что создавал уязвимые места в безопасности системы. Функционал с данной интеграцией был полностью удален из системы. 



Если он Вам необходим Вы можете доработать данный функционал в рамках проекта.

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

Здравствуйте!

Несколько раз встречали такое поведение системы, что после 13 часов (в 13:02, 13:07 и т. п.) останавливаются все процессы в системе (завершаются без ошибок). Следующие по расписанию процессы не стартуют, на триггеры не реагируют. На следующий день в 8:00 всё начинает работать как положено. С чем может быть связано такое поведение?

Изображение удалено.

 

Нравится

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

Выключают из розетки сервер, чтобы воткнуть микроволновку?laugh

Посмотрите в логах сервера, что происходит в это время. Также по поведению конкретных процессов узнать больше может помочь трассировка. Может, ещё какие-то ежедневные регламентные работы, настроенные по таймеру на серверах, где запущены IIS, БД или Redis. Таймер может быть и средствами Windows, и встроенный в MS SQL.

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

Добрый день.

На главной странице портала, есть грид с обращениями.

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

Как это можно реализовать?

Нравится

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

Главная страница портала — по сути, та же страница-панель итогов. Самодельные виджеты в неё должны добавляться аналогичным образом. Только нужно учитывать ограничения прав на все объекты для портальных пользователей, если доступ не разрешён специально.

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

Добрый день

Есть в системе деталь, которая отображает запросы пользователей к сервису. Один пользователь может обращаться много раз. На каждый запрос формируется запись с ID пользователя, датой и типом запроса.

Как получить график количество уникальных пользователей за текущий квартал в группировке по датам. На SQL легко и просто.

SELECT
CAST(DATEADD(HH,3,EPMRequestDate) as date) as [Дата], --дата запроса с учетом часового пояса
COUNT(DISTINCT EPMAuthDataEnergyId) as [Уникальные пользователи],
COUNT(Id) as [Посещения]
FROM EPMAuthDataStatisticEntity
WHERE
EPMAuthDataEnergyId!='9bb71e40-09b4-4352-ba5a-0f55b486f8f0' --Исключение ИД
and EPMTypeRequest = 1 --тип запроса
and EPMRequestDate between DATEADD(M,-3, GETDATE()) and GETDATE() --Текущий квартал
GROUP BY CAST(DATEADD(HH,3,EPMRequestDate) as date)
ORDER BY CAST(DATEADD(HH,3,EPMRequestDate) as date)

Начинаю делать в BPM и получаю только количество посещений в день

Изображение удалено.

Насколько понимаю стандартными средствами никак?

Нравится

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

Нужно создать view в БД, на основе view создать объект. И уже делать график основываясь на данных виртуального объекта (view)

Поищите по форуму, как создаются объекты на основе вьюхи, вот например в этой теме есть инфа.

https://community.terrasoft.ru/questions/sozdanie-obekta-na-osnove-db-view

Нужно создать view в БД, на основе view создать объект. И уже делать график основываясь на данных виртуального объекта (view)

Поищите по форуму, как создаются объекты на основе вьюхи, вот например в этой теме есть инфа.

https://community.terrasoft.ru/questions/sozdanie-obekta-na-osnove-db-view

Благодарю за помощь. Создал View, объект в системе по ней и построил требуемые графики. Единственная сложность возникла при создании Объекта. Система требовала обязательно указать ключевое поле. Пришлось задать его во View

Да, для корректной работы view должна быть максимально похожа по набору стандартных полей на обычные объекты. Ещё поле для отображения указать будет не лишним.

Если не знаете, что вывести в качестве уникального Id, можно взять MD5-хэш от остальных полей.

 

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

Коллеги, добрый день.

Имеем классический трехуровневый ландшафт: Разработка (DEV), Тестирование (TST) и промышленный (PRD). В DEV включен режим разработки в файловой среде. Есть потребность в наполнении DEV данными из PRD. Именно только данные. Пробовал делать бэкап базы PRD и разворачивать его на DEV. Из минусов решения - это то, что все пакеты разработки становятся установленными из вне, теряют связь с хранилищем, заново приходится отключать все настройки синхронизации почты и перенастраивать интеграции на другие базы.

Есть вариант написать SQL скрипт в котором определить перечень некопируемых таблиц и запускать его. Кстати, подобным образом происходит копирование систем у SAP (если уместно данное сравнение).

А как это делаете вы?

Нравится

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

Здравствуйте! Что касается пакетов,  можете разблокировать их выполнив sql скрипт

update SysPackage
set IsChanged = 1, InstallType = 0, IsLocked = 1, Maintainer = 'Customer'
where Name in ('PkgName')
and SysWorkspaceId in (select Id from SysWorkspace where Name = 'Default')

Что касается привязки пакета к хранилищу, то по этому поводу хорошо описано в данной статье- https://academy.terrasoft.ru/documents/technic-sdk/7-14/privyazka-k-svn-ne-svyazannogo-s-hranilishchem-paketa

Здравствуйте! Что касается пакетов,  можете разблокировать их выполнив sql скрипт

update SysPackage
set IsChanged = 1, InstallType = 0, IsLocked = 1, Maintainer = 'Customer'
where Name in ('PkgName')
and SysWorkspaceId in (select Id from SysWorkspace where Name = 'Default')

Что касается привязки пакета к хранилищу, то по этому поводу хорошо описано в данной статье- https://academy.terrasoft.ru/documents/technic-sdk/7-14/privyazka-k-svn-ne-svyazannogo-s-hranilishchem-paketa

Нигрескул Алексей,

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

Чтобы на тесте не включались интеграции с прода, можно написать один большой SQL-запрос, который чистит нужные значения системных настроек, справочников и прочего. А затем его запускать после разворачивания теста из бекапа прода вручную или, например, по действию в TeamCity.

Все зависит как часто вам нужно с прода переносить данніе в среду разработки, и нужно ли переносить абсолютно все или например данные нескольких разделов (те отдельные таблиы) если второе то как вариант можно использовать зеркалирование (Database Mirroring) или другие аналогичные мезанизмы синхронизации разных БД

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

Коллеги, прошу помощи в решении следующего кейса.

Есть оргструктура техподдержки на 3 организации. Mos, Nov, NEZ

Изображение удалено.

NOV и NEZ подчиняются MOS.

Раздел обращения. Все обращения создаются автоматически из почты. Т.е. поле создал в 98% одинаково. Поле контрагент заполняется само и соответствует организации. Надо настроить раздачу прав на обращения таким образом, чтобы обращение, созданное организацией NOV было доступно только NOV и MOS. Обращение созданное организацией NEZ было доступно только NEZ и MOS. Обращение созданное организацией MOSбыло доступно MOS.

Тоже надо сделать и для других объектов: Конфигурационные единицы, Сервисы, Сервисные договоры, проблемы, изменения.

Есть предположение что это надо делать БП и перераспределять права в зависимости от организации по событию создания Обращения.

И второй вопрос. Как массово сменить права на ранее созданные обращения?

Нравится

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

Мы делаем один процесс распределения прав на запись, который имеет несколько сигналов для запуска (например):

- смена ответственного, 

- смена контрагента,

- смена статуса,

- смена триггерного поля на true.



В объект обращений добавляем триггерное Boolean поле. И затем простым процессом устанавливаем это поле в true для всех записей, для которых хотим перераспределить права по уже прописанным в БП правилам. Ну, и этот БП внутри сбрасывает триггер на false.



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

 

Я думаю для изминение прав на существующие записи вам будет полезно приложение, 

по предоставлению временных прав доступа и изменению прав доступа на существующие записи

Для новых объектов можно создать БП реагирующих на добавление объекта и меняющих права на него, используя ЭЛЕМЕНТ ПРОЦЕССА [ИЗМЕНИТЬ ПРАВА ДОСТУПА]

Мы делаем один процесс распределения прав на запись, который имеет несколько сигналов для запуска (например):

- смена ответственного, 

- смена контрагента,

- смена статуса,

- смена триггерного поля на true.



В объект обращений добавляем триггерное Boolean поле. И затем простым процессом устанавливаем это поле в true для всех записей, для которых хотим перераспределить права по уже прописанным в БП правилам. Ну, и этот БП внутри сбрасывает триггер на false.



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

 

 

Владимир Соколов пишет:

Правда, мы отказались от возможности пользователям вручную раздавать права на записи

Если не секрет, то почему отказались? 

Алексей Следь,

Алексей Следь пишет:

Если не секрет, то почему отказались? 

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

В итоге назрела необходимость делать это в БП автоматически.

И не смогли в ходе этого БП определить, выдавал ли права пользователь вручную или автоматически в рамках БП, потому непонятно, какие права удалять, а какие оставить. Так что, удаляли всё



Когда будет реализована идея https://community.terrasoft.ru/ideas/priznak-sozdania-prav-vrucnuu, тогда сможем понимать, что добавил пользователь, и не удалять те права

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

Изображение удалено. 

О компании

Фармацевтическая компания «ГЕДЕОН РИХТЕР-РУС» – это дочернее предприятие ОАО Гедеон Рихтер (Будапешт, Венгрия), крупнейшего производителя лекарственных средств в Восточной Европе.

 

Предпосылки внедрения bpmonline

До использования bpmonline обращения в отдел информационного обслуживания не обрабатывались с использованием автоматизированных систем. После проведенного аудита ISO было принято решение автоматизировать процесс работы с заявками внутренних клиентов, которыми являются сотрудники компании.

 

Целью проекта было внедрить эффективный инструмент обработки обращений.

Выполненные настройки

Внедрение bpmonline в данной компании проходило в два этапа.

В рамках первого этапа был автоматизирован процесс работы отдела информационного обслуживания. Для обработки обращений был выбран стандартный референтный бизнес-процесс bpmonline. В ходе работ по запуску были адаптированы шаблоны сообщений под бизнес клиента, а также в разделе «Сервисы» были добавлены отраслевые сервисы такие как подключение нового рабочего места, резервное копирование и т.д.

На втором этапе внедрения стояла задача создать и автоматизировать процесс обработки обращений по запросам сотрудников в отдел по персоналу. Для обработки обращений также был выбран стандартный бизнес-процесс. В раздел «Сервисы» были добавлены следующие сервисы:

  • справка с места работы;
  • копия трудовой книжки;
  • консультация.

 

Изображение удалено. 

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

Изображение удалено. 

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

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

Изображение удалено. 

Также для автоматического назначения группы ответственных был создан процесс, который при создании или изменении обращения и указании в нем категории, соответствующей заявке в отдел по персоналу, назначает группу ответственных по обращениям данной категории.

 

Изображение удалено. 

Был создан отчет, который отображает средний балл удовлетворенности по обращениям HR-департамента.

Изображение удалено. 

Результат

Внедрение bpmonline позволило решить задачу обработки обращений от внутренних клиентов — сотрудников компании. Работа в единой ИТ-экосистеме позволила сократить и упростить коммуникации между сотрудниками смежных подразделений внутри компании.

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

 

Нравится

Поделиться

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

Коллеги, привет. 

Не могу найти внятного мануала на тему использования фильтрация в БП. 

Хочу отфильтровать ответственного по тикету по группе ответственных. (Выбираем группу -> список ответственных уменьшается). 

Подскажите как реализовать "хотелку" или укажите на гайд, где подобная задача решается?

Изображение удалено.

Нравится

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

Вашу задачу можно решить не только с помощью бизнес-правил.

Например, в базовой версии фильтрация поля 'Ответственный' настраивается через атрибуты таким образом:

"Owner": {
	"dataValueType": Terrasoft.DataValueType.LOOKUP,
	"lookupListConfig": {"filter": BaseFiltersGenerateModule.OwnerFilter}
}

Более того некоторые задачи по фильтрации данных с помощью бизнес-правил вообще не решаются.

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

Начните с просмотра этой статьи. В ней несколько ссылок на более подробное описание различных моментов связаных с БП. Так же просмотрите  статью СТРУКТУРА КЛИЕНТСКОЙ СХЕМЫ

 

 

 

Вашу задачу можно решить не только с помощью бизнес-правил.

Например, в базовой версии фильтрация поля 'Ответственный' настраивается через атрибуты таким образом:

"Owner": {
	"dataValueType": Terrasoft.DataValueType.LOOKUP,
	"lookupListConfig": {"filter": BaseFiltersGenerateModule.OwnerFilter}
}

Более того некоторые задачи по фильтрации данных с помощью бизнес-правил вообще не решаются.

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

Алла Савельева,  требуется следующую логику: 

1) При выборе ответственного, список доступных для выбора групп ответственных должен содержать только те группы, в которые входит ответственный

И обратное:

2) При выборе группы ответственных, список ответственных должен быть ограничен только теми специалистами, которые входят в данную группу. 

Sunrise challenge,

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

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

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

Нужно ли где-то определять BaseFiltersGenerateModule.OwnerFilter? 

Sunrise challenge,

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

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

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

Компилятор не выдаёт ошибок, схема сохраняется, при этом фильтрация не осуществляется

Sunrise challenge,

А в консоли браузера есть такие-то ошибки при выборе значения для этого поля?

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