Запрет на запись истории по объекту/действию при помощи файла настроек

В системе ELMA вся история действий с каждым объектом записывается в таблицу EntityModelHistory. Однако в некоторых случаях необходима возможность отключать историю по типам объектов и по типам событий.

Для таких случаев в системе ELMA, начиная с версий 3.11.36, 3.12.26 и 3.13.16, была добавлена возможность наложить запрет на запись истории по объекту/действию при помощи файла настроек - EntityModelHistorySettings.xml.

Файл настроек создается в папке конфигурации. По умолчанию это папка UserConfig, которая располагается в общей папке с файлами системы ELMA. Изменение отслеживается операционной системой, при изменении файла система ELMA пересчитывает запреты.

Запрет может быть наложен на объект системы или на действие. Файл по умолчанию содержит разделы для обоих типов запретов. Общая структура файла (пример):

<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?>

<EntityModelHistoryRestriction xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<EntityRestrictions>

<!--запрет определенных действий с объектом-->

<EntityRestriction>

<EntityName>Task</EntityName>

<ActionNames>

<string>Create</string>

<string>Update</string>

<string>Delete</string>

</ActionNames>

</EntityRestriction>

<!--запрет всех действий с объектом-->

<EntityRestriction>

<EntityName>WorkflowInstance</EntityName>

</EntityRestriction> </EntityRestrictions>

<ActionRestrictions>

<!--запрет действия с определенными объектами-->

<ActionRestriction>

<ActionName>Edit</ActionName>

<EntityNames>

<string>WorkflowInstance</string>

</EntityNames>

</ActionRestriction>

<!--запрет действия со всеми объектами -->

<ActionRestriction>

<ActionName>Create</ActionName>

</ActionRestriction>

</ActionRestrictions>

</EntityModelHistoryRestriction>

Файл настроек содержит 2 раздела:

  • EntityRestrictions;
  • ActionRestrictions.

EntityRestrictions задает правила для запретов по типу объекта. При указании действия запрет накладывается на конкретное действие, а без указания действия – на все действия объекта.

ActionRestrictions задает правила для запретов по действию. При указании типа объекта запрет накладывается на конкретный тип объекта, а без указания типа объекта – на все типы объектов.

Каждый раздел содержит вложенную структуру согласно формату xml-файлов. Наименования вложенных полей используются согласно примеру, изменять их по своему желанию нельзя (приведет к ошибке чтения файла).

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