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

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

Нравится

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

Игорь, Вы можете включить и настроить права доступа по записям в объекте «Справочник» (Lookup).  Также, чтобы не только администраторы, но и пользователи, нужно выдать им права на операцию «Доступ к разделу "Справочники"» (CanManageLookups).

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

Я сделал булев метод в methods:{ }, тот вычитывает атрибут entity и возвращает результат - равенство текста из свойства объекта моей подстроке.

Два метода: ExperimentVisible, ExperimentNonVisible, - проверяют результат что отдает первый метод и также возвращают булев результат.

В разделе diff одной новой и одной существующей кнопке в схеме наследования , на свойство visible были привязаны эти методы.

 

Две кнопки были помещены в верхний контейнер страницы, там где есть зеленая базовая кнопка "Сохранить".

 

Во время загрузки страницы получаю всегда разный результат моих методов. Так как кнопки расположены в верхнем контейнере, привязанный к видимости кнопки метод проверяется прежде всего. Иногда в схему, доступную через this , Креатио загружает атрибут entity для проверки, иногда еще нет. Зафиксировал что иногда он еще и кэширует состояние схемы (тогда в this присутствуют данные не корректные а соответствуют схеме прежде открытой в браузере страницы).

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

 

Я пытался сделать более просто  - вместо чтения атрибута из this в моем методе написал загрузку объекта через EntitySchemaQuery и проверял мое свойство. Данные получались, но не были доступны через this страницы, они остались в scope запроса ESQ.

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

 

Нравится

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

А у Вас дело случайно не в том же, что и в недавней теме? Там в одних случаях работает логика для совмещённого режима, в других — для отдельной карточки. Если не в этом, то по изложению не очень понятно, что происходит, нужно производить в браузере отладку.

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

Чтобы посмотреть в базе у каких бизнес процессов установлен флаг "Включена трассировка" нужно выполнить следующий запрос:

select ss.Name, ss.Caption
  from SysSchemaUserProperty ssup inner join SysSchema ss
				on ss.Id=ssup.SysSchemaId
		inner join SysPackage sp
			on sp.Id=ss.SysPackageId
			and sp.Name='Здесь имя пользовательского пакета'
 where ssup.Name='IsTracing'
   and ssup.Value='true'

 

Нравится

Поделиться

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

Дополнил ваш код. Хорошая идея.

-- БП. Просмотр включенной трассировки всех пакетов
select 
	 [SysPackage].[Name] [SysPackage_Name]
	,[SysSchema].[Name] [SysSchema_Name]
	,[SysSchema].[Caption] [SysSchema_Caption]
	,[SysSchema].[ModifiedOn] [SysSchema_ModifiedOn]
	,[Contact].[Name] [Contact_Name]
from [SysSchemaUserProperty]
inner join [SysSchema] on [SysSchemaUserProperty].[SysSchemaId]=[SysSchema].[Id]
inner join [SysPackage] on [SysSchema].[SysPackageId]=[SysPackage].[Id]
inner join [Contact] on [SysSchema].[ModifiedById]=[Contact].[Id]
where SysSchemaUserProperty.[Name]='IsTracing' and SysSchemaUserProperty.[Value]='true'
order by [SysPackage].[Name], [SysSchema].[Name]

 

Руслан, спасибо за информацию.

Недавно обсуждали похожее, там приводил примеры, как смотреть этот параметр в таблице SysProcessData, работать с ним путём вызова веб-сервиса и JS-функции для работы с ним.

Спасибо всем за вклад в развитие базы знаний и сообщества.

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

Добрый день!

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

Спасибо!

Нравится

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

1. Дизайнер системы - Библиотека процессов - Выбрать БП - Свойства - Включить "Включена трассировка"

2. Дизайнер системы -Журнал процессов - Выбрать БП - Открыть - На детали "Элементы процесса" добавить колонку "Создал" - На выбранном шаге нажать кнопку "Показать данные трассировки"

1. Дизайнер системы - Библиотека процессов - Выбрать БП - Свойства - Включить "Включена трассировка"

2. Дизайнер системы -Журнал процессов - Выбрать БП - Открыть - На детали "Элементы процесса" добавить колонку "Создал" - На выбранном шаге нажать кнопку "Показать данные трассировки"

Спасибо, Дамиан! Действительно, оказалось все проще некуда.

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

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

Появилась необходимость выкачивать отчет по лиду в формате Excel по определенному шаблону (скриншот 1), решил воспользоваться дополнением https://marketplace.terrasoft.ru/app/advanced-excel-reports-creatio

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

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

