Совместная разработка Модуля Планирования работ

@vladimir помогите с oql-запром. создал уведомление, при срабатывание триггера, оно должно рассылать уведомления пользователям. список пользователе беру так:
SELECT Person AS p JOIN lnkContactToFunctionalCI AS f ON f.contact_id=p.id WHERE f.functionalci_id=???

как правильно указать id изменяемого КЕ ?

На что триггер срабатывает?

@vladimir на создание объекта

Тогда откуда взялся изменяемый объект? В любом случае, id и любые другие параметры объекта, на котором сработал триггер, указываются так :this->att_code, где att_code - код атрибута. В вашем случае :this->id.

Если ваш вопрос не попадает под тему существующего поста, то не ленитесь создавать новый пост.

@vladimir Спасибо Владимир.

Если ваш вопрос не попадает под тему существующего поста, то не ленитесь создавать новый пост.

Больше не буду так делать.

Добрый вечер, коллеги.

Первая публичная версия модуля плановых работ уже неделю как готова и лежит тут: https://github.com/itop-itsm-ru. Нужны отзывы, пожелания, замечания, баг-репорты.

Описания там нет, так что расскажу тут коротко. Модуль на самом деле не один, а два.

Первый workorder-mgmt это меню Управление работами, календарь, планировщик активностей и фоновый процесс, который работает через системный cron, как периодические бекапы, таймеры SLT и тп. Главный объект этого модуля называется Плановая активность (далее ПА). В этом объекте определяется та задача, которую необходимо выполнять (проверка логов, периодические работы на оборудовании, ГТП и т.п.), задается периодичность (в виде шаблона crontab), добавляются контакты и документы (например, технологические карты). ПА генерирует два события: основное действие (ОД) и предварительное действие (ПД). Дата ОД высчитывается по шаблону периодичности при каждом обновлении ПА, дата ПД опережает дату ОД на заданный интервал. На эти события может срабатывать собственный триггер (Триггер на плановую активность), к которому привязываются действия (стандартно только уведомления по email). После создания ПА её нужно активировать (кнопка Другие действия). Когда счетчик поймет, что следующая дата основного действия отсутствует или недостижима из-за установленного срока окончания, произойдет деактивация ПА. Автоматической активации ПА при достижении даты начала нет.

Второй модуль action-create-object расширяет функционал действий и добавляет возможность создания объекта при срабатывании триггера. В текущей версии создавать можно только наряд на работу. Связка с триггером настраивается аналогично уведомлениям. В действии есть вкладка Сопоставление полей, где для каждого поля создаваемого наряда (указывается код атрибута) нужно задать значение. Для этого можно использовать плейсхолдеры $this->attcode$. Объект плановой активности при срабатывании триггера помимо плейсхолдеров своих полей (смотрите в модели данных) предоставляет $this->wo_start_date$ и $this->wo_end_date$ (дата начала и дата окончания для наряда).

Общая последовательность действий для настройки модуля:

  1. Создать плановую активность.
  2. Создать триггер на предварительное действие.
  3. Создать для него действие создания наряда и оповещения.
  4. Создать триггер на основное действие.
  5. Создать для его действие уведомления.
1 лайк

@vladimir Добрый день Владимир ,поставил модули,только вот календарь что-то не отображается

iTop версия 2.2.0-2459
Модель данных: 2.2.0

@igor, прошу прощения, ваше сообщение система отметила как спам и скрыла.
Проблема с календарём сохраняется?

@vladimir Да, проблема сохраняется. Сам itop стоит на убунте с Apache

@igor, можете глянуть ошибки при загрузке страницы в разделах Network и Console в инструментах разработчика Chrome?

@vladimir Спасибо,нашел проблему
Оказывается он не мог наити путь к файлу модуля, по умолчанию он называется workorder-mgmt-master удалил слово master и переставил модуль, тогда календарик запустился

