Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Новый топик    Ответить
 [Ensemble] Business rules.  [new]
AlexShiryaev
Member

Откуда:
Сообщений: 67
Добрый день!

Подскажите, пожалуйста, а возможно ли в Ensemble вызвать бизнес-правило из бизнес-операции? Или только из бизнес-процесса?
Если возможно, то подскажите как? Или ткните в документацию. Сам не нашел что-то.
Спасибо.
24 май 16, 12:03    [19211398]     Ответить | Цитировать Сообщить модератору
 Re: [Ensemble] Business rules.  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno -> Moscow
Сообщений: 2715
AlexShiryaev
Добрый день!

Подскажите, пожалуйста, а возможно ли в Ensemble вызвать бизнес-правило из бизнес-операции? Или только из бизнес-процесса?
Если возможно, то подскажите как? Или ткните в документацию. Сам не нашел что-то.
Спасибо.
А что вы хотите этим добиться ?
24 май 16, 12:06    [19211416]     Ответить | Цитировать Сообщить модератору
 Re: [Ensemble] Business rules.  [new]
AlexShiryaev
Member

Откуда:
Сообщений: 67
DAiMor
А что вы хотите этим добиться ?
Грубо говоря, есть список "замены". Т.е. значение определенного поля при определенных условиях нужно менять.
Ну и хотелось бы не зашивать справочник соответствий в код, а использовать правила.
Дело еще в том, что результат вывода формируется в бизнес-операции путем обращения к SQL, а затем вызывается вторая бизнес операция для сохранения результатов в файл XML через определенный адаптер. Бизнесс-процесс не используется.
Хотелось бы минимальными затратами времени и сил внести нужные изменения в существующую продукцию.
24 май 16, 12:15    [19211503]     Ответить | Цитировать Сообщить модератору
 Re: [Ensemble] Business rules.  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno -> Moscow
Сообщений: 2715
что-то вы описали только про безнес операции

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

так же и бизнес операция может отправить данные в бизнес процесс, где после преобразований на основании правил может отправиться уже в другую бизнес-операцию
24 май 16, 12:26    [19211599]     Ответить | Цитировать Сообщить модератору
 Re: [Ensemble] Business rules.  [new]
AlexShiryaev
Member

Откуда:
Сообщений: 67
так же и бизнес операция может отправить данные в бизнес процесс


Не знал. Спасибо. Попробую.
24 май 16, 12:32    [19211649]     Ответить | Цитировать Сообщить модератору
 Re: [Ensemble] Business rules.  [new]
EvLaUy
Member

Откуда: Москва
Сообщений: 2251
Коллеги, или путаница в терминологии, или я отстал от жизни. Насколько я помню технологический цикл Ensemble, то он такой: входной адаптер - бизнес-служба - бизнес-процесс - бизнес-операция - выходной адаптер. Что есть "бизнес-правило" и как его можно "вызвать"? Эта сущность наравне с перечисленными формализована в документации и присутствует в Инспекторе сущностей Ensemble?
24 май 16, 21:37    [19214825]     Ответить | Цитировать Сообщить модератору
 Re: [Ensemble] Business rules.  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno -> Moscow
Сообщений: 2715
EvLaUy,

да цикл, примерно такой, все верно, и любой элемент необязательный, бизнес правила, не могу сказать когда появились (сам не работаю активно с Ensemble), но они позволяют управлять тем какая бизнес операция будет выполнена или другой процесс, бизнес-правила позволяют анализировать входящие данные например по типу данных. По сути это часть процесса маршрутизации
вот пример настроенного правила из документации
Картинка с другого сайта.
Документация
24 май 16, 22:40    [19215126]     Ответить | Цитировать Сообщить модератору
 Re: [Ensemble] Business rules.  [new]
EvLaUy
Member

Откуда: Москва
Сообщений: 2251
Спасибо, понял. Значит, отстал от жизни, давно уже не делал проектов в Ensemble. Прогресс не остановить. Получается, сумели уже и этот момент формализовать, молодцы.
25 май 16, 10:03    [19216147]     Ответить | Цитировать Сообщить модератору
 Re: [Ensemble] Business rules.  [new]
