Документация

Документация по разработке bpm’online
Деактивация записей объектов

Glossary Item Box

Общие сведения

В bpm'online версии 7.11.3 появилась возможность деактивировать записи объектов системы для исключения их из бизнес-логики. Это может понадобиться, например, если данные устарели и больше не используются. Функциональность включается специальным свойством [Разрешить деактивацию записей] ([Allow record deactivation]) в дизайнере объектов (рис. 1) и становится доступной после публикации объекта.

ВАЖНО

В версии 7.11.3 эта функциональность по умолчанию выключена. Для ее включения необходимо установить значение true для настройки UseRecordDeactivation в файле ..\Terrasoft.WebApp\Web.config.

Рис. 1. — Свойство [Разрешить деактивацию записей] ([Allow record deactivation])

ВАЖНО

Функциональность деактивации записей объектов доступна для всех объектов, но автоматическая фильтрация записей работает только в выпадающих списках, на странице выбора из справочника и в быстрых фильтрах. На страницах с содержимым справочников, в расширенных фильтрах и разделах автоматический фильтр не применяется.

Использование в программном коде

В EntitySchemaQuery появился параметр UseRecordDeactivation, определяющий включение или отключение фильтрации по неактивным записям. По умолчанию этот параметр имеет значение false. Если ему присвоить значение true, то в запрос на выборку данных из объекта, где включена деактивация записей, будет добавлен фильтр, исключающий неактивные записи.

Пример использования в клиентском коде:

var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
   rootSchemaName: "MyCustomLookup",
   useRecordDeactivation: true
});

Пример использования в серверном коде:

var esq = new EntitySchemaQuery(userConnection.EntitySchemaManager, "ContactType") {
    UseRecordDeactivation = true
};
esq.PrimaryQueryColumn.IsAlwaysSelect = true;
var sqlQuery = esq.GetSelectQuery(userConnection).GetSqlText();
Console.WriteLine(sqlQuery);

Здесь переменной sqlQuery присваивается текст результирующего SQL-запроса, который после инициализации экземпляра EntitySchemaQuery будет иметь следующий вид:

SELECT
  [ContactType].[Id] [Id]
FROM [dbo].[ContactType] [ContactType] WITH(NOLOCK)
WHERE
  [ContactType].[RecordInactive] = 0

© Terrasoft 2002-2018.

Был ли данный материал полезен?

Как можно улучшить эту статью?