Создание собственных объектов (модулей)

Знакомлюсь с BPMonline. Создала новый объект (таблицу), создала страницу для редактирования. Делала все это через конфигурацию. Хочу так же создать на странице стандартные кнопки Ok и Cancel. Мне нужно самой для этих кнопок писать функциональность? Или есть возможность, как в TerraSoft, указать, что это кнопки со стандартной функциональностью (типа кнопка Ок имеет ModalResult = wmrOk)? Если самой - то есть какое-нибудь описание функциональности?

И еще вопрос. Как вообще правильно создавать в BPMonline новые объекты (модули)? В TerraSoft это делалось через специальный запрос (C:\Program Files\Terrasoft 3.4.1\Bin\TSClient.exe /wnd=wnd_CreateNewWorkspace). И тогда объект уже имел и все необходимые страницы - и для отображения грида, и страницу редактирования, и рабочее пространство. Даже можно было указать где отображать модуль. Есть нечто похожее для BPMonline?

Нравится

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

Немного разобралась. Для стандартных страниц надо указывать родительный класс - типа базовая страница реестра или базовая страница раздела. Тогда все стандартные кнопки сразу появляются. Но вот где получить точную информацию о том, какие базовые вещи должны быть оформлены при создании нового модуля? При добавлении нового раздела в рабочее места, программа указала, что не может найти элементов мое_имяFolder и мое_имяInFolder... Потыкавшись в стандартные разделы, я создала такие же элементы для своего модуля. Но судя по всему, есть еще куча всяких стандартных вещей. Хорошо бы заранее знать такую информацию. Возможно есть где-то документация?

На данном этапе у меня проблема с кнопкой "Добавить" - в гриде. Т.е. не могу добавить новую запись - выдается ошибка.

Но с другой стороны я нигде и не указывала какую страницу для редактирования открывать. Не могу найти, где это можно указать.

Заодно еще спрошу - я хочу удалить одну страницу. Я некорректно создала ее. Отметила на удаление. Но она не удаляется. Стоит как отмеченная на удаление. Как ее можно окончательно удалить? Потому как есть подозрение, что ошибка именно из-за нее вылетает. Потому как это некорректно созданная страница для редактирования. Новую страницу я создала, а эту не могу удалить.

"Наталия П." написал:На данном этапе у меня проблема с кнопкой "Добавить" - в гриде. Т.е. не могу добавить новую запись - выдается ошибка.

Но с другой стороны я нигде и не указывала какую страницу для редактирования открывать. Не могу найти, где это можно указать.


Наталия, похоже, что это из-за отсутствия страницы. Её можно указать в разделе "Рабочие места" на детали "Карточки редактирования" или же, если этого требуют обстоятельства, хардкодом в процессе грида.


Заодно еще спрошу - я хочу удалить одну страницу. Я некорректно создала ее. Отметила на удаление. Но она не удаляется. Стоит как отмеченная на удаление. Как ее можно окончательно удалить? Потому как есть подозрение, что ошибка именно из-за нее вылетает. Потому как это некорректно созданная страница для редактирования. Новую страницу я создала, а эту не могу удалить.

Если вы разрабатываете в своей конфигурации (а не общей TSBpm) и ещё не переносили изменения на TSBpm, то можно в меню правой кнопки выбрать "отменить изменения" и страница удалится целиком.

Если есть доступ к БД, можно удалить нужные записи из таблицы SysSchemaInSolution. Найти страницу можно по полям Name и Caption. Перед удалением запомнить значение поля SysSchemaId в удаляемой строке и удалить эту строку из таблицы SysSchema. С одной SysSchema может быть связано несколько SysSchemaInSolution, не забыть удалить все их.

Удалённые (перечёркнутые) страницы не должны влиять на ошибки, проблема в другом.

