Содержание


CRM-система SugarCRM

Часть 4. Работа с дополнительными модулями

Comments

Серия контента:

Этот контент является частью # из серии # статей: CRM-система SugarCRM

Следите за выходом новых статей этой серии.

Этот контент является частью серии:CRM-система SugarCRM

Следите за выходом новых статей этой серии.

Продолжая тему, начатую в предыдущей статье, в данной статье будет рассмотрен вопрос использования дополнительных модулей в системе SugarCRM. В статье приводится пример создания и модификации дополнительного модуля встроенными средствами системы, а также пример загрузки и использования модулей, созданных сторонними поставщиками. В качестве примеров были выбраны модуль построения отчётов ZuckerReports и модуль визуальной работы с календарями E-Calendar.

Создание модуля

Для создания нового модуля используется форма "Администрирование —> Инструментарий разработчика —> Конструктор модулей". Если эта операция выполняется впервые, то в форме будет доступна единственная опция — создание нового пакета. Для начала работы следует нажать на пиктограмму "Новый пакет".

Рисунок 1. Исходный вид конструктора модулей
Рисунок 1. Исходный вид конструктора модулей
Рисунок 1. Исходный вид конструктора модулей

В открывшейся форме необходимо заполнить следующие поля:

  • Название пакета:Opportunities_operations;
  • Автор:Администратор;
  • Ключ:o5555 (служит для уникальности имён и таблиц базы данных для данного пакета);
  • Описание:Учёт операций, совершаемых по сделке.

Пример заполнения формы приведен на рисунке 2. После заполнения формы необходимо нажать кнопку "Сохранить".

Рисунок 2. Форма для создания нового пакета
Рисунок 2. Форма для создания нового пакета
Рисунок 2. Форма для создания нового пакета

После заполнения формы появится возможность создать новый модуль в этом пакете. Для этого необходимо нажать одноимённую кнопку и заполнить следующие поля:

  • Название модуля:Payments;
  • Надпись:Платежи;
  • Тип: выбрать вариант Базовый.
Рисунок 3. Форма для создания нового модуля внутри пакета
Рисунок 3. Форма для создания нового модуля внутри пакета
Рисунок 3. Форма для создания нового модуля внутри пакета

После нажатия кнопки "Сохранить" можно переходить к добавлению полей в модуль. Чтобы открыть форму для создания полей, необходимо нажать кнопку "Просмотр полей". Открывшаяся форма уже содержит набор предопределённых полей в соответствии с выбранным шаблоном "Базовый". В список доступных полей входят: идентификатор, имя, дата создания и модификации. А также информация о том, кто запись создавал, кто изменял и кто назначен ответственным за неё.

Чтобы добавить в этот список дополнительные поля, необходимо воспользоваться кнопкой "Добавить поле". Для создания поля с суммой платежа заполняются следующие атрибуты:

  • Тип данных: из списка выбирается значение "Decimal";
  • Название поля:value;
  • Отображаемая надпись:сумма;
  • Точность:2;
  • Обязательное поле: активировать этот переключатель.

Для завершения процесса создания поля необходимо нажать кнопку "Сохранить".

Рисунок 4. Форма для добавления нового поля в модуль
Рисунок 4. Форма для добавления нового поля в модуль
Рисунок 4. Форма для добавления нового поля в модуль

Аналогичным образом создаётся поле с датой платежа. Для этого заполняются атрибуты:

  • Тип данных: из списка выбирается значение Date;
  • Название поля:day_of_payment;
  • Отображаемая надпись:дата платежа;
  • Значение по умолчанию:сегодня;
  • Обязательное поле: активировать этот переключатель.

В итоге форма с полями для модуля "Payments" должна выглядеть как на рисунке 5.

Рисунок 5. Список полей, объявленных в модуле
Рисунок 5. Список полей, объявленных в модуле
Рисунок 5. Список полей, объявленных в модуле

