Добрый день! Нужно добавить в запросы и инциденты(и наряды в будущем) поле, в которое автоматически добавлялся бы создающий запрос.
Начал с редактирования файла 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>
Но пока безрезультатно. Я так понимаю, мне надо вытащить реквизит однозначна определяющий, какой пользователь сейчас работает в этом сеансе, но вот как это сделать, пока не знаю…
Честно говоря, пока что нету времени разобраться как делать свои модули, так что я пока просто редактирую модель данных, фиксируя все сделанные изменения.
А в каком классе этот атрибут? Какой целевой класс ставить?
Вообще то контакт, создающий тикет, уже там есть. Это Инициатор - 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 ФИО текущего пользователя
А с модулями, спасибо, разобрался, благодаря Вашему совету. Вчера даже успел наклепать парочку!