Нравится

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

Илья, 

 

дополнение https://marketplace.terrasoft.ru/app/advanced-excel-reports-creatio не предоставляет возможности настраивать отчеты формата выше. Скорее будет более полезно для формирования выгрузок данных.

 

Подскажите, рассматривали ли возможность настройки отчета выше базовыми средствами в формате docx?

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

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

 

Зарегистрировал онлайн стенд через https://www.terrasoft.ru/trial/creatio

В коммуникационной панели в пункте "Звонки" отображается ошибка "Отсутствует подключение к серверу телефонии. Возможно, не настроены параметры соединения или сервер телефонии недоступен.

 

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

Нравится

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

Здравствуйте, Владислав!



Для использования функционала звонков в 14-дневной триал версии необходимо выполнить настройку интеграции с одной из телефоний из данного списка - https://academy.terrasoft.ru/documents/sales-enterprise/7-10/sravnenie-vozmozhnostey-integracii-s-razlichnymi-ats.



С уважением, Елена.

 

support,

 

А раньше внутрение звонки работали в триале по умолчанию при создании. Webitel все так же бесплатна или теперь нужны деньги и пляски с бубном? Было бы не плохо узнать официальный ответ в публичном чате

Добрый вечер, Александр!

 

Ранее в 14-дневных триал версиях, по умолчанию, был представлен продукт Webitel Collaboration, который давал возможность осуществлять внутренние звонки.

В последних релизах эту функциональность убрали, так как развитие Webitel Collaboration приостановлено.

 

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

Tseberko Kristina,

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

Александр Тыра,

Да, к сожалению, уже не входят.

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

Есть Объект со статусами Новое-В работе-Выполнено. В объекте есть деталь. Запись объекта создает Подразделение "А". Создает в статусе "Новое". Добавляет данные в деталь. Потом переводят в статус "В работе". Данные из детали анализирует подразделение "Б". Когда завершают работу, переводя на статус "Выполнено".

Требуется запретить изменять объект и данные в детали для подразделения "А" в момент когда статус объекта не равен "Новое". Если с запретом на изменение данных проблем нет - все решается администрированием Объекта по записям и наследование полномочий в детали от Объекта, а бизнес-процессом отбираем права на редактирование при смене статуса. То вот с запретом на добавление данных в деталь случился небольшой затык. Как это можно сделать?

Нравится

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

Алексей, на уровне интерфейса можно модифицировать схему страницы реестра своей детали, исправить функцию с проверкой условия доступности кнопки добавления, которая определена в BaseGridDetailV2.

Стандартно она такая:

/**
 * Determines, if add record button is enabled.
 * @private
 * @returns {Boolean} - Flag of add record button enabled.
 */
_isAddRecordButtonEnabled: function() {
	const isDetailEnabled = this.get("IsEnabled");
	if (this.isEmpty(isDetailEnabled)) {
		return true;
	}
	return isDetailEnabled;
},
 
/**
 * ########## ########### ###### ########## ######.
 * @return {Boolean}
 */
getAddRecordButtonEnabled: function() {
	return this._isAddRecordButtonEnabled();
},
 
/**
 * ########## ########### ###### # #### ########## ######.
 * @return {Boolean}
 */
getAddTypedRecordButtonEnabled: function() {
	return this._isAddRecordButtonEnabled();
},

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

 

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

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

Приветы, PostgreSQL 7.17.0.2164, есть следующая ошибка. 



Error occurred when saving: 23503: insert or update on table "SysLocalizableValue" violates foreign key constraint "FKYru8eiQRBeFoEfawvRwKSlCy2o"

 

Случается при попытке сохранить чистый БП с одним элементом Читать/Добавить данные (кроме начального и конечного). При элементе типа скрипт - всё ок. Сохранение естественно не происходит.

Что интересно этот вторичный ключ относиться к Culture. 

 

Как быть? 

Нравится

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

Добрый день. Встречал такую ошибку, когда использовал уже "занятую" базу (номер базы) редиса. Попробуйте в ConnectionStrings.config изменить номер базы редиса на свободный.

Добрый день. Встречал такую ошибку, когда использовал уже "занятую" базу (номер базы) редиса. Попробуйте в ConnectionStrings.config изменить номер базы редиса на свободный.

Действительно, причина чаще всего в этом. Происходит такое, когда два приложения смотрят на один Redis и на одном из них в БД другой Id у какой-то культуры (какой угодно, например, шведской) или её вообще нет. Культуры кешируются в одном месте после вычитки из БД и затем система работает с ними.

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

Дмитрий А.,

