Под началом компании «Деломатика» мною был предложено решение, чтобы вести сбор тайм-шитов и учет проектных затрат в облачном портале Битрикс 24 у одной строительной компании.
Маркетплейс Битрикс 24 предлагают решать задачи ведения управленческого учета на портале путем специальных решений, построенных на функционале задач. Однако, данный подход исключает сложные цепочки согласования расходов.
В итоге, единственно верным вариантом оказалось построить решение построено на базе механизма бизнес-процессов и привязанных к ним вебхуков облачного портала Битрикс24.
Решение предполагает встроенные контроли: превышения списываемого времени более 8ми часов, согласование введенных данных, авто завершение процесса, если день ввода данных праздничный, выходной или не рабочий у конкретного сотрудника.
Последний контроль реализован при помощи вебхука. В рамках головного процесса в отношении каждого нового сотрудника запускается бесконечный цикл, который ежедневно вызывает вложенный бизнес-процесс, через который сотруднику и направляется форма заполнения тайм-шита. При старте бизнес-процесса и вызывается вебхук, который:
- через метод calendar.accessibitility.get проверяет факт выходного или больничного сотрудника;
- далее через timeman.schedule.get, — контролирует не является ли день праздничным в определенном рабочем графике;
- затем просто контролирует не приходится ли день на субботу или воскресенье через DATE(‘w’).
Если одно из этих условий выполняется, то вложенный процесс просто прерывается командой bizproc.workflow.terminate.
Бизнес-процессы завершаются записью данных в универсальные списки, которые далее обрабатываются в REST-API генераторами отчетов.
В итоге, клиент начал успешно вести учет своих затрат в облачном портале Битрикс 24.