Фильтры

Доброго дня. 
В нас є продукт, в якому близько 15 нових розділів.
Звісно є потреба "конвертувати" його у новий пакет та перевести до нового дизайну. 

Спробували це зробити на 8.0.1 та 8.0.2. Не дивлячись на помилки які є зараз не хватає створення розділу та деталі по наявному об'єкту.

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

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

Богдан, добрий день!

 

Вже є зареєстроване побажання щодо створення розділу та деталі по об'єкту. Ми додамо ваше звернення для підвищення пріоритету реалізації функціоналу в майбутніх версіях.

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

Если в установленном накаткой пакете только 1 внешняя сборка и нет других файлов, то при выгрузке в файловую систему и компиляции данная сборка не видна для конфигурации, соответственно компиляция не происходит.

 

Например:
Пакет А - в нем сборка.
Пакет Б - в нем C# схема, что ссылается на сборку.
При выгрузке в ФС и компиляции ошибка в схеме, так как она не видит сборки.

 

Временное решение:
Проставить пакету свой Maintainer и InstallType, чтобы пакет выгрузился в Terrasoft.Configuration\Pkg. Тогда работает.

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

На данный момент вложения чатов сохраняются в базу данных.
Метод SaveFileFromStream класса OmnichannelProviders.AttachmentsDownloader использует стандартный метод entity.SetStreamValue("Data", ms).
Метод SaveFile класса Terrasoft.Configuration.Omnichannel.Messaging.OmnichannelOutcomeMessagingService использует стандартный метод entity.SetStreamValue("Data", attachment.Content).

При этом с недавнего времени появились абстрактные интефейсы для работы с файлами в системе (Terrasoft.File).
https:/academy.terrasoft.ua/docs/developer/back_end_razrabotka/api_dlya_raboty_s_fajlami/obzor

Несмотря на отдельно настроенное с помощью интерфейсов хранение файлов не в БД а на диске (или возможное любое другое), чаты все ровно сохраняют файл по старому в БД.

Идея:
Доработать матоды OmnichannelProviders.AttachmentsDownloader.SaveFileFromStream и Terrasoft.Configuration.Omnichannel.Messaging.OmnichannelOutcomeMessagingService.SaveFile, чтобы они работали через интерфейсы Terrasoft.File.

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

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

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

Кто знает где скачивать обновленные версии helm-пакетов ExchangeListener? Для пакетов Docker есть bpmonline/exchangelistener Tags

Если верить статье , то актуальная версия должна быть в документации. Но там не актуальная версия. Саппорт предоставил более новую версию.

Террасофт! создайте единое хранилище версий по типу версий системы https://ftp.creatio.com/support/downloads/!Release/installation_files/

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

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

1. EventListener'ы выполнялись согласно иерархии пакетов (в случае если у них один общий предок - BaseEntityEventListener).

2. Реализовать возможность вызова переопределенного Listener'а

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

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

Не думаю, что данная проблема на самом деле проблема.

Вся логика описана в листенере - подразумевает под собой, что ее не нужно переопределять (так работают модули на JS, переопределять нельзя, но наследоватся можно).

Если необходимо в разных пакетах вызывать логику в определенном порядке, и изменять ее (оверрайд), то логику можно вынести в хелпер (А) - отдельный класс в котором реализована вся логика. А уже в листенере  создавать фабрикой екземпляр данного хелпера и вызывать его метод.
В такой архитектуре есть возможность в наследуемом пакете добавить класс (Б) наследник хелпера и пометить атрибутом [Override].
Тогда при создании екземпляра А в листенере первого пакета по факту создастся екземпляр класса Б, где уже будет дописана или изменена логика.

Владислав Литвинчук,

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

Пример: в классе EventListener на OnInserting вызвался метод "SetName" который установил для колонки "Name" некое значение. Переопределить эту логику мы не можем и отменить ее выполнение тоже не можем, и гарантировать, что новая логика будет выполнятся позже старой тоже...

Остается только городить костыли на OnSaving, либо вообще уже после создания записи.

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