Перенос страницы Email из Активности в отдельную страницу

Пытаюсь вынести страницу Email из раздел Активности в новый раздел EmailAct.

 

Идея была привязать две раздел на один объект и перепривязать или скопировать страницу Email.

 

Для этого создал новый раздел Email и объект EmailAct. После этого в таблица "SysModuleEntity" у нового раздел (значение "Id" взят из таблицы "SysModule" поле "SysModuleEntityId" для EmailAct) указал в поле "SysEntitySchemaUId" как для Активности.

-------

Далее попытался сменить "Code" в "SysModule" с 'EmailAct' на 'Activity'. Но вместо привязки записей из Активности в Email -> получаю два раздел Email без записей.

 

Не подскажите - что я сделал не то?

И как правильно выполнить поставленную задача?

 

Планировалось, что объект активности так и останется активности, просто раздел Активности будет иметь фильтр по тип не равно Email, а раздел Email будет копией Активности, но с фильтру по тип равно Email

 

Спасибо!

 

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

Если кто знает армянский - можете на нем ответить - мне будет более просто.

Прикрепленные файлы

Нравится

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

Для начала в схеме Section, нового раздела нужно как минимум поменять таблицу привязки. Далее нужно в той же схеме прописать фильтр:

getFilters: function() {
                var filters = this.callParent(arguments);
                filters.add("EmailFilter", this.Terrasoft.createColumnFilterWithParameter(
                    this.Terrasoft.ComparisonType.EQUAL, "Type", ConfigurationConstants.Activity.Type.Email
                ));
                return filters;
            }

Следующий шаг это сделать что бы открывалась нужна страница, я бы создал новый пейдж и унаследовался от EmailPageV2, и перебиндил бы её в таблице SysModueEdit

Точная версия ПО: 7.17.3.1.377

Переносить емейл, уже звучит как не очень хорошая идея, так как "хвостов" среди бд/системной и бизнес логики, может быть очень много, те же самые темплейты. Если бы описали саму задачу, ту что шире, что-то можно было бы подсказать.

Можно ли это сделать? Да. 
Есть ли лучший способ решить задачу? Думаю, что тоже да.

Стас Гаврилюк,

Сейчас email находится в Активности.

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

Не подскажите - как это лучше сделать?

Стас Гаврилюк,

Идея была в том, чтобы создать новый раздел ссылающийся на объект активности и имеющий фильтрацию по тип = email. А у Активности добавить фильтрацию по тип не равно email.

 

Стас Гаврилюк,

Хотелось бы прочитать - как лучше это сделать?

Max Froggy,
Т.к. email активностей может быть много - нужно сделать раздел вноль как раздел Активности,

 

Вас смущает количество писем в будущем? Если только это, то не стоит ради этого создавать новый раздел или таблицы, не вижу тут потребности, или же вы не полностью описали задачу.

Стас Гаврилюк,

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

Я хоть и часто работал с C#/JS и Creatio не совсем понимаю, как это сделать...

Стас Гаврилюк,

Скажите хоть - как бы вы решали такую задачу?

Стас Гаврилюк,

Очень прошу помочь...

Да сами ответили Да на оба вопроса, неужели нет идей, как это сделать?

Для начала в схеме Section, нового раздела нужно как минимум поменять таблицу привязки. Далее нужно в той же схеме прописать фильтр:

getFilters: function() {
                var filters = this.callParent(arguments);
                filters.add("EmailFilter", this.Terrasoft.createColumnFilterWithParameter(
                    this.Terrasoft.ComparisonType.EQUAL, "Type", ConfigurationConstants.Activity.Type.Email
                ));
                return filters;
            }

Следующий шаг это сделать что бы открывалась нужна страница, я бы создал новый пейдж и унаследовался от EmailPageV2, и перебиндил бы её в таблице SysModueEdit

Стас Гаврилюк, огромное спасибо

как минимум поменять - поменять что?

Стас Гаврилюк,

Проблемка единственное, при клике на Email выделяется почему-тоАктивности

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

 

В приложении существует три основные таблицы в которых хранится информация о разделе:  SysModule, SysModuleEntity, SysModuleEdit.

SysModule - таблица, где хранятся сама информация про раздел.
SysModuleEntity - таблица связи раздела и SysModuleEdit. В ней хранится информация про типизацию страниц.
SysModuleEdit - информация про страницы редактирования раздела.

 

Более детально о таблицах SysModuleEdit и SysModuleEntity можно прочитать здесь:
https://community.terrasoft.ua/articles/tablicy-sysmoduleedit-i-sysmodu…

 

Что касается SysModule:
 [Caption] - Название раздела (можно брать caption объекта раздела.
[SysModuleEntityId]  - колонка Id записи таблицы SysModuleEntity из первого этапа (проверка Select Id from SysModuleEntity Where SysEntitySchemaUId='AF6DD4AD-1398-4FCE-8837-78DC65AE0F9E')
[Code] - Название объекта раздела;
[SectionModuleSchemaUId] - UId модуля SectionModuleV2 с помощью которой открывается схему раздела;
[SectionSchemaUId] - колонка Uid страницы раздела объекта (например, "UsrRK1Section") в таблице SysSchema (проверка Select Uid,Name,Caption from SysSchema where name like '%UsrRK%'). 

Что касается Вашей проблемы рекомендую проверить корректно ли заполнены все привязки в данных таблицах.

 

Вот некоторые моменты с которыми пользователи часто сталкиваются при создании этого раздела:
- Вы можете использовать в таблице SysModuleEdit ( колонка CardSchemaUId) схему базовой странице редактирования EmailPageV2.
- Проверьте установлена ли связать этой записи в таблице SysModuleEdit с таблицей SysModuleEntity Вашего раздела.
- Также проверьте что в таблице SysModule Вашего раздела указана корректная запись из таблице  SysModuleEntity.

 

С уважением,

Катя

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