На данный момент существует множество систем управления активами предприятия (EAM — Enterprise Asset Management). Наиболее известной и полной системой этого класса является IBM Maximo, но так как моим клиентом является государственное учреждение, мне были интересны системы с открытым исходным кодом. Среди них я нашла два работающих решения: это Apache Ofbiz и CalemEAM. Дистрибутив продукта Apache весит треть гигабайта, и в нём реализовано достаточно много возможностей в дополнение к EAM: там можно найти готовый Интернет-магазин и систему планирования производства. Вторая система узко направлена на управление активами, реализует специфичные функции для данной предметной области, в 100 раз легче и немного красивее. Далее я постараюсь беспристрастно остановиться на сравнении систем.
Apache Ofbiz Vs CalemEAM
Согласно следующей таблице, Apache Ofbiz мне пришлось бы сильно кастомизировать для использования в целях управления активами. CalemEAM же подходит в своем почти первозданном состоянии. Сначала, впрочем, CalemEAM отказался запускаться, но после выключения печати ошибок и передачи сжатых javascript библиотек я смогла войти в систему.
Требуемая функциональность | CalemEAM | Apache Ofbiz |
---|---|---|
Ведение складского учета | + | + |
Поддержка специфичных для оборудования атрибутов (отказоустойчивость, гарантия и т. д.) | + | - |
Возможность создания иерархической структуры оборудования (одно оборудование содержит в себе другое) | + | - |
Создание плана графика регламентных работ по обслуживанию оборудования | + | - |
Создание задания на проведение внеплановых работ, поддержка статуса выполнения данного задания | + | - |
Учёт информации по вендорам оборудования | + | - |
Учёт информации по контрактам с вендорами | + | - |
Возможность создания документации | + | - |
Учёт проводимых проверок | + | - |
Для наших российских чиновников использовать систему управления активами на английском языке было бы достаточно проблематично и понизило бы ожидаемый эффект от внедрения. Поэтому я решила локализовать CalemEAM.
Итак, локализация CalemEAM на примере настройки русского языка.
- Создаем файлы
AjxMsg_ru.properties
,CalemMsg_ru.properties
,I18nMsg_ru.properties
,I18nMsg_ru_RU.properties
и кладем их в каталогCalemEAM\client\lang
. Причем создать эти файлы лучше всего путём копирования из исходных файлов, например,AjxMsg.properties
,CalemMsg.properties
,I18nMsg_en.properties
,I18nMsg_en_UK.properties
. В этих файлах собственно и находятся текстовые поля, которые необходимо перевести на требуемый язык. - Изменяем настройки кастомизации в файле
CalemEAM\server\conf\calem.custom.php
, а именно добавляем в конец следующий код:/** Add Russian */ $_CALEM_dist['client_lang_list']['CalemMsg_ru.js']=array('AjxMsg'=>array('AjxMsg_ru'), 'I18nMsg'=>array('I18nMsg', 'I18nMsg_ru', 'I18nMsg_ru_RU'), 'CalemMsg'=>array('CalemMsg_ru', 'CalemMsgCustom_ru')); $_CALEM_dist['client_language']='ru';
- Запускаем скрипт
deploy.sh
(илиdeploy.bat
build для Windows) изCalemEAM\bin
. В результате этой операции вCalemEAM\client\launchpad\resource
должны сгенерироваться следующие файлы:CalemMsg_ru.js
,CalemMsg_ru.js.min
,CalemMsg_ru.js.gz
,CalemMsg_ru.phpo
. - Изменяем строку под номером 51 в
CalemEAM\client\launchpad\CalemIncludeJsPkg.php
, а именно$lang=isset($_REQUEST['lang'])?$_REQUEST['lang']:$_CALEM_conf['client_language'];
заменяем на$lang=isset($_REQUEST['lang'])?$_REQUEST['lang']:null;
- Для того чтобы при выборе языка при входе в программу появился пункт Russian изменяем файл
CalemEAM\server\cong\calem.php
. Находим объявление массиваclient_lang_list
(строка 196) и добавляем в него следующее'CalemMsg_ru.js'=>array('AjxMsg'=>array('AjxMsg_ru'), 'I18nMsg'=>array('I18nMsg_ru','I18nMsg_ru_RU'), 'CalemMsg'=>array('CalemMsg_ru','CalemMsgCustom_ru'))
Далее в массивclient_lang_select
(строка 243) добавляем код:'Russian'=>array('id'=>'ru')
.
На этом настройки закончены. Теперь поддержка русского включена. В следующей таблице приведены возможные проблемы и их решение.
Проблема | Решение |
---|---|
После выполнения скрипта deploy.sh заявленные файлы не генерируются. |
Установить в файле deploy.sh переменную CALEM_BUILD равной 1. |
При входе в программу появляется ошибка pattern is undefined. | В скрипте CalemEAM\client\launchpad\resource\Ajax.js найти функцию AjxDateFormat (строка 1233):function AjxDateFormat(pattern) и перед циклом for (строка 1244) добавить код:pattern=I18nMsg.formatDateShort; |
Комментариев нет :
Отправить комментарий