Далее имеет смысл заглянуть в форму редактирования надписей, нажав одноимённую кнопку. Большинство надписей уже локализовано, за исключением "LBL_ID", которую переводить не требуется, и "LNK_LIST", которую следует заменить на "Просмотр Платежей". Кроме этого текст для некоторых надписей был сформирован автоматически, без учёта падежей, поэтому такие надписи также следует исправить. После внесения необходимых исправлений следует нажать кнопку "Сохранить".

Для возвращения в конструктор модуля необходимо нажать на ссылку "Payments" в верхней части формы. Отсюда через кнопку "Просмотр связей" можно перейти к форме создания взаимосвязей между разными модулями SugarCRM. Следует нажать кнопку "Добавить связь" и соединить созданный модуль "Платежи" с базовым модулем "Сделки" при помощи связи "многие-к-одному", выбрав соответствующие варианты в выпадающих списках. Как обычно, операция завершается нажатием кнопки "Сохранить".

Рисунок 6. Сводная информация о связях между модулями
Рисунок 6. Сводная информация о связях между модулями
Рисунок 6. Сводная информация о связях между модулями

После этого необходимо возвратиться в конструктор модуля через ссылку "Payments" для настройки форм отображения и редактирования модуля. Для этого используется кнопка "Просмотр макетов". В системе предусмотрен набор из десяти шаблонов форм для разных ситуаций: форма редактирования, форма просмотра, форма списка, форма быстрого ввода, поиск (базовый и расширенный), раздел (включая основные настройки и фильтр) — формы для главной страницы, всплывающие формы (список и поиск). Макеты форм представлены в двух видах: в виде готового представления (см. рисунок 7) или в виде перечисления отображаемых и скрытых полей (см. рисунок 8). Процесс редактирования макетов основан на перетаскивании требуемых полей с помощью мыши. Другими словами, следует перенести вновь созданные поля "сумма" и "дата платежа" во все используемые макеты, как показано на рисунках 7 и 8.

Рисунок 7. Шаблон формы редактирования
Рисунок 7. Шаблон формы редактирования
Рисунок 7. Шаблон формы редактирования
Рисунок 8. Шаблон формы поиска
Рисунок 8. Шаблон формы поиска
Рисунок 8. Шаблон формы поиска

Модуль можно установить непосредственно из конструктора пакета, нажав кнопку "Установить", или сохранить в архиве, нажав кнопку "Опубликовать". Во втором случае будет создан пакет в виде ZIP-архива, который можно использовать для добавления собственного кода, и в дальнейшем установить модифицированный пакет через загрузчик модулей системы.

Модификация модуля

После того, как созданный модуль "Платежи" был установлен в системе, он должен появиться в общем списке модулей и в субпанели модуля "Сделка", с которым он был связан при создании. Для изменения списка полей, отображаемых в модуле "Платежи", следует открыть модуль "Сделка" в форме "Администрирование—>Студия". Далее открыть субпанель "Платежи" и настроить этот макет, перетащив мышью поля "сумма" и "дата платежа" в колонку "Отображаемые". Для сохранения изменений необходимо нажать кнопку "Сохранить и установить".

Для удобства отображения субпанель "Платежи" в модуле "Сделки" можно переместить вверх с помощью мыши, сделав её первой в списке субпанелей, как показано на рисунке 9.

Рисунок 9. Измененное отображение модуля "Сделки"
Рисунок 9. Измененное отображение модуля Сделки
Рисунок 9. Измененное отображение модуля Сделки

Нажав на название платежа, можно перейти к форме для просмотра выбранной записи, изображенной на рисунке 10.

Рисунок 10. Форма с информацией о платеже
Рисунок 10. Форма с информацией о платеже
Рисунок 10. Форма с информацией о платеже

Дополнительно имеет смысл связать между собой новый модуль "Платежи" и имеющийся модуль "Документы" для привязки бухгалтерского документа к проведённому платежу. Для этого используется связь типа "многие-ко-многим", чтобы можно было привязать несколько документов к одному платежу или один документ к нескольким платежам.

Для создания новой связи необходимо перейти в форму "Администрирование—>Студия" и в иерархическом списке модулей найти модуль "Платежи", и в нём выбрать пункт "Связи". В списке связей будет отображаться единственная запись "o5555_payments_opportunities". Следует нажать кнопку "Добавить связь" и в появившейся форме заполнить поля:

  • Тип связи: выбрать из списка "Многие-ко-многим";
  • Подчиненный модуль: выбрать из списка "Документы".

