Доброго времени суток! Возник затык с казалось бы простой задачей.

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

Вопрос: возможно ли реализовать обновление страницы после завершения активности? Используя для этого только клиентскую часть?

Пробовала прикрутить методы this.reloadEntity(), но проблема в том, что не удается "поймать" момент завершения активности. Подскажите, пожалуйста, возможно ли в странице редактирования получить значение состояния активности?

Способ с ActivityEventListener не подходит. 

 

Нравится

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

Добрый день,

 

Я тут вижу два варианта:

 

1) На событии после сохранения активности в DCM

(доступно из расширеных настроек активности

) сделать логику отправки серверного сокет сообщения на клиент, а на клиенте на карточке оформить подписку (и уничтиожение) на определенное сообщение. По получению сообщения обновлять страницу редактирования.

 

2) При отработке метода save из ActivityMiniPage реализовать отправку sandbox сообщения в модуль нужной страницы редактирования и обновлять страницу по получению этого сообщения.

Oscar Dylan,

спасибо за ответ. Выбрала второй способ через сообщения. Реализовала отправку сообщения , но при попытке завершить активность нажатием на кнопку "сохранить" выпадает ошибка: message name_message is not define in MiniPageModule (ViewModule_MiniPageListener_MiniPage_ActivityMiniPage) module.

Не понимаю где ещё  нужно объявить это сообщение, кроме как в activityMiniPage и нужной страницы редактирования ?

Если можно на смену стадии кейса, то можно посылать сообщение из бизнес-процесса, который стартует по изменению стадии заказа

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

Добрый день,

Подскажите, пожалуйста, где можно добавить новое поле на данную форму. Форма открывается, если в action dashboard нажать на кнопку "Complete" на активности.

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

Нравится

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

Ищите пример в ActivityMiniPage (UIv2).

Вам нужно будет кодом добавить элемент в родительский контейнер ResultsContainer и в ResultInfoContainer. Или вообще сделать свой контейнер (или или элемент), настроить "видимость" через bindTo на метод isEditableResultsVisible

 

Пример элемента:

{

                "operation": "insert",

                "parentName": "ResultsContainer",

                "propertyName": "items",

                "name": "ProcessResult",

.........

 

если это справочник с "выпадающим списком", то нужно повторять свою логику, как методах onPrepareProcessResultList и ProcessResultList.

 

или вот еще пример элемента  

  

 {

                "operation": "insert",

                "parentName": "MiniPage",

                "propertyName": "items",

                "name": "DetailedResult",

........

 

В принципе можно добавить элемент через мастер, а потом в коде прописать видимость. 

"visible": {  "bindTo": "isEditableResultsVisible" // или какой-то другой метод.

 

Само поле добавлял через мастер редактирования раздела, а потом в созданной схеме руками дописывал в секции values для созданного поля значения :

"wrapClass": ["container-mini-wrap"],
"controlWrapConfig": {
	"classes": {
		"wrapClassName": ["control-mini-wrap"]
	}
},

 

Ищите пример в ActivityMiniPage (UIv2).

Вам нужно будет кодом добавить элемент в родительский контейнер ResultsContainer и в ResultInfoContainer. Или вообще сделать свой контейнер (или или элемент), настроить "видимость" через bindTo на метод isEditableResultsVisible

 

Пример элемента:

{

                "operation": "insert",

                "parentName": "ResultsContainer",

                "propertyName": "items",

                "name": "ProcessResult",

.........

 

если это справочник с "выпадающим списком", то нужно повторять свою логику, как методах onPrepareProcessResultList и ProcessResultList.

 

или вот еще пример элемента  

  

 {

                "operation": "insert",

                "parentName": "MiniPage",

                "propertyName": "items",

                "name": "DetailedResult",

........

 

В принципе можно добавить элемент через мастер, а потом в коде прописать видимость. 

"visible": {  "bindTo": "isEditableResultsVisible" // или какой-то другой метод.

 

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