Как в ПланФиксе передавать аналитики из одной задачи в другую
29.10.2021
Приветствую!
Сегодня хочу поделиться новым способом передачи аналитик из одних задач в другие. Пришлось повозиться при подготовке материалов. Убил около 8 часов на все изыскания, но оно того стоило.
Один из последних кейсов – нестандартный способ передачи аналитик из одних задач в другие.
Кейс уже опубликован на официальном блоге ПланФикса. Администраторы и интеграторы платформы используют способ, присылают примеры решения клиентских задач.
И благодарят за удачное решение.
Решили поделиться кейсом с вами. Начнем.
Степан Чельцов о передаче аналитик из задач в задачи
В чате энтузиастов ПланФикса возникла дискуссия, где человек пытался через Интегромат отправить аналитики одной задачи в надзадачу, и у него не получалось. Меня привлекла ситуация, потому что запросы на это иногда возникали, я чувствовал возможность реализации, но руки не доходили. Итак, к барьеру.
Нам понадобятся:
- кнопка процесса или сценарий для передачи данных аналитик;
- вебхук для приема данных;
- терпение и смекалка.
Вебхук
Сначала подготовим вебхук:
1. Тип получаемого запроса — POST-запрос в формате JSON.
2. Получаем URL для следующего шага.
3. Создаем переменную для задачи с единственным значением. У меня это task.
4. Создаем переменную для всех аналитик с выбором всех найденных значений. У меня это massiv[*].
5. Скроллим и выбираем пункт «Изменить существующую задачу», которую найдем по инфоблоку task или где у вас номер задачи.
6. Добавим в нее комментарий, который покажет содержимое нашего запроса. У меня это две строчки — {{Инфоблок.task}} и {{Инфоблок.massiv}}.
7. Сохраняем, больше ничего не делаем, дальше продолжим.
Сценарий передачи аналитик
Сценарий выглядит следующим образом:
1. Выбираем триггер запуска, у меня это кнопка процесса, у вас может быть добавление комментария или смена статуса, или заполнение полей, etc.
2. Готовим HTTP-запрос к вебхуку:
- указываем URL вебхука;
- называем массив аналитик как-то по-английски (у меня это massiv и вообще все аналитики задачи {{Задача.Все аналитики.JSON}});
- называем переменную с номером задачи, в которую отправим аналитики (у меня это task и номер надзадачи {{Задача.Надзадача.Номер}});
- Content-type указываем application/json.
3. Сохраняем сценарий/кнопку.
Это была предварительная подготовка, потому что мы еще не знаем, какая у вас прилетит аналитика, а может и не одного вида прилетит. Разберем сначала кейс с одной аналитикой и каким-то количеством строк.
Одна аналитика
Вот пример моей аналитики. Расположил вертикально специально, чтобы считать было удобно. А считать мы будем строки:
Чтобы разобрать массив аналитик, нам понадобится понять базовую логику работы с массивами — они исчисляются с нуля, а не с единицы. Эти числа нам очень понадобятся. То есть:
- Строка «Услуги» имеет номер 0.
- Строка «Спецификация» имеет номер 1.
- Продолжаем сами.
- Строка «Критерий приемки» имеет номер 11.
Вернемся к нашему вебхуку и сделаем следующие настройки, как у меня.
Что здесь важно заметить:
- все строки начинаются с massiv[*] — это для выборки всех-всех строк аналитик;
- через точку идет .data, в скобках какой-то номер — это тот самый номер из аналитик выше;
- и еще раз через точку идет .value — это как раз значение поля аналитики;
- в поле «Сохранить» стоит «Все значения» — это для получения вообще всех значений по всем строкам.
Вы можете спросить, раз мы такие умные, зачем же комментарий добавляем? Ответ: потому что даже опытный разработчик потратит время на поиски своих ошибок, а они обязательно будут. Такой комментарий на этапе отладки поможет понять, а есть ли в ваших инфоблоках вообще хоть что-нибудь. И с каждым разом вы будете все увереннее разбираться, где же напортачили.
Теперь прокрутим наш вебхук и начнем добавлять аналитику как у меня.
Что здесь важно сделать:
Ремарка: если у вас есть поля типа «Запись справочника», задача подберется из списка по названию. А вот если у вас поле типа «Задача» — по названию подберется первая попавшаяся по возрастанию задача с таким названием. Потому называйте задачи уникальными названиями.
Сохраняем наш вебхук и запускаем сценарий. У меня получилось сначала вот такое:
Номер я четко увидел, массив покрутил у себя в PyCharm’e, потом вывел себе все поля для проверки самого себя, получилось уже получше:
Ну и аналитики у меня добавились корректно:
Когда закончите настройки, не забудьте удалить комментарий в задачу-приемника, это нам больше не нужно для ежедневной работы.
Несколько аналитик
А теперь имитируем ситуацию, когда у вас несколько аналитик в задаче-источнике:
А вот что прилетело ко мне:
Данные добавились, но пользы мне от этого мало. Получились мусорные данные. Что же можно сделать?
В первую очередь, надо для себя уяснить, что для каждой аналитики придется делать свой вебхук, потому что вебхук не проверяет условия полученных значений, он их только устанавливает в поля. Следом важно понимать контекст событий, в которых появляется аналитика. Вы можете настроить триггер на добавление комментария, который содержит определенную аналитику:
Тогда и отправите аналитики самого комментария:
Возможно, что ваши ребята редактируют прикрепленные к задаче аналитики, их тоже можно взять отдельно. Если там всего один вид аналитик, конечно:
Зачем это все нужно?
Практическая польза таких операций:
- В подзадачах работают люди, информация из их аналитик важна вам в других местах.
- Вам надо перегнать данные одних аналитик в другие аналитики, с другим названием и сутью. Скажем, заседание директоров — аналитики протокола встречи, а данные нужны финансистам, руководителям и прочим в разных аналитиках и задачах. Или вы решили поменять логику работы, но старые аналитики удалять не можете — по ним есть отчеты и документы.
- В надзадаче у вас плановые значения, а в подзадачах — фактические. Их можно прокидывать для баланса показателей.
- Вы переезжаете с одного аккаунта на другой или необходимо в связке работать на несколько аккаунтов. По такому принципу мы будем передавать фактическое время клиентам на поддержке Планфикса, кого обслуживаем.
- Данные могут прилетать и не из Планфикса, но теперь вы можете разобраться на примере, как их приземлить правильно.
Если хотите глубже разбираться, приходите на мои воркшопы по вокруг Планфикса.
И, конечно, я готов помогать консультациями по ПланФиксу всем, кто в этом нуждается.