Добавить в список "Персональный компьютер" столбец Контакты

Спасибо, но мне не нужно добавлять новое поле на форму. Мне необходимо вывести столбец с ФИО контакта при формировании отчета и только, то есть нет необходимости на постоянной основе добавлять новое поле в класс.

Насколько мне известно, чтобы вывести какое-то значение из БД, нужно, чтобы это значение там хранилось, чтобы оно там хранилось, его нужно туда как-то записать.
Если у вас нет аттрибута на форме, то как вы его записываете в БД?
Импортом?

Начинаем викторину!:nerd_face: Мой вариант ответа: через вкладку “Контакты” в КЕ.:upside_down_face:

В этом случае, в ячейке Пользователь должна быть вложенная таблица, ведь контактов у нас может быть много… Или iTop умеет делать конкатенацию налету?

Коллеги, изначально постановка задачи звучала так:

Подскажите пожалуйста как отобразить в списке “Персональный компьютер” столбец с назначенным контактом? Нужно для того что бы при создании отчета было понятно кто работает за компьютером.

То есть мне нужно добавить в отчет столбец main_user_id, который был бы связан с контактом в КЕ. Как я уже говорил, контакты для каждой КЕ “Персональный компьютер” назначены.

Видимо, мы никогда не узнаем, как именно они оказались “назначены”)

Чтобы отобразить столбец с “назначенным” контактом, этот столбец нужно создать в XML (новое поле) и заполнить в интерфейсе. Добавление связанных контактов через вкладку Контакты ничего общего с этим не имеет. Контакты из вкладки нельзя вывести в столбец списка объектов. Айтоп это не инструмент для построения отчетов. Для этой задачи лучше воспользоваться более специализированными средствами.

Стандартно, через интерфейс iTOP, открываем КЕ “Персональный компьютер”, переходим на вкладку Контакты, нажимаем на кнопку “Добавить Контакт…” в новом окне из списка контактов выбираем нужные контакт и нажимаем на кнопку “Добавить”

Далее, при формировании отчета стандартными средствами iTOP - по сути отчет - это сводная таблица с уже заполненными в iTOP полями, я бы хотел среди прочего видеть столбец “Фамилия” ( main_user_id) где напротив персонального компьютера отображался бы ФИО ранее привязанного (назначенного) контакта. У меня сейчас этот столбец пустой:

Я уже не знаю как еще более доходчивее объяснить мою задачу.

Еще раз, это стандартный отчет iTOP без каких либо вычислений, требуется отобразить в отчете столбец, который ранее уже был заполнен.

Не понимаю зачем нужно создавать новое поле в XML если оно уже существует и находится на вкладке Контакты КЕ “Персональный компьютер”.

Понимаете, есть такая штука как тип связи. Он может быть 1:1 - один объект может быть связан только с одним другим объектом или 1:N - один объект может быть связан с множеством других объектов.
Табличные представления, как правило, строятся только по связям 1:1, поскольку в таблице для каждой связи, фактически, отведён один столбец. И в ячейке может быть только одно значение.
Связь Контакты имеет тип 1:N, т.е. у одного компьютера может быть несколько контактов (с точки зрения структуры БД). поэтому включить эту связь в табличное представление не представляется возможным.
Есть системы, которые умеют обрабатывать подобные случаи, но iTop пока не умеет. :slight_smile:

1 лайк

На самом деле решение вашей задачи есть, но оно совсем другое. Вам нужно строить отчёт по классу lnkContactToFunctionalCI. С точки зрения БД это таблица, в которой для каждой уникальной пары CI-Contact создаётся отдельная запись.


Т.е. если у какого-то PC два пользователя, то он будет фигурировать в этой таблице дважды, если какой-то человек пользуется двумя ПК, то он также будет фигурировать в этой таблмце дважды и т.п.

Как построить по ней отчёт надо думать, либо пытаться вытащить этот класс в меню (не факт, что получится), либо как-то делать экспорт, либо напрямую из БД забрать.

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

Спасибо. в целом идея понятна.

Ну я вам предложил вариант как можно этого избежать. Всё зависит от целей, которые вы преследуете. Хотите ли вы, чтобы у вас была гарантия, что у ПК не более одного пользователя, хотите ли вы получать только отчёт или пользоваться этим представлением и в системе также…

Цель простая: нужно получать только отчет в котором был бы отражен список персональных компьютеров (Модель, Операционная система, ОЗУ, CPU) и пользователь этого компьютера. Ну, или от обратного список пользователей + персональные компьютеры

Что значит “получать только отчет”?

Вернее, что значит “получать”?

Я ответил на вопрос Павла:

То есть информация о пользователе ПК мне нужна только в отчете - хочу получать только отчет.

Попробую по-другому. Каким образом этот только отчет вы собираетесь получать? В каком виде? На почту? Excel? Смотреть в айтопе? Регулярно или по запросу?

Мне кажется изначально слово “отчет” не в том смысле используется в этом обсуждении. Скорее это просто экспорт табличного представления в любой доступный формат, например PDF. Таким образом, нужно просто при экспорте табличного представления КЕ “Персональный компьютер” включить столбец с пользователями ПК, которые указаны на вкладке Контакты, надеюсь понятно объяснил.

Таким образом “получать” значит просто выполнить экспорт и при экспорте указать столбцы которые должны быть экспортированы.
image

Владимир,
В ручном режиме, по запросу при помощи экспорта в любой из доступных форматов.

Кстати, ещё вариант создать вычисляемое поле (calculated field), которое заполнять фамилиями связанных контактов через запятую (на случай если их несколько), и его уже включить в таблицу.
теоретически так можно, но конкретно в iTop с вычисляемыми полями не имел дела на практике.

Чересчур сложно для такой задачи.

Если каких-то ограничений на кол-во связанных с персон и компьютеров нет, можно обойтись без доработок, написать OQL запрос, который будет выбирать PC + lnkContactToFunctionalCI + Person, а дальше это запрос использовать в дашборде, сохранить в книге запросов или добавить в избранное.