Добрый день!

 

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

[EntityEventListener(SchemaName = "UsrObject")]
    public class SomeEventListener : BaseEntityEventListener

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

Спасибо!

Нравится

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

Необходимо выполнить SQL скрип для SysPackage, который устанавливает: InstallType = 0, Maintainer = Customer.

Pavel Litvinovich,

это не помогает.

После выполнения скрипта

 

update SysPackage

set IsChanged = 1, InstallType = 0, IsLocked = 1, Maintainer = 'Customer'

where Name in ('CRM1')

and SysWorkspaceId in (select Id from SysWorkspace where Name = 'Default')

 

у пакет снимается блок. Также для схем в этом пакете делаю скрипт

 

update SysSchema

set IsChanged = 1,

IsLocked = 1

where Name in ('SomeEventListener')

and SysPackageId in (

    select Id from SysPackage where SysWorkspaceId in (select Id from SysWorkspace where Name = 'Default')

    and Name in ('CRM1')

 

но по итогу(после даже компилирую все) схема все равно не редактируемая.

Сергей Хоменко пишет:



1) Пакет вы разблокировали, тут все ок.

Но, в скрипте вы использовали изменение значения колонки Maintainer, если вы изначально правильно начали разработку, это значение в системной настройки вы изменили на собственное (Издатель). Если это так - то для разблокировки пакета, вместо Customer вам необходимо было указать своё значение.

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

Литвинко Павел,

я брал значение из системной настройки Publisher и менял для пакета на такое значение. Или как правильно нужно сделать? 

а вообще перезашел в систему - и схемы пакета стали редактируемыми. Спасибо!

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

Добрый день, появилась необходимость отсортировать статьи Базы знаний, а в частности, в виджете на портале, отображать статьи для портала, для этого на карточку записи Стать добавил логическое поле "Отображать на портале", вопрос в создании фильтра для виджета портала, имел ли кто-то опыт такой доработки?

Находил решения где статьи сортировали на основе ролевой модели, но этот вариант пока вынужден отложить.

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

Нравится

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

Добрый день

Вы можете сделать свой виджет по аналогии с базовым виджетом PopularKnowledgeBaseArticlesListModule (Список популярных статей на портале)

 

Сортировка устанавливается в конфиге, в методе initConfig.

В базовом виджете сортировка такая:

this.moduleConfig = {
  ....
  "orderDirection": 2,
  "orderColumn": "[Like:KnowledgeBase].Id",
  ...
}

 

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

Добрый день.

Есть необходимость перенести дашборды на другую среду.

Сами дашборды перенести не проблема.

Но как перенести настроенные права для них?

Нравится

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

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

 

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

 

- SysAdminUnit (Объект администрирования: пользователи и роли)

- SysUserInRole (Непосредственные вхождения пользователей в роли)

- SysFuncRoleInOrgRole (Вхождение функциональной роли в организационную)

- SysAdminOperation (Системные операции, если необходимо)

- SysAdminOperationGrantee (Доступ к системным операциям, если необходимо)

- SysEntitySchemaOperationRight (Доступ к объектам)

- SysEntitySchemaRecordDefRight (Доступ к записям по умолчанию)

- SysEntitySchemaColumnRight (Доступ к колонкам объекта)

- SysAdminUnitGrantedRight (Делегирование)

- SysWorkplace – (Рабочее место пользователя)

- SysAdminUnitInWorkplace – (Пользователи в рабочем месте)

- SysModuleInWorkplace – (Раздел в рабочем месте)

 

