Страница 1 из 2

Наличие в базе данных клиентов с одинаковым идентификатором

Добавлено: 07 май 2014, 11:51
xpasha
Всем доброго дня,

Тем эта родилась в процессе решения задачи переноса клиентской базы из биллинга в OTRS. В процессе решения этой задачи не обошлось и без логических неувязок. В базе биллинга к одному лицевому счету можно привязать несколько услуг, суть строк в базе OTRS, поскольку на каждую услугу нужны сведения - ip, логин, пароль, адрес установки, телефон, данные по оборудованию(адрес, слот, порт). Я сделал id клиента его лицевым счетом, таким образом пришлось снять уникальность с поля customer_id во избежание коллизий. Таким образом у меня в базе клиентов данные по двум клиентам с одинаковым id, поиск находит только одну строку. Как сделать так, чтобы в поиске выдавались все варианты? Опять же при создании заявки также при поиске клиента выдается только один. Существует ли способ сделать поиск с выдачей двух вариантов стандартными средствами или нужно пилить код?

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 07 май 2014, 11:55
xpasha
Конечно идеальным вариантом было бы объединение всех этих данных типа ip, логин, пароль, порт подключения и т.д. под одним id в одной строке, суть одного клиента, но создание в базе еще 40-50 полей для каждой комбинации ip, логин, пароль, порт подключения и т.д. в таблице customer_user было бы громоздко и неудобно, ведь неизвестно заранее сколько услуг(точек подключения) может быть у клиента. Если бы это можно было как-то расширять динамически. Только вот как... У кого какие идеи?

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 07 май 2014, 12:15
ykolesnikov
Вообще-то информацию об оборудовании клиента имеет смысл хранить в CMDB (ITSM Confiration Management). Это, конечно, все непросто, но там Вы можете задать любую структуру хранения, связывать объекты, вести историю версий и т.д. :oops:

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 07 май 2014, 12:36
alexus
Клиент - это физическое или юридическое лицо. Услуга - это Сервис, но в вашем примере - это CMDB, тут Юрий прав. Не надо подменять понятия, и тогда не будет никаких логических ошибок.

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 07 май 2014, 14:10
xpasha
Поставил я ITSM. С первого взгляда непонятно как можно создать там базу связанную с клиентом. В разделе CMDB создаются только классы. Причем в соответствующем классе необходимо указать конкретные IP-адреса. А клиентов десяток тысяч, это что создавать для каждого свой класс? Каким образом вы предлагаете все это создавать и связывать?

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 07 май 2014, 14:43
ykolesnikov
Ну, батенька, с налета только кролики плодятся. Создаете описания классов, ориентируясь на имеющиеся там примеры-заготовки. Когда создадите, увидите, как это можно связывать друг с другом, с клиентом, с заявкой и т.д. Это надо все прочувствовать и потом появится ясность. Есть еще Import/Export для загрузки/выгрузки. Читайте и пробуйте.

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 07 май 2014, 15:47
xpasha
Почитал вот этот тред viewtopic.php?f=2&t=1416, там говорится что структура данных этого модуля хранится в блобах и xml файлах,интересно какой сложности должен быть скрипт импорта информации из сторонней базы, чтобы все это осуществить? Вменяемого описания пока не найдено, интуитивным методом это все не решается.

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 07 май 2014, 16:03
xpasha
Можно ли в данные на каждого пользователя добавить поле-ссылку которое будет содержать url на сторонний сайт, нажав на которую можно будет посмотреть для данного клиента все услуги? Похоже наиболее эффективным и минимально геморойным методом будет сделать такой вот сторонний справочник. Есть ссылки на подробные описания модуля итсм? Шаблонные примеры приведены только для ИТ-службы какого-либо предприятия, как все говорят можно воротить что хочешь, только вот непонятно как, из структуры самого модуля очевидно непонятно как что и с чем связано.

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 08 май 2014, 00:06
alexus
xpasha писал(а):Почитал вот этот тред viewtopic.php?f=2&t=1416, там говорится что структура данных этого модуля хранится в блобах и xml файлах,интересно какой сложности должен быть скрипт импорта информации из сторонней базы, чтобы все это осуществить? Вменяемого описания пока не найдено, интуитивным методом это все не решается.
Самый простой и дешевый вариант:
1. Сохраняете выгрузку оборудования в CSV на "расшаренный" диск.
2. Настраиваете Import\Export CMDB - otrs/index.pl?Action=AdminImportExport
3. Запускаете импорт по расписанию - ./otrs/bin/otrs.ImportExport.pl