Создание связи завершается нажатием кнопки "Сохранить и установить". В результате в модуль "Платежи" будет добавлена субпанель "Документы".

Рисунок 11. Форма с информацией о платеже и связанных с ним документах
Рисунок 11. Форма с информацией о платеже и связанных с ним документах
Рисунок 11. Форма с информацией о платеже и связанных с ним документах

Аналогичным образом в модуле "Документы" появится субпанель "Платежи". На этом процесс формирования нового модуля "Платежи" завершён.

Установка модуля отчетов

Алгоритм установки дополнительных модулей в систему SugarCRM уже рассматривался в первой статье данного цикла на примере локализации. Дело в том, что пакет локализации оформлен в виде загружаемого модуля и устанавливается с использованием общего механизма.

Для системы SugarCRM существует большое количество готовых дополнительных модулей, предлагающих самую разную функциональность. В качестве примера был выбран модуль отчётов ZuckerReports, как один из самых популярных модулей.

Этот модуль можно загрузить с Web-сайта SugarCRM [http://www.sugarforge.org]. На момент написания статьи актуальной версией модуля ZuckerReports была версия 1.13а. Необходимо загрузить ZIP-архив с модулем и установить на сервер виртуальную Java-машину. Также в конфигурационном файле PHP потребуется увеличить параметры post_max_size и upload_max_filesize до размеров модуля, например, до 40 Мб.

Для генерации отчётов также могут использоваться Microsoft Office или JasperReports, но для этого потребуется установить соответствующее программное обеспечение (Office вместе с установленным .NET Framework или iReport для Jasper). В приведённом ниже примере эти возможности не рассматриваются.

Модуль устанавливается через форму "Администрирование —> Загрузчик модулей". В указанной форме следует выбрать ZIP-архив с модулем, нажать кнопку "Загрузить" и установить загруженный модуль в систему. Если все действия выполнены правильно, то список установленных модулей должен выглядеть, как на рисунке 12.

Рисунок 12. Список модулей, установленных в системе
Рисунок 12. Список модулей, установленных в системе
Рисунок 12. Список модулей, установленных в системе

Модуль ZuckerReports должен появиться и в общем меню модулей системы. Перейти к экранам модуля можно, просто выбрав его имя из этого общего меню.

Рисунок 13. Модуль ZuckerReports
Рисунок 13. Модуль ZuckerReports
Рисунок 13. Модуль ZuckerReports

Для формирования нового отчёта необходимо выбрать в модуле форму "Шаблоны запросов и отчетов". На выбор представлено 4 типа шаблонов: "список-отчет", "Jasperотчет", "отчет Office" и "запрос SQL". Для демонстрации примера создания и использования отчётов следует нажать кнопку "Новый запрос SQL".

В появившейся форме необходимо заполнить следующие поля:

  • Название запроса:Задолженность по сделкам;
  • SQL запрос: запрос, формирующий величину неоплаченных сделок (см. листинг 1);
  • Описание:Суммируются все платежи по сделке и вычитаются из суммы сделки.
Листинг 1. SQL-инструкция для запроса по сделкам и платежам
SELECT o.name as Name, o.amount as Value, o.amount - SUM(p.value) as Debt
    FROM opportunities o, o5555_payments p, o5555_paymepportunities_c op
    WHERE o.id=op.o5555_payma7aaunities_ida
        AND op.o5555_paymf6ccayments_idb=p.id
        AND op.deleted=0
        AND o.probability=100

После заполнения формы для создания запроса необходимо нажать кнопку "Сохранить".

Рисунок 14. Форма для создания SQL-запроса
Рисунок 14. Форма для создания SQL-запроса
Рисунок 14. Форма для создания SQL-запроса

Примечание: названия таблицы o5555_paymepportunities_c, связывающей модули "Сделки" и "Платежи", и её полей (o5555_payma7aaunities_ida, o5555_paymf6ccayments_idb) генерируются системой в процессе создания модуля "Платежи". Поэтому правильность этих названий необходимо проверить в базе данных SugarCRM.

Созданный SQL запрос "Задолженность по сделкам" станет доступен в форме "Шаблоны запросов и отчетов". Следует нажать ссылку "Запустить отчет", в результате чего откроется форма для ввода параметров вызова отчёта. В её субпанели "Свойства" необходимо заполнить поля:

Формат: выбрать из списка "Таблица";

Включить заголовок: активировать этот переключатель.

После нажатия кнопки "Запустить отчет" будет выведен результат выполнения запроса, изображенный на рисунке 15.

Рисунок 15. Результат выполнения отчета
Рисунок 15. Результат выполнения отчета
Рисунок 15. Результат выполнения отчета

Расширение возможностей календаря

В качестве ещё одного примера использования дополнительного модуля будет показано, как расширить функциональность календаря, встроенного в SugarCRM, для более удобной работы с записями о мероприятиях. Речь пойдёт о модуле E-Calendar, который также можно загрузить с Web-сайта SugarCRM [http://www.sugarforge.org]. Актуальной версией на момент написания статьи является версия 1.0.2.

После загрузки ZIP-архива с модулем, его следует установить через форму "Администрирование —> Загрузчик модулей" способом, описанным ранее. Этот модуль по умолчанию русифицирован и в локализованной системе отображается как "Е-Календарь". Основная форма модуля изображена на рисунке 16.

Рисунок 16. Модуль Е-Календарь
Рисунок 16. Модуль Е-Календарь
Рисунок 16. Модуль Е-Календарь

Визуальное представление этого модуля совпадает с оформлением стандартного модуля "Мероприятия" с той лишь разницей, что события (встречи или звонки) можно создавать непосредственно в форме модуля "Е-Календарь", нажав мышкой на соответствующем времени. При этом будет показана форма создания записи о событии, скомпонованная из стандартных полей системы SugarCRM, которые необходимо заполнить, как показано ниже:

  • Тип события: выбрать опцию "Назначить звонок";
  • Тема:Уточнить планы;
  • Статус: выбрать из списка "Исходящий" и "Запланирован";
  • Дата и время: устанавливается с помощью набора соответствующих полей;
  • Продолжительность:1 час;
  • Связано с: выбрать из списка "Контрагенты" и после этого с помощью кнопки системы "Выбрать" вставить контрагента "Фирма 3".
Рисунок 17. Форма для создания нового мероприятия
Рисунок 17. Форма для создания нового мероприятия
Рисунок 17. Форма для создания нового мероприятия

После нажатия кнопки "Сохранить" созданная запись отображается и в стандартном модуле "Мероприятия" и в новом модуле "Е-Календарь", где гораздо удобнее работать с записями о событиях.

Например, можно переключить модуль "Е-Календарь" в режим работы "Сводный" с показом календарей подчинённых сотрудников. Если в этом режиме нажать кнопкой мыши на выбранном времени в календаре подчинённого, то в поле "Ответственный" автоматически будет подставлено имя этого сотрудника. Дополнительно в главной форме модуля есть ссылка "Настройки календаря", что позволяет изменить основные настройки, не выходя из формы. А также удобный переключатель "Целый день" для быстрого переключения в режим показа целого дня, а не только установленных рабочих часов.

В дальнейшем созданное событие можно легко перенести на другое время или дату с помощью "drag and drop". При последующем редактировании параметров события или назначении дополнительных участников для данного события будут использоваться стандартные элементы SugarCRM.

Заключение

В системе SugarCRM присутствует мощный инструмент для создания и модификации дополнительных модулей, способных существенно расширить сферу применения системы и увеличить выгоду от её использования. Подобная гибкость вместе с накопленной библиотекой модулей от сторонних поставщиков (как на платной, так и на бесплатной основе) серьёзно усиливает конкурентные преимущества системы SugarCRM.


Ресурсы для скачивания


Похожие темы


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, Open source
ArticleID=752649
ArticleTitle=CRM-система SugarCRM: Часть 4. Работа с дополнительными модулями
publish-date=08162011