Для формирования запросов можно воспользоваться Microsoft SQL Server Database Publishing Wizard и подобными инструментами. Полученный SQL-скрипт необходимо прикрепить к пакету (вкладка - "SQL-сценарии", https://academy.terrasoft.ru/documents/technic-sdk/7-15/obshchie-sveden… более старые версии и для более новых версий https://academy.terrasoft.ru/docs/developer/development_tools/developme…).

 

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

 

Эти работы необходимо выполнять не в бизнес-время.

Марк, добрый день!

 

Можете ознакомиться с решениями, предложенными в следующих постах: 

1. https://community.terrasoft.ru/questions/perenos-prav-dostupa

2. https://community.terrasoft.ru/questions/nastroyki-prav-dostupa-na-obek…

Спасибо ,  это я все сделал . Но может не правильно  выразился.

В аналитике раздела обращения , создал несколько дашбордов , на каждый дашборд свои права на чтение и  запись . Как их перенести через SQL  сценарий , если да , то может есть пример скрипта ?

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

 

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

 

- SysAdminUnit (Объект администрирования: пользователи и роли)

- SysUserInRole (Непосредственные вхождения пользователей в роли)

- SysFuncRoleInOrgRole (Вхождение функциональной роли в организационную)

- SysAdminOperation (Системные операции, если необходимо)

- SysAdminOperationGrantee (Доступ к системным операциям, если необходимо)

- SysEntitySchemaOperationRight (Доступ к объектам)

- SysEntitySchemaRecordDefRight (Доступ к записям по умолчанию)

- SysEntitySchemaColumnRight (Доступ к колонкам объекта)

- SysAdminUnitGrantedRight (Делегирование)

- SysWorkplace – (Рабочее место пользователя)

- SysAdminUnitInWorkplace – (Пользователи в рабочем месте)

- SysModuleInWorkplace – (Раздел в рабочем месте)

 

Для формирования запросов можно воспользоваться Microsoft SQL Server Database Publishing Wizard и подобными инструментами. Полученный SQL-скрипт необходимо прикрепить к пакету (вкладка - "SQL-сценарии", https://academy.terrasoft.ru/documents/technic-sdk/7-15/obshchie-sveden… более старые версии и для более новых версий https://academy.terrasoft.ru/docs/developer/development_tools/developme…).

 

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

 

Эти работы необходимо выполнять не в бизнес-время.

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

Всем привет!

При добавлении кнопки в грид секции (аналогично с коробочными) столкнулся со странной проблемой: не работают локализуемые строки из ресурсов схемы. Причем если просто прописать caption, то всё работает. Кто-нибудь может подсказать в чем проблема?

            {

                "operation": "insert",

                "name": "DataGridActiveRowAddAccountAction",

                "parentName": "DataGrid",

                "propertyName": "activeRowActions",

                "values": {

                    "className": "Terrasoft.Button",

                    "style": Terrasoft.controls.ButtonEnums.style.BLUE,

                    "caption": {"bindTo": "Resources.Strings.AddAccountButtonCaption"},

                    //"caption": "Add Account",

                    "tag": "addAccount",

                    "visible": true,

                }

            },

 

Нравится

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

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

Дима Вовченко,

Судя по всему, ошибки тут нет, просто ресурсы берутся не из схемы раздела, а из схемы модели представления строки реестра раздела BaseSectionGridRowViewModel. Попробовал сделать замещающую схему и добавить туда локализуемую строку, но почему-то не заработало.

Показать все комментарии
UPDATE "SysSchema" 
SET "IsLocked" = false, "IsChanged" = false
WHERE "SysPackageId" = (SELECT "Id" from "SysPackage" WHERE "Name" = 'qrtCargoBaseV3') 
AND
("IsLocked" = true OR "IsChanged" = true)

снятие изменения объектов и схем я делаю с помощью скрипта выше, а как отменить изменения данных в какую таблицу надо смотреть?

Нравится

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

Дмитрий, здравствуйте.

 

Данные хранятся в таблице SysPackageSchemaData.

Добрый день, Дмитрий.

 

Вам нужна таблица SysPackage - в ней те же поля IsLocked и IsChanged + Maintainer не равно Customer.

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

имеется ввиду файл данных , а не пакет

Дмитрий, здравствуйте.

 

Данные хранятся в таблице SysPackageSchemaData.

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

Доброго времени суток.

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

Нравится

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

Добрый день

Сергей, такая возможность есть. Настройки хранятся в объекте SysDashboard  (Итог). Вам нужно привязать данные к пакету.

При сохранении настроек можно увидеть запрос batchQuery, который сохраняет настройку. Из него можно понять какие условия, какой объект, какой фильтр и т.д.

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

Здравствуйте! Первое развертывание on-site, делал строго по документации, при попытки перехода на страницу в пункте 13:

https://academy.terrasoft.ru/docs/user/razvertyvanie_onsite/server_pril…



Вылетает ошибка (приложил скриншот).

Редис сервер запущен, рестартил. Был бы признателен за помощь или фидбек: куда копать. Спасибо! 

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

 

Нравится

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

А что в конфиг-файле у Вас?

скинь содержимое файла connectionstring

ну или попробуй указать в строке редиса не имя компьютера , а localhost, не знаю почему, но с именем компьютера и у меня больше не работает при разворачивании onsite

+ можешь через cli посмотреть параметры подключения, ну или  самым простым способом будет установить redis desktop manager 

Судя из ошибки, можно предположить что вы неправильно установили соединение с сервером Redis в файле ConnectionStrings.config. Убедитесь, что вы изменили его, прежде чем запускать приложение.

Вы можете установить host как localhost и db как число от 1 до 15. 

Pavel Litvinovich,

Вроде все корректно. Я думаю, что проблема непосредственно в redisе, т.к при запуске он выдает ошибку: Could not create server TCP... port 6379 already use. Когда я смотрю процессы и убиваю его - он моментально восстанавливается назад. Пробовал переставлять redis - ситуация такая же. Если в конфиге redis поставить порт другой, то подключение сервера есть, но в приложении все равно ошибка подключения к серверу redis с отсылкой на прописанный порт. Приложил скриншот. 

<?xml version="1.0" encoding="utf-8"?>

<connectionStrings>

<add name="redis" connectionString="host=localhost;db=1;port=6379" />

<add name="defPackagesWorkingCopyPath" connectionString="%TEMP%\%APPLICATION%\%APPPOOLIDENTITY%\%WORKSPACE%\TerrasoftPackages" />

<add name="tempDirectoryPath" connectionString="%TEMP%\%APPLICATION%\%APPPOOLIDENTITY%\%WORKSPACE%\" />

<add name="sourceControlAuthPath" connectionString="%TEMP%\%APPLICATION%\%APPPOOLIDENTITY%\%WORKSPACE%\Svn" />

<add name="elasticsearchCredentials" connectionString="User=gs-es; Password=DEQpJMfKqUVTWg9wYVgi;" />

<add name="influx" connectionString="url=http://10.0.7.161:30359; user=; password=; batchIntervalMs=5000" />

<add name="messageBroker" connectionString="amqp://guest:guest@localhost/BPMonlineSolution" />

<add name="db" connectionString="Data Source=SERVER_CREATIO;Initial Catalog=Creatio_main;Integrated Security=SSPI;MultipleActiveResultSets=True;Pooling=true;Max Pool Size=100" />

</connectionStrings>

 

Dima Avdoshin,

Ответил выше. Поставил localhost - ситуация такая же.

 

Kurylo Pavel,

Тоже выше пост, и вроде как верно все установлено (во всяком случае согласное документации) 

Статус redis вроде как ок, пинги идут. 

Чтобы решить эту проблему, вам необходимо изменить файл connectionstrings.config и указать новое имя компьютера в строке подключения Redis:

 

 <add name="redis" connectionString="host=[имя компьютера];db=[номер базы данных Redis];port=6379;

 

Или вы можете указать там значение localhost, если вы размещаете все на одном ПК:

 <add name="redis" connectionString="host=localhost;db=[номер базы данных Redis];port=6379;

 

VMware предоставляет доступ с консоли к виртуальным машинам на удаленном узле - в этом проблема.

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

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

Нравится

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

Можно, с использованием IdentityServer. Сам сервер идёт с дистрибутивом в архиве, а его настройка описана на сайте академии, или на видео https://youtu.be/LymdVY2NbHY

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

В настройках стадий кейса есть возможность "Разрешать переход на стадию только для указанных пользователей". Это позволяет создавать фиксированные списки допущенных к операции.

Можно ли менять список пользователей, которым разрешено переходить на стадию кейса из бизнес-процесса?

 

Нравится

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

Не припомню такой опции, однако вопрос можно решить с помощью функционала описанного в видео https://www.youtube.com/watch?v=qpjdGuLBgqI&t=2127s



В вашем случае нужно бут опираться на виртуальную колонку в функции save.



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







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

Опираясь на записи из данного объекта вы сможете использовать вышеуказанное решение для допуска пользователе и ролей до операции, а также из процесса изменять записи в созданном объекте

Не припомню такой опции, однако вопрос можно решить с помощью функционала описанного в видео https://www.youtube.com/watch?v=qpjdGuLBgqI&t=2127s



В вашем случае нужно бут опираться на виртуальную колонку в функции save.



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







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

Опираясь на записи из данного объекта вы сможете использовать вышеуказанное решение для допуска пользователе и ролей до операции, а также из процесса изменять записи в созданном объекте

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

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

Наталья Стригина,

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

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

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

При создании привязки в конфигураторе появляется запись о привязки данных, но при её сохранении после просмотра, появляется ошибка:

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

Как правильно перенести изменённые данные из системных справочников?

Нравится

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

Вы привязали одни и те же данные несколько раз. Нужно удалить лишние привязки в пакете Custom

Вы привязали одни и те же данные несколько раз. Нужно удалить лишние привязки в пакете Custom

Для удобства переноса записей можно установить дополнение бесплатное с маркет плэйса Data binding tool for Creatio | Creatio Marketplace (terrasoft.ru) Там все просто и облегчает жизнь

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