Самый сложный и относительно дешевый вариант:
1. Писать самому модуль импорта, предварительно изучив модули ITSM CMDB

Самый просто и относительно недешевый вариант:
1. Купить у нас модуль импорта из любой внешней БД :).

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 08 май 2014, 11:08
xpasha
Спасибо, варианты интересные. Но сейчас нужен быстрый вариант. Разбираться с CMDB сложно и долго ввиду малого количества годных примеров. К тому же не факт еще что CMDB разрабы которые видимо мыслили категориями обслуживания корпоративной сети сделали все так, что это можно приспособить к нуждам провайдинга. Изучу конечно понемногу, вопросами сообщество помучаю. :) А пока остановлюсь на варианте со всплывающим окном выводящим список услуг клиента, благо набросать php-скрипт выводящий данные по id клиента в табличку несложно.

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 08 май 2014, 14:19
alexus
xpasha писал(а):Спасибо, варианты интересные. Но сейчас нужен быстрый вариант. Разбираться с CMDB сложно и долго ввиду малого количества годных примеров. К тому же не факт еще что CMDB разрабы которые видимо мыслили категориями обслуживания корпоративной сети сделали все так, что это можно приспособить к нуждам провайдинга. Изучу конечно понемногу, вопросами сообщество помучаю. :) А пока остановлюсь на варианте со всплывающим окном выводящим список услуг клиента, благо набросать php-скрипт выводящий данные по id клиента в табличку несложно.
1. Быстрый вариант нужен - поэтому надо быстро сделать криво, запустить, а потом иметь проблемы очень-очень долго и грустно. Плавали-видели-знаем такой подход.
2. разрабы которые видимо мыслили категориями обслуживания корпоративной сети - "Разрабы" в лице сертифицированных консультантов ITIL мыслили категориями ITIL, т.е. на порядок выше. С точки зрения ITIL направленность поддержки - внутренняя или внешняя - вообще без разницы. Учите методическую часть - сильно поможет. В инете можно найти книжицы про ITIL и ITSM. Например - https://www.google.com/search?q=%D1%8F% ... 0&ie=UTF-8

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 13 май 2014, 12:18
xpasha
Начну тогда с изучения ITIL, но однако же это не помешает сделать быстрый вариант. Но поскольку изучение ITIL требует времени, разбирательство с модулем ITSM требует времени, а решение нужно срочно, поэтому пока придется делать быстрый вариант, тем более что структура базы не меняется кардинальным образом. Кроме того инсталляция ITSM может сама по себе стать проблемой, в моей конфигурации есть модифицированные файлы, в том числе с добавленными шаблонами заявок по how-to найденому здесь же, на форуме. Модуль ITSM похоже меняет некоторые файлы на свои и в окне создания заявок у меня исчезли все шаблоны, после деинсталляции модуля все вернулось на место.

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 13 май 2014, 12:29
ykolesnikov
Просто, после инсталляции ITSM заново внесите изменения в файлы связанные с шаблонами и все будет нормально. А вообще, если правильно вносили изменения в файлы с помещением их в папку кастомной темы, такого, о чем Вы пишете, не должно быть, скорее не будут работать фичи ITSM. А если Вы меняли оригинальные файлы на месте, то они, естественно, перезаписываются, т.к. ITSM вносит в них дополнения.

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 14 май 2014, 06:47
xpasha
Так мне кастомизировать заново файлы замененные ITSM и перенести их в кастом? Я так понимаю кастомизированные файлы нужно переносить в папку Customс полными путями относительно корня папки OTRS? Типа Custom/Kernel.....?

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 14 май 2014, 07:05
ykolesnikov
В папку Custom/Kernel/... переносятся измененные файлы .pm. Файлы .dtl - переносятся в папку с любым именем, которое указывается в SysConfig. Читайте мануал - http://otrs.github.io/doc/manual/admin/ ... hemes.html

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 14 май 2014, 08:30
xpasha
Спасибо за подсказку. Переделаю все по правильному теперь.

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 14 май 2014, 16:03
xpasha
Сформировал кастомные файлы согласно доке, pm положил в аналогичные папки в Custom, для dtl создал отдельную директорию NewTheme и положил туда измененные dtl. Но вот незадача в окне предпочтений у меня ни слова нет о теме, хотя захожу под админскими правами. Может дока несколько устарела и темы переключаются в другом месте? Пробовал отключить все темы кроме NewTheme, результат нулевой, умолчальная тема как была так и остается Standard. И как в Framework:Core:Web:Frontend::Theme можно прописать директорию целиком, если там только названия тем типа Lite, Standard, или я что-то путаю? http://otrs.github.io/doc/manual/admin/ ... nd::Themes вроде все как в доке указано. Тот самый параметр.

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 14 май 2014, 16:10
xpasha
Еще возникает закономерный вопрос, а темы это только dtl файлы в отдельной папке или как-то связанные с ними pm? Просто если я наклепал шаблонов в dtl файле AgentTicketPhone.dtl и сделал его отдельной темой, то как насчет взаимодействия с измененным же файлом Ticket.pm он то не является частью темы или будет браться тот, что перемещен в Custom как
/opt/otrs/Custom/Kernel/System/Ticket.pm ?

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 14 май 2014, 16:14
ykolesnikov
Любые кастомные файлы, правильно помещенные, заменяют соответствующие/одноименные оригинальные. Всё.

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 14 май 2014, 16:17
ykolesnikov
xpasha писал(а):Еще возникает закономерный вопрос, а темы это только dtl файлы в отдельной папке или как-то связанные с ними pm? Просто если я наклепал шаблонов в dtl файле AgentTicketPhone.dtl и сделал его отдельной темой, то как насчет взаимодействия с измененным же файлом Ticket.pm он то не является частью темы или будет браться тот, что перемещен в Custom как
/opt/otrs/Custom/Kernel/System/Ticket.pm ?
Темы, это только .dtl.
.pm - файлы с темой не связаны и берутся оригинальные или кастомные при их наличии в папке custom.

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 14 май 2014, 16:28
xpasha
Размещение dtl файлов:

