Добрый день коллеги. Можно ли как-то вытащить из истории сделки ответственного за изменение пользовательского поля в бизнес процесс с помощью php кода?
Если можно это сделать без php кода, подскажите как это можно реализовать?
Исходящий вэбхук на изменени сделки отправляет вам ID сделки, по которому можно вытащить Сделку и получить в поле
"MODIFY_BY_ID" => "13"
ИД сотрудника, которое можно куда нибудь в переменную запихать. Вести собственный журнал изменений в нужном поле, поскольку в АПИ методов доступа к записям в истории нет, по крайней мере в документации.
написал: Исходящий вэбхук на изменени сделки отправляет вам ID сделки, по которому можно вытащить Сделку и получить в поле
"MODIFY_BY_ID" => "13"
ИД сотрудника, которое можно куда нибудь в переменную запихать. Вести собственный журнал изменений в нужном поле, поскольку в АПИ методов доступа к записям в истории нет, по крайней мере в документации.
Антон, подскажите пожалуйста более подробно как это можно реализовать
Мне постоянно приходится вешать небольшие заплатки в облачный Битрикс, я для этих целей приспособил фрэймворк Lumen c собственным пакетом доступа с API Битрикс24.. с его помощью я решил бы задачу за 3-4 часа. https://github.com/anton-zaharov/bitrix24api Суть решения: 1. Создаем исходящий вэбхук на событие ONCRMDEALUPDATE, ONCRMDEALADD Пишем для него хандлер номер 1
В хуке битрикс отправляет нам id измененной сделки. Качаем по id сделку, смотрим, есть ли изменения в нужном поле и если есть - сохраняем в локальной базе данных значение отслеживаемого поля и код сотрудника, который внес изменение (MODIFY_BY_ID) 2. Создаем хандлер №2, который будет отвечать на вэб хук из робота сделки, в момент истины так сказать, и сохранять список всех, кто вносил изменение в отслеживаемом поле, в какое нибудь другое поле. Поскольку Битрикс24 не принимает значения переменных из хуков, нужно определить механизм, как эти значения засветить в битрикс. но это уже зависит от более дальних целей, от того "а что в итоге нужно". Ведь если нужно например отправить письмо, то не обязательно значение возвращать, можно из своего локального приложения письмо и отправить или в телегу месседж бросить.
Можно сохранять свою историю не в локальной базе а в каком нибудь пользовательском поле, но в задаче напрашивается. что история должна быть полноценной: кто внес, когда внес, что внес.. А составных полей в Битрикс24 нет, то есть надо еще и сделать собственное пользовательское поле, но надо ли оно?
Да, кстати, есть же возможность написать собственного робота и в нем есть возможность вернуть данные. Еще не пробовал эту фичу, но уже научен, что пока сам не проверишь, ничего не обещай - документацию пишут и читают по разному, Попробую эту фичу сегодня реализовать, напишу что вышло
Как и ожидалось, по документации что-либо получить из обработчика в робот не получилось. робот не выполняется, все время крутится колесико что он в процессе.
Но заявлено многообещающе "RETURN_PROPERTIES Массив возвращаемых значений робота. Параметр управляет возможностью ожидать ответа приложения роботом и работать с данными, которые придут в ответе." !!!!
Как вернуть данные - разобрался. для этого есть метод 'bizproc.event.send'. Робот нормально отпахал. Но где лежат полученные данные - пока не понятно, жду и ищу
Искал недолго. В списке подстановочных параметров любой активити появится (или уже есть) группа Робот и в ней будет присутствовать наш отклик. То есть все четко.
Итого, окончательный ответ в этой ветке будет такой: 1. С помощью исходящего вэбхука отслеживаем, кто внес изменение в нужном поле. 2. С помощью встраиваемого робота возвращаем нужные значения в бизнес-процесс.