iTop ITSM & CMDB по-русски

Возможность выбора даты и времени при переводе запроса в статус Решен

Очень хочется иметь возможность выбора даты и времени при переводе запроса в статус “Решен”. Как использовать данный плагин для этих целей? Версия iTop 2.7.2

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

Задача делится на две:

  1. показать поле Дата решения (я так понял, его хотите заполнять руками) на форме перевода в Решенный;
  2. отключить автоматическое заполнение поля датой фактического перевода в Решен.

Для решения потребуется минимальная доработка XML-модели (разумеется, в собственном отдельном модуле, а не в исходном datamodel-файле).

Первый пункт решается переопределением (_delta="redefine") флагов для атрибута resolution_date в статусе resolved. Изначально там только read_only, нужно добавить must_prompt и mandatory. Путь до переопределяемого узла: itop_design>classes>class#UserRequest>lifecycle>states>state#resolved>flags>attribute#resolution_date.

<attribute id="resolution_date" _delta="redefine">
	<mandatory/>
	<must_prompt/>
	<read_only/>
</attribute>

Для решения второго пункта нужно удалить из списка действий перехода ev_resolve статуса assigned действие SetCurrentDate.


Но у узлов action не заданы id, поэтому удалить (_delta="delete") конкретный узел нельзя. Придется переопределять весь узел actions, оставив там только нужные action. Путь до переопределяемого узла: itop_design>classes>class#UserRequest>lifecycle>states>state#assigned>transitions>transition#ev_resolve>actions.

Поле resolution_date продолжит заполняться текущей датой при автоматическом решении тикета (ev_autoresolve), которое срабатывает для дочерних при решении родительского. Подумайте, может имеет смысл добавить отдельное поле для указания нужный даты, оставив заполнение resolution_date автоматическим.

Добрый!
Первая часть задачи успешно решена, при переводе тикета в статус Решен, появилась возможность выбора даты и времени. Но в БД все равно записывается реальное время.
Вот ХМЛ из папки расширений

![add|690x373]
Еще я пробовал использовать функцию SetIfNull вместо SetCurrentDate. Тот же результат

Копипаста до добра не доведёт) Что такое _created_in и _altered_in?

<attribute id="resolution_date"> переопределён, а вот <actions> – нет.
https://www.itophub.io/wiki/page?id=2_7_0%3Acustomization%3Axml_reference#alter_node_contents

СПАСИБО!!! Я из описания просто понял что переопределять можно только аттрибуты, оказывается и переходы.

Владимир, из под моей (админской учетки) все работает. У агента возможность выбора даты/времени есть, но в БД попадает реальное время. На пробу дал права админа - тоже все ОК. Ткните, плз, носом что читать. В документации линк Access rights, выдает ошибку

Переопределять, удалять, добавлять можно любой узел (node) XML-структуры. Главное – айтоп должен однозначно этот узел идентифицировать. У <attribute> есть id, а у <action> его нет, поэтому мы не можем сказать айтопу, какой <action> хотим удалить, и переопределяем весь родительский узел <actions> целиком. Внутри <transition> может быть только один узел <actions> (по схеме), так что в этом случае у айтопа не возникает проблем с идентификацией.

Так не бывает. Код один, и в этом месте от профиля пользователя он не зависит.