# Автоматическое создание дочерних запросов

**URL:** <http://community.itop-itsm.ru/t/avtomaticheskoe-sozdanie-dochernih-zaprosov/1079>\
**Category:** Кастомизация\
**Created:** [18.Июль.2018 07:59:13 UTC](http://community.itop-itsm.ru/t/avtomaticheskoe-sozdanie-dochernih-zaprosov/1079 "2018-07-18T07:59:13Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![n.vedin](http://community.itop-itsm.ru/letter_avatar_proxy/v4/letter/n/ecccb3/32.png) [@n.vedin](http://community.itop-itsm.ru/u/n.vedin)\
**Post date:** [18.Июль.2018 07:59:13 UTC](http://community.itop-itsm.ru/t/avtomaticheskoe-sozdanie-dochernih-zaprosov/1079/1 "2018-07-18T07:59:13Z")

</div>

Добрый день!  
Хочу автоматизировать создание дочерних запросов по отношению к заявке создаваемой через пользовательский портал. Пример такого составного запроса: пользователь через портал находит нужную подкатегорию услуги и создает заявку типа “подготовка рабочего места”, при этом указывает кому (если не себе), где и когда; далее необходимо, чтобы создалось несколько дочерних запросов типа “создание учетных записей”, “подключение телефона”, “подготовка компьютера” и т.п.  
Сейчас этим занимается специальный человек, т.е. создает подзапросы и назначает разным инженерам, чтобы они параллельно начали работать над заявкой.  
На данный момент нет возможности даже создать дочерний запрос из формы редактирования текущего, только связать с существующим.  
Подскажите пожалуйста куда копать? Как приблизительно должна выглядеть схема реализации?

---

<div class="post-metadata">

**Author:** ![BorisFastovetskiy](http://community.itop-itsm.ru/user_avatar/community.itop-itsm.ru/borisfastovetskiy/32/236_2.png) [@BorisFastovetskiy](http://community.itop-itsm.ru/u/BorisFastovetskiy)\
**Post date:** [18.Июль.2018 09:12:17 UTC](http://community.itop-itsm.ru/t/avtomaticheskoe-sozdanie-dochernih-zaprosov/1079/2 "2018-07-18T09:12:17Z")

</div>

Добрый день.

Я подобное решение уже реализовывал. Из опыта могу сказать, что нужно очень хорошо продумать сам процесс, а именно:

1. В какой момент вы хотите создавать дочерние запросы (только при создании или при изменении статуса, например согласование).
2. Список задач всегда один и тот же или процесс может меняться в зависимости от введенных пользователем данных (шаблонизатор запросов).
3. Запрос использует стандартные поля формы на портале или Вы будете использовать кастомные поля . Нужно продумать и реализовать инструмент мапинга полей из шаблона и родительского тикета, а возможно и других объектов iTop

Это так на вскидку.

Из проблем с которыми столкнулся:

1. Чтобы не тормозить работу интерфейса портала пользователя, данный процесс должен быть асинхронным, т.е. необходимо использование какого то механизма очередей, иначе все это будет выполняться в контексте пользователя и он будет ждать отклика от системы по несколько минут.
2. Шаблоны задач реализовать не сложно, но для каждого процесса нужно хранить историю какая задача уже выполнялась, а какая нет, т.к. iTop плодит очень много событий связанных с изменениями тикетов, можно наплодить кучу дублируемых задач.
3. Если дочерние задачи имеют кастомные поля, то их заполнение огромный геморрой (простите за мой французский), особенно, если какое-то из них имеет атрибут обязательно к заполнению. Я нашел только костыльное решение в виде снятия и установки атрибута в момент заполнения полей.

Самим модулем делиться не буду, т.к. в период продуктивного тестирования найдено много багов и сейчас они устраняются.

Собственно класс для реализации механизма в iTop нужен следующий **iApplicationObjectExtension** , остальные классы вы для себя сами реализуете.

Вот пример моей реализации мапинга полей:

 ![image](http://community.itop-itsm.ru/uploads/default/original/1X/4e141fad3d6d2c8cb8ab3f5d0d63b1ddd4d81309.png)

---

<div class="post-metadata">

**Author:** ![BorisFastovetskiy](http://community.itop-itsm.ru/user_avatar/community.itop-itsm.ru/borisfastovetskiy/32/236_2.png) [@BorisFastovetskiy](http://community.itop-itsm.ru/u/BorisFastovetskiy)\
**Post date:** [18.Июль.2018 09:13:15 UTC](http://community.itop-itsm.ru/t/avtomaticheskoe-sozdanie-dochernih-zaprosov/1079/3 "2018-07-18T09:13:15Z")

</div>

Если есть время подождать, то когда я доделаю свое решение - поделюсь им с сообществом.

---

<div class="post-metadata">

**Author:** ![n.vedin](http://community.itop-itsm.ru/letter_avatar_proxy/v4/letter/n/ecccb3/32.png) [@n.vedin](http://community.itop-itsm.ru/u/n.vedin)\
**Post date:** [18.Июль.2018 12:04:49 UTC](http://community.itop-itsm.ru/t/avtomaticheskoe-sozdanie-dochernih-zaprosov/1079/4 "2018-07-18T12:04:49Z")

</div>

Оу… Спасибо за наводку!  
Да, оказывается процесс мы правда не продумали, очень дельные замечания.  
Время конечно есть, с моим скромным опытом кастомизации iTop я точно не реализую это быстрее…  
Даже ума не приложу, как процесс можно сделать асинхронным 🤔  
Если поделитесь с сообществом, то это будет просто круто 👍

---

<div class="post-metadata">

**Author:** ![ykol](http://community.itop-itsm.ru/user_avatar/community.itop-itsm.ru/ykol/32/309_2.png) [@ykol](http://community.itop-itsm.ru/u/ykol)\
**Post date:** [19.Июль.2018 10:47:29 UTC](http://community.itop-itsm.ru/t/avtomaticheskoe-sozdanie-dochernih-zaprosov/1079/5 "2018-07-19T10:47:29Z")

</div>

Всем привет, коллеги, а не хотите посмотреть в сторону создания не дочерних запросов, а нарядов на работу? Потому что описываемый процесс по itil должен как раз идти через work order или change и если создавать модуль для сообщества, то имхо нужно делать как положено 🙂

---

<div class="post-metadata">

**Author:** ![vladimir](http://community.itop-itsm.ru/user_avatar/community.itop-itsm.ru/vladimir/32/687_2.png) [@vladimir](http://community.itop-itsm.ru/u/vladimir)\
**Post date:** [19.Июль.2018 11:20:37 UTC](http://community.itop-itsm.ru/t/avtomaticheskoe-sozdanie-dochernih-zaprosov/1079/6 "2018-07-19T11:20:37Z")

</div>

Привет, @n.vedin!  
Пока @BorisFastovetskiy доделывает своё решение, посмотри на то, что предлагают сами разработчики iTop: [https://www.itophub.io/wiki/page?id=extensions%3Aitop-stencils](https://www.itophub.io/wiki/page?id=extensions%3Aitop-stencils).

---

<div class="post-metadata">

**Author:** ![n.vedin](http://community.itop-itsm.ru/letter_avatar_proxy/v4/letter/n/ecccb3/32.png) [@n.vedin](http://community.itop-itsm.ru/u/n.vedin)\
**Post date:** [19.Июль.2018 12:29:39 UTC](http://community.itop-itsm.ru/t/avtomaticheskoe-sozdanie-dochernih-zaprosov/1079/7 "2018-07-19T12:29:39Z")

</div>

Спасибо!  
Действительно стоит посмотреть 👍  
Попробую поставить этот модуль и осмотреться что да как.

---

<div class="post-metadata">

**Author:** ![saprunov](http://community.itop-itsm.ru/user_avatar/community.itop-itsm.ru/saprunov/32/417_2.png) [@saprunov](http://community.itop-itsm.ru/u/saprunov)\
**Post date:** [05.Апрель.2021 14:34:21 UTC](http://community.itop-itsm.ru/t/avtomaticheskoe-sozdanie-dochernih-zaprosov/1079/8 "2021-04-05T14:34:21Z")

</div>

я таки дико извиняюсь, но что-то лыжи не едут…  
двести раз перечитал мануал “Configurator for automatic object creation” и на оригинальном английском и в переводе, но нифига не понимаю… вроде все слова понятны, а в схему нифига не складываются.  
Случаем нигде не завалялось у кого-нибудь какое-нибудь более понятное для “тех кто в танке” howto желательно изложением “для бабушек”?  
ну или помогите разобраться с экстеншене

Спасибо!

---

<div class="post-metadata">

**Author:** ![vladimir](http://community.itop-itsm.ru/user_avatar/community.itop-itsm.ru/vladimir/32/687_2.png) [@vladimir](http://community.itop-itsm.ru/u/vladimir)\
**Post date:** [06.Апрель.2021 17:23:41 UTC](http://community.itop-itsm.ru/t/avtomaticheskoe-sozdanie-dochernih-zaprosov/1079/9 "2021-04-06T17:23:41Z")

</div>

Надо начать с чего-то. Какая исходная задача? На каком этапе затык?