Да, -master (это название git-ветки) туда дописывает GitHub, при скачивании архива. В этом случае название папки нужно привести в соответствие с названием модуля. Если использовать git clone https://github.com/itop-itsm-ru/workorder-mgmt.git, такой проблемы нет. Постараюсь не забыть это при написании инструкции.

Установил модуль, настроил плановые активности, сделал несколько видов, с предварительным действием и без предварительного действия. Дождался времени создания предварительного действия и времени плановой активности.
Наряды не создаются ((
Такое ощущение что не работает планировщику, либо я недопонял логику установки времени срабатывания активности.


Вот информация о моей системе:
===== begin =====
iTopVersion: 2.2.0
iTopBuild: 2459
iTopBuildDate: 2015-09-22 18:18:47
DataModelVersion: 2.2.0
MySQLVersion: 5.5.44-0ubuntu0.14.04.1
PHPVersion: 5.5.9-1ubuntu4.13
OSVersion: Linux
WebServerVersion: Apache/2.4.7 (Ubuntu)
PHPModules: Core, date, ereg, libxml, openssl, pcre, zlib, bcmath, bz2, calendar, ctype, dba, dom, hash, fileinfo, filter, ftp, gettext, SPL, iconv, mbstring, session, posix, Reflection, standard, shmop, SimpleXML, soap, sockets, Phar, exif, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xml, xmlreader, xmlwriter, zip, apache2handler, PDO, gd, json, ldap, mcrypt, mysql, mysqli, pdo_mysql, readline, mhash, Zend OPcache
ItopSetting/cron_max_execution_time: 600
ItopSetting/timezone: Europe/Moscow
PHPSetting/memory_limit: 128M
PHPSetting/max_execution_time: 30
PHPSetting/upload_max_filesize: 2M
PHPSetting/post_max_size: 32M
MySQLSetting/max_allowed_packet: 67108864
MySQLSetting/key_buffer_size: 16777216
MySQLSetting/query_cache_size: 33554432
MySQLStatus/Key_read_requests: 6669
MySQLStatus/Key_reads: 0
InstallDate: 2015-11-25 15:07:54
InstallPath: /var/www/web/
InstalledModule/authent-external: 2.2.0
InstalledModule/authent-ldap: 2.2.0
InstalledModule/authent-local: 2.2.0
InstalledModule/auto-set-agent-as-caller: 1.0.0
InstalledModule/combodo-autoclose-ticket: 1.0.0
InstalledModule/combodo-email-synchro: 2.6.4
InstalledModule/datetimepicker-widget: 1.0.0
InstalledModule/email-reply: 1.0.0
InstalledModule/itop-attachments: 2.2.0
InstalledModule/itop-backup: 2.2.0
InstalledModule/itop-config-mgmt: 2.2.0
InstalledModule/itop-config: 1.0.2
InstalledModule/itop-datacenter-mgmt: 2.2.0
InstalledModule/itop-endusers-devices: 2.2.0
InstalledModule/itop-profiles-itil: 2.2.0
InstalledModule/itop-sla-computation: 1.0.0
InstalledModule/itop-standard-email-synchro: 2.6.2
InstalledModule/itop-storage-mgmt: 2.2.0
InstalledModule/itop-tickets: 2.2.0
InstalledModule/itop-virtualization-mgmt: 2.2.0
InstalledModule/itop-welcome-itil: 2.2.0
InstalledModule/portal-announcement: 1.0.0
InstalledModule/sample-module-monitor: 1.0.0
InstalledModule/workorder-mgmt: 0.2.1
InstalledModule/action-create-object: 0.1.0
InstalledModule/itop-bridge-virtualization-storage: 2.2.0
InstalledModule/itop-change-mgmt: 2.2.0
InstalledModule/itop-knownerror-mgmt: 2.2.0
InstalledModule/itop-problem-mgmt: 2.2.0
InstalledModule/itop-request-mgmt: 2.2.0
InstalledModule/itop-service-mgmt-provider: 2.2.0
InstalledModule/combodo-sla-computation: 2.0.1
InstalledModule/combodo-coverage-windows-computation: 2.0.1
===== end =====

Подскажите пожалуйста куда копать :slight_smile:

@Happyman, запуск itop/webservices/cron.php настроен? https://wiki.openitop.org/doku.php?id=2_2_0:admin:cron

Увидел у вас в таблице плановую активность “монтаж wifi”. Звучит как разовая операция, для таких вещей лучше создавать Наряды из Изменения или Запроса. В календаре они также будут отображаться.

Запросы и Изменения работают в реальном режиме времени и рамках tto и ttr.
А нам нужно запланировать работу, которая начнется через неделю и будет длиться еще пару дней.

Вы ошибаетесь, изменения планируются.

Планируете начало и конец всего периода работ, а в нарядах разбиваете на исполнителей.

Спасибо за ссылку выше, перепроверил, все сделано как в документации.
в логах itop-cron.log следующее:

Already running…
Exiting: 1452745802 (2016-01-14 07:30:02)
Starting: 1452746102 (2016-01-14 07:35:02)
Already running…
Exiting: 1452746102 (2016-01-14 07:35:02)
Exiting: 1452746103 (2016-01-14 07:35:03)
Starting: 1452746402 (2016-01-14 07:40:02)
Starting: 1452746701 (2016-01-14 07:45:01)
Already running…
Exiting: 1452746701 (2016-01-14 07:45:01)
Starting: 1452747002 (2016-01-14 07:50:02)
Already running…
Exiting: 1452747002 (2016-01-14 07:50:02)
Exiting: 1452747004 (2016-01-14 07:50:04)
Starting: 1452747301 (2016-01-14 07:55:01)
Starting: 1452747601 (2016-01-14 08:00:01)

и так непрерывно.

по команде ниже, следующий результат:
php /var/www/web/webservices/cron.php --auth_user=admin --auth_pwd=XXXXXXXXXX --status_only=1
±--------------------------±--------±--------------------±--------------------±-------±----------+
| Task Class | Status | Last Run | Next Run | Nb Run | Avg. Dur. |
±--------------------------±--------±--------------------±--------------------±-------±----------+
| AutoCloseTicket | active | 2016-01-13 23:05:03 | 2016-01-14 23:05:03 | 115 | 8.046 s |
| BackupExec | active | 2016-01-13 23:30:00 | 2016-01-14 23:30:00 | 83 | 3.227 s |
| BulkExportResultGC | active | 2016-01-13 23:05:03 | 2016-01-14 23:05:03 | 115 | 0.016 s |
| CheckScheduledActivity | active | 2016-01-14 18:57:03 | 2016-01-14 18:58:03 | 60029 | 0.029 s |
| CheckStopWatchThresholds | active | 2016-01-14 18:57:28 | 2016-01-14 18:57:38 | 707369 | 0.137 s |
| EmailBackgroundProcess | active | 2016-01-14 18:57:08 | 2016-01-14 18:57:38 | 241415 | 0.001 s |
| ExecAsyncTask | active | 2016-01-14 18:57:34 | 2016-01-14 18:57:36 | 3521224 | 0.011 s |
±--------------------------±--------±--------------------±--------------------±-------±----------+

Насколько я понял то cron.php работает.

Вот наша задача.

Весь itop-cron.log показать можете?

И вкладку “История” в плановой активности покажите.

Вот что в истории:

ниже ссылка на лог, их уже штук 7 и все с одинаковым содержимым, как я опубликовал в посте выше
ссылка на файл1

Похоже, модуль плановый работ работает правильно. Даты меняются, значит триггеры должны срабатывать. Можно запускать cron с параметром verbose, тогда логи будут подробные.

Триггеры и действия создания нарядов настроены?

Схема должна быть такая:
Плановая активность -> Триггер на плановую активность -> Действие создания объекта -> Сопоставление полей.

Вот пример (admin/admin):
http://demo.itop-itsm.ru/pages/UI.php?operation=details&class=ActionCreateFromTemplate&id=2&c[menu]=NotificationsMenu