Вопрос

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

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

1. В BaseCommunicationDetail существует биндинг поля enabled на метод getCommunicationEnabled, но метод getCommunicationEnabled не вызывается.
2. Сможем ли мы в теории посмотреть в таком методе на параметр новизны записи?

У меня такой же вопрос

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

Добрый день, Егор!

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

Этот метод достаточно сложно переопределить, так как он находится в BaseComunicationViewModel.

Проще переопределить метод getCommunicationItemViewConfig в BaseCommunicationDetail в котором модифицировать поле enabled у редактируемого поля.

А чтобы определить новый это объект создается или нет, можно в этой же детали добавить атрибут или переменную булеовго типа и переопределить метод addItem, в котором переменную (например, isNewItem) менять на true, тогда в getCommunicationItemViewConfig смотря на эту переменную вы определите дальнейшее поведение.

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

Добрый день.
На ContactPage есть деталь ContactCommunication.
Необходимо при удаления средства связи перемещать его в временную
таблицу, удалив из ContactCommunication

Подскажите как лучше это сделать.
p.s.Думали отловить удаленный элемент(ы) с детали.
Не получилось это сделать. Метод this.get("DeletedItems") в
методе save детали не возвращает values удаленных елементов.

У меня такой же вопрос

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

Вижу два пути
- тяжелый реализация на уровне субд - триггером;
- простой процесс со стартовым сигналом удаление записи

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

Вижу два пути
- тяжелый реализация на уровне субд - триггером;
- простой процесс со стартовым сигналом удаление записи

- Вес запроса зависит от его реализации:smile:
- Не получится. Необходимо определить процесс на событие "Перед удалением записи" непосредственно в объекте ContactCommunication.

"Демьяник Алексей" написал:Не получится

получится
ставите сигнал, получаете идентификатор, затем чтение данных из СредствСвязиКонтакта с id= идентификатору из первого элемента. А потом делайте с результатом чтения данных что хотите. Проверил на 7.7.0 - создал по факту удаления активность с заголовком = удаленному номеру :)
Для удаления номера использовал действие "удалить" в детали (см скрин)
Просто доверьтесь bpmonline :)

"Демьяник Алексей" написал:Необходимо определить процесс на событие "Перед удалением записи" непосредственно в объекте ContactCommunication.

это кстати тоже отличный вариант, но мозг измученный клиентским кодом его сразу не рассмотрел

Всем спасибо за советы.
Сделал через триггер, так как другой вариант через бизнес процесс для меня сложнее)

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