Спасибо. А как насчет этого вопроса :
Но вот где получить точную информацию о том, какие базовые вещи должны быть оформлены при создании нового модуля? При добавлении нового раздела в рабочее места, программа указала, что не может найти элементов мое_имяFolder и мое_имяInFolder... Потыкавшись в стандартные разделы, я создала такие же элементы для своего модуля. Но судя по всему, есть еще куча всяких стандартных вещей. Хорошо бы заранее знать такую информацию. Возможно есть где-то документация?

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

Процедура создания стандартного раздела выполняется в несколько этапов:

1. Создание основного объекта раздела. Например, для раздела “Контрагенты” таким объектом является “Контрагент”, а для раздела “Контакты” – “Контакт”. Объект раздела должен содержать колонки для хранения данных записей раздела.
2. Создание объектов “группа” и “элемент в группе” для корректной работы группировки записей в разделе.
3. Создание страницы карточки раздела, при помощи которой пользователь сможет добавлять новые, а также редактировать добавленные ранее записи раздела.
4. Создание страницы основного реестра раздела, который будет содержать записи раздела.
5. Создание страницы самого раздела, с помощью которой формируется структура раздела, в частности, эта страница содержит основной реестр раздела, дерево групп и область деталей.
6. Регистрация раздела в системе.

Для создания объектов и страниц используются дизайнер объектов и дизайнер страниц, соответственно. Для регистрации раздела в системе используется раздел “Рабочие места”.

Спасибо. Это действительно полезная информация. И я бы сюда еще добавила (для других новичков-разработчиков), что при создании страницы раздела необходимо указать страницу реестра для данного объекта.
А так же, при регистрации объекта в разделе "Рабочие места", необходимо указать для раздела карточку редактирования, детали и печатные формы (если они уже созданы).

Просто жаль, что все эти вещи приходится осваивать методов тыка (как в моем случае). Хотелось бы видеть такие азы в виде документации. Потому как сейчас, с такими инструкциями, для создания объекта с нуля, нужно пару часов (максимум), а я потратила во всеми ошибками и ожиданиями ответов на свои вопросы 2 рабочих дня.

Наталья, спасибо за вопросы, которые рассмотрели в данном топике!
Информацию на форуме постоянно мониторят наши разработчики и многое из пожеланий вносится в Террасофт. Не исключено, что и данный запрос будет реализован.

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

Если есть доступ к БД, можно удалить нужные записи из таблицы SysSchemaInSolution. Найти страницу можно по полям Name и Caption. Перед удалением запомнить значение поля SysSchemaId в удаляемой строке и удалить эту строку из таблицы SysSchema. С одной SysSchema может быть связано несколько SysSchemaInSolution, не забыть удалить все их.

Удалённые (перечёркнутые) страницы не должны влиять на ошибки, проблема в другом.

То есть удалять только руками в БД?

Ув. Александры, для удаления записи SysSchema и связанных с ней записей SysSchemaInSolution можно просто удалить запись в таблице SysSchema. В БД стоит каскадная связь, которая удалит Вам записи из SysSchemaInSolution.
Наталья, в конфигурации TSBpm удалить запись страницы можно только через БД. Но если в Вашей конф пометить страницу для удаления, затем перенести изменения в конф TSBpm, с Вашей конфигурации страница удалится, а в TSBpm (извините за тавтологию) она только будет помечена, как удаленная. На компиляцию эта страница влиять не будет.
И еще, для того чтобы узнать SysSchemaId определенной страницы, можно открыть эту страницу в дизайнере и в адресной строке у Вас будет ...&Id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX... (у вас на скриншоте это пустое значение). Это и есть SysSchemaId страницы. После выполнить SQL в БД:
DELETE SysSchema
WHERE Id = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX';

Здравствуйте, Александр!

Действительно, удалить сервис можно руками из БД, но мы практикуем следующий подход, создаем дополнительную конфигурацию, после чего дорабатываем все что необходимо в ней, тестируем, переносим в рабочую конфигурацию.
Если что-то не нравится в тестовой конфигурации - ее можно удалить, создать еще одну тестовую, продолжать дорабатывать свои пожелания в ней.
Как показала практика, рабочая конфигурация мало используется для доработок.

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