По условиям задачи требуется при открытии модуля выводить все компании занесённые в систему.
Наиболее простое решение данной задачи реализается при помощи доработки модуля администрирования списка компаний.
Берём (за основу) AdminCustomerCompany.pm (естественно если не хотим проблем дальше, все доработки делаем на custom копии).
Находим в нём процедуру Overview, отвечающую за вывод списков.
В ней говорим, что если в процедуру не передан параметр поиска, то по умолчанию используем значение параметра равное "*"
Исходное
Код: Выделить всё
my $Search = $Self->{ParamObject}->GetParam( Param => 'Search' ) || '';
Код: Выделить всё
my $Search = $Self->{ParamObject}->GetParam( Param => 'Search' ) || '*';
Есть ещё одно улучшение поиска которое можно сделать.
Не уверен что все с этим столкнулись, но по крайней мере я столкнулся.
В моей сборке по умолчанию оказалась следующая ситуация. При поиске по списку клиентов поиск прекрасно производился по вхождению в любой части используемых для поиска полей. А вот при поиске по списку компании обязательно надо было указывать именно часть от начала до какой либо позиции.
Переносим в Config.pm описание маппинга компаний.
Берём следующий блок
Код: Выделить всё
# company unique id
CustomerCompanyKey => 'customer_id',
CustomerCompanyValid => 'valid_id',
CustomerCompanyListFields => [ 'customer_id', 'name' ],
CustomerCompanySearchFields => ['customer_id', 'name'],
CustomerCompanySearchPrefix => '',
CustomerCompanySearchSuffix => '*',
CustomerCompanySearchListLimit => 250,
Map => [
# var, frontend, storage, shown (1=alwa...................
Код: Выделить всё
CustomerCompanySearchPrefix => '*',
Решение реализовано на базе OTRS 3.1.4; ITSM 3.1.6