[root@otrs-test NewTheme]# pwd
/opt/otrs/Kernel/Output/HTML/NewTheme
[root@otrs-test NewTheme]# ls -la
total 56
drwxr-xr-x 2 root root 4096 May 14 16:59 .
drwxrwx--- 4 501 apache 4096 May 14 17:29 ..
-rw-rw---- 1 501 apache 6006 May 13 14:00 AgentDashboardCustomerUserList.dtl
-rw-rw---- 1 501 apache 37944 May 14 16:59 AgentTicketPhone.dtl

Размещение связанного кастомизированного под шаблоны Ticket.pm:
[root@otrs-test System]# pwd
/opt/otrs/Custom/Kernel/System
[root@otrs-test System]# ls -la
total 264
drwxr-xr-x 2 root root 4096 May 14 17:33 .
drwxr-xr-x 5 root root 4096 May 14 16:58 ..
-rw-rw---- 1 501 apache 256743 Dec 25 22:07 Ticket.pm
Там модификации отличные от стандартных.
Сисконфиг:

$Self->{'Frontend::Themes'} = {
'Lite' => '0',
'Standard' => '1'
'NewTheme' => '1'
};

Выбора темы у меня в предпочтениях нет вообще!! Не верите могу прислать скриншот. Пробовал делать Standard => 0, единственная разрешенная тема NewTheme не применилась, как была Standard так и осталась. В чем причина? Может этот механизм еще где-то нужно активировать? Или я в упор не вижу какой-то ошибки....

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 14 май 2014, 16:35
xpasha
Для того чтобы убедиться в том, что работает стандартная тема убрал файл AgentTicketPhone.dtl из папки Standard и получил пустой скрин при выборе скрина создания заявки. Так что с кастомизацией пока шляпа...

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 14 май 2014, 16:56
ykolesnikov
Вы установили тему оформления, это из-за путаницы в терминологии и переводе.
Тема по умолчанию для кастомных .dtl файлов указывается в - Framework -> Core --> DefaultTheme - имя темы(папки с файлами)
Возможность выбора темы в личных настройках агента -Framework -> Frontend::Agent::Preferences-->PreferencesGroups###Theme - поставить "галку"

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 14 май 2014, 16:58
xpasha
Да и настораживает, что в преференсах нет менюшки выбора темы, как ни крути в сисконфиге указанный в доке параметр. Что вы на это скажете?

Re: Наличие в базе данных клиентов с одинаковым идентификато

Добавлено: 14 май 2014, 17:07
xpasha
Получается можно установить дефолтную тему указав полный путь к папке с темой? А выбор темы агентами осуществляется через включение фичи. Тогда понятно почему у меня нет менюшки соответствующей. Спасибо, сейчас попробую настроить. Действительно перевод бывает вносит путаницу, только вот в доке тоже косяк, нет информации которую вы дали, а без нее все бесполезно. Нет информации о том, как включить выбор для агентов, а ссылка на меню выбора есть. Про дефолтный конфиг тоже ни слова. В README в директории Custom тоже ни слова про активизацию тем, про кастомизацию тем сказано, а про активацию в сисконфиге молчок.