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

Добавление в запрос создающего запрос

Добрый день! Нужно добавить в запросы и инциденты(и наряды в будущем) поле, в которое автоматически добавлялся бы создающий запрос.

Начал с редактирования файла datamodel.itop-tickets.xml , куда добавил следующее поле -

<field id="creater_id" xsi:type="AttributeExternalKey"> <filter><![CDATA[Select User WHERE contactid = :this->contactid]]></filter> <dependencies> <attribute id="contactid"/> </dependencies> <sql>creater_id</sql> <target_class>User</target_class> <is_null_allowed>false</is_null_allowed> <on_target_delete>DEL_AUTO</on_target_delete> </field>

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

Текущий пользователь - :current_contact_id
Править datamodel “в живую” не рекомендуется. Нужно писать отдельные модули и подключать их через папку extensions.
Читайте здесь - https://wiki.openitop.org/doku.php?id=2_2_0:customization:start

Честно говоря, пока что нету времени разобраться как делать свои модули, так что я пока просто редактирую модель данных, фиксируя все сделанные изменения.

А в каком классе этот атрибут? Какой целевой класс ставить?

Вообще то контакт, создающий тикет, уже там есть. Это Инициатор - caller_id.
Зайдите в меню “Инструменты админа” -> “Модель данных” и внимательно посмотрите на Тикет и все, что из него получается. А :current_contact_id используется в запросах. Например выбрать все запросы, где в контактах сервисов присутствует текущих пользователь -
SELECT UserRequest AS u JOIN Service AS s ON u.service_id = s.id JOIN lnkContactToService AS l1 ON l1.service_id = s.id WHERE l1.contact_id = :current_contact_id

У меня caller_id это как правило люди, просто работающие в какой то организации, и в ITop у них учётки нет. То есть наша служба поддержки выглядит так: нам звонят люди, мы принимаем заявку(фиксируем инцидент), инициатором ставим звонящего(или создаём, если его ещё нет в контактах организации) и назначаем инженера для исполнения. В прочем, всё как у всех. Но для отчётности надо указывать ФИО нашего дежурного инженера, принявшего заявку. Так же необходимо, что бы начальство могло зайти в любой момент и посмотреть, какой инженер, сколько заявок принял, через поиск и фильтры.

То есть всё ещё надо найти возможность привязать через current_contact_id ФИО текущего пользователя

А с модулями, спасибо, разобрался, благодаря Вашему совету. Вчера даже успел наклепать парочку!:grinning:

Посмотрите этот модуль как пример