Проблема была в этом, спасибо.

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

У нас для некоторого нашего сотрудника создан справочник, по которому находится визирующий сотрудник. В логике БП с визированием, запись визирующего нашего сотрудника из справочника корректно вычитывается и помещается в элемент "Визирование" в поле Визирующий. После чего всякий экземпляр БП без каких-нибудь ошибок зависает на элементе "Визирование". Если жестко сделать указание на сотрудника, то бп отрабатывает.

Вопрос не о том, как исправить эту ошибку. Интересно бы повторить логику элемента Визирование на основе базовых элементов чтения/записи.

Элемент визирования работает так:

  • В системе создается новая виза. Вся информация по визе, например, визирующий, результат визирования, комментарии и т. д., отображается на вкладке [ Визы ] записи раздела, по которой запущен кейс. 
  • Email-уведомление о необходимости визирования отправляется в момент создания визы сотруднику или группе сотрудников, которые назначены визирующими.
  • После утверждения или отклонения визы выбранному сотруднику, который заинтересован в результате визирования, отправляется email-уведомление и выполняется переход на следующую стадию кейса.

Где посмотреть в коде механизм логики работы элемента визирования? Может быть логика у вас есть в виде какой-нибудь диаграммы? Может быть базовый элемент визирования кто-нибудь успешно дублировал сам?

Нравится

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

Там очень странная логика - надо указать роль или конкретного пользователя.   В элементе визирования тип Approver'а важен (хотя, данные в любом случае берутся из System Administration Object) и самого пользователя надо читать из Users (view)



Мы в итоге сделали так:

Там очень странная логика - надо указать роль или конкретного пользователя.   В элементе визирования тип Approver'а важен (хотя, данные в любом случае берутся из System Administration Object) и самого пользователя надо читать из Users (view)



Мы в итоге сделали так:

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

Привет, с наступающим или уже наступившим.



Есть следующая ошибка:

System.IO.FileLoadException: Не удалось загрузить файл или сборку "Google.Apis, Version=1.49.0.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab" либо одну из их зависимостей. Найденное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Имя файла: 'Google.Apis, Version=1.49.0.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab' ---> System.IO.FileLoadException: Найденное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Ситуация:

Есть задача поиграться с GoogleSheets API со стороны Creatio, для этого нужно установить соответствующие библиотеки. 

Сначала я создал консольный проект в VS и через nuget поставил либы Google.Apis.Sheets.v4 - https://www.nuget.org/packages/Google.Apis.Sheets.v4/

Подтянулись либы GoogleSheets и зависимые тоже, в том числе Google.Apis v 1.49.0.0. Протестировав на консольном проекте, где все работало, я решил поставить эти же либы в Creatio, прикрепив их как сборки к пакету.

После компиляции приложения вылезло предупреждение что уже существует либа Google.Apis, только другая - "Google.Apis, Version=1.1.4547.22925, Culture=neutral, PublicKeyToken=edaadfbc3b0bb879" как я понимаю на ней работает синхронизация календаря и ещё что то там и возможны конфликты, но предупреждение это не ошибка, по этому я пошел дальше и использовал классы новой либы версии 1.49, и тут же получил  ошибку которую написал выше.



На счет зависимостей странность:

Я скачал сборку старую Google.Apis что бы пощупать и сразу увидел зависимость от либы "Newtonsoft.Json 4.0.4.0" хотя в системе Creatio эта же либа работает в версии 12.0.0.0. Как в системе могут присутствовать сборки которые используют в одно и то же время разные версии сборки?



Возможные решения: 

1. Переписать календарь и другой функционал под новую версию либы, удалив старую, но потом обнова и gg.

2. Попробовать сделать отдельный сервис где то "во вне" и поставить туда нужные мне либы и заделать этот сервис как посредник между гуглом и Creatio.

3. Подскажите свое, что я упускаю?

Нравится

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

Здравствуйте! Данную проблема присутствует уже очень долго. В моем случае это была проблема интеграции Creatio с  Google Analytics. И как следствие пришлось делать внешний сервис + подключил туда Rabbit для обмена данными. 

Добрый день.

Благодарю вас за то, что подметили данную проблему.

 

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

Мы со своей стороны займемся обновлением этой либы, но это будет не скоро.

Также могу порекомендовать вам реализовать ваш вариант №2.

Здравствуйте! Данную проблема присутствует уже очень долго. В моем случае это была проблема интеграции Creatio с  Google Analytics. И как следствие пришлось делать внешний сервис + подключил туда Rabbit для обмена данными. 

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