Возможно кто-то сталкивался с такой проблемой в BPMOnline 7.2:
Есть класс Service, определенной в пакете Package поставляемой от Terrasoft. Требуется изменить логику работу в нем метода Send. Но, тут возникала проблема, что в пакете Package метод Send вызывается следующим образом:

new Service(UserConnection).Send();

В результате механизм замещения классов не работает через атрибут Override и IOC:
ClassFactory.GetService>(new ConstructorArgument("userConnection", UserConnection));

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

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

Нравится

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

Здравствуйте.
Нужно определить какого типа эта схема. Если это SourceCodeSchema, то отключить или заместить не получится.

"Александр Зубков" написал:

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

Нужно определить какого типа эта схема. Если это SourceCodeSchema, то отключить или заместить не получится.


Да, схема типа SourceCodeSchema. Печально, но может быть есть какой-то вариант? Как-то поменять код в самой базе?

"Александр Красноперов" написал:Как-то поменять код в самой базе?

Разблокируйте схему да поправьте, времени кучу сэкономите...
Про то, что будет с поддержкой конфигурации в этом случае, вам расскажет сам Terrasoft, хотя с версией 7.2 я бы не задумывался уже :)

"Александр Кудряшов" написал:
Александр Красноперов пишет:

Как-то поменять код в самой базе?

Разблокируйте схему да поправьте, времени кучу сэкономите...

Про то, что будет с поддержкой конфигурации в этом случае, вам расскажет сам Terrasoft, хотя с версией 7.2 я бы не задумывался уже :)


Спасибо за ответ.

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

Здравствуйте.
Для SourceCodeSchema можно попробовать заместить её и полностью переписать код:
1. Заместить схему.
2. Скопировать контент базовой схемы
3. Переписать код нужного метода.

"Котенко Александр" написал:

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

Для SourceCodeSchema можно попробовать заместить её и полностью переписать код:

1. Заместить схему.

2. Скопировать контент базовой схемы

3. Переписать код нужного метода.

С уважением, Котенко Александр.


А как это можно сделать?
В 7.2 я не вижу возможности заместить схему типа "Исходный код", для клиентских схем - такая возможность есть, а вот для исходного кода - нет

Добрый день.
Действительно, для схемы типа "Исходный код" не получится. Похоже это было доступно в более ранних версиях.

"Александр Зубков" написал:

Добрый день.

Действительно, для схемы типа "Исходный код" не получится. Похоже это было доступно в более ранних версиях.


Самое интересное, что есть не доступная галочка в свойствах схемы. Да и выгружается признак в json о родителе.
Эх, добавили проблем на ровном месте :(

Галочку, наверное, просто, не убрали из интерфейса.

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