AlexShiryaev
Member

Откуда:
Сообщений: 67
Добрый день!

Не буду плодить темы. Спрошу здесь.
Есть класс
Class Class1 Extends %SerialObject
Property1
Property2

и т.д. (не столь важно).
Есть второй класс
Class Class2 Extends %SerialObject
Property1
Property2 as list of Class1


Далее создаю бизнес-правило с ContextClass=Class1. В настройках правила вижу нужные Property и могу с ними работать. Все нормально.
Далее, создаю вызов правила в бизнес-процессе. В поле RuleContext указываю Class2.Property2.GetAt(i). Компилируется все нормально, но при вызове бизнес-процесса получаю ошибку
<PROPERTY DOES NOT EXIST>zS10+2^BusinessProcessBPL.Thread1.1 *%Process,Class1

Что в принципе и понятно, в классе Class1 нет такого Property как %Process.
Как избежать ошибки? Или при создании правила, его контекст должен использовать только контекст бизнес-процесса? (пробовал ставить BusinessProcessBPL.Context, все работает, но не удобно обращаться к вложенным классам в контексте бизнес-процесса).

PS
Cache for Windows (x86-64) 2010.2.7 (Build 1004_0_11142U) Wed Dec 21 2011 15:29:56 EST
16 июн 16, 14:00    [19300243]     Ответить | Цитировать Сообщить модератору
 Re: [Ensemble] Business rules.  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13226
AlexShiryaev
Как избежать ошибки?

Писали уже не раз - не используй "составные" поля.
16 июн 16, 16:51    [19301298]     Ответить | Цитировать Сообщить модератору
 Re: [Ensemble] Business rules.  [new]
AlexShiryaev
Member

Откуда:
Сообщений: 67
krvsa,

Не совсем понял, что значит "составные" поля?
16 июн 16, 17:13    [19301417]     Ответить | Цитировать Сообщить модератору
 Re: [Ensemble] Business rules.  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13226
AlexShiryaev
что значит "составные" поля?

Поля типа:
- массив
- коллекция
17 июн 16, 08:24    [19303378]     Ответить | Цитировать Сообщить модератору
 Re: [Ensemble] Business rules.  [new]
AlexShiryaev
Member

Откуда:
Сообщений: 67
krvsa,

И все равно не понятно, как это поможет решить проблему. Мне нужно, чтобы в качестве контекста правила выступал не класс контекста бизнес-процесса, а другой класс (свой). Настройка правила это позволяет, проблем нет, но вот код, который автоматически генерится при компиляции бизнес-процесса не работает с данным классом.
17 июн 16, 09:48    [19303628]     Ответить | Цитировать Сообщить модератору
 Re: [Ensemble] Business rules.  [new]
AlexShiryaev
Member

Откуда:
Сообщений: 67
Вобщем, пришлось создать Class3 как Extends (Class1, Ens.BP.Context)
С ним все работает. Вот только копировать значения всех полей из экземпляра в экземпляр муторно в BPL бизнес-процессе...
Поискал и нашел решение (не знал такого раньше):
 set cd=##class(%Dictionary.ClassDefinition).%OpenId("Class1")
 
for iii=1:1:cd.Properties.Count()
 
{
   
set $PROPERTY(context.Class3,cd.Properties.GetAt(iii).Name)=$PROPERTY(context.Class1,cd.Properties.GetAt(iii).Name)
 
}
17 июн 16, 15:23    [19305601]     Ответить | Цитировать Сообщить модератору
 Re: [Ensemble] Business rules.  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13226
AlexShiryaev
Мне нужно, чтобы в качестве контекста правила выступал не класс контекста бизнес-процесса, а другой класс (свой). Настройка правила это позволяет, проблем нет, но вот код, который автоматически генерится при компиляции бизнес-процесса не работает с данным классом.

Для меня это все звучит как
"AlexShiryaev"
Бала блабла, блабла, блабла, блабла, блабла, блабла, блабла, блабла, блабла ...

Т.ч. извини.
20 июн 16, 09:03    [19312783]     Ответить | Цитировать Сообщить модератору
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Ответить