Бизнес-процессы: как переименовать файл с помощью вебхука

У меня есть статья с примером бизнес-процесса, который переименовывает загруженный файл.

Переименовать файл можно так же с помощью вебхука, и это позволяет немного упростить схему бизнес-процесса.

Как это сделать

Создаем входящий вебхук с доступом к диску и хранилищу данных:


Для переименования файла используем метод rest api disk.file.rename. У метода 2 параметра: id - идентификатор файла и newName - новое имя файла.

Итоговый URL будет выглядеть так: https://адрес_портала/rest/1/код_вебхука/disk.file.rename.json?id=fileId&newName=newFileName.

Соберем бизнес-процесс из двух действий: Загрузить в диск и Webhook, который переименует загруженный файл:


В поле Хендлер вебхука в параметре id указываем id файла из дополнительных результатов и произвольное имя файла в параметре newName:


Запускаем бизнес-процесс и проверяем его работу. Мой файл был загружен на общий диск и переименован:


На что нужно обратить внимание

Действие Webhook в бизнес-процессе выполняет запрос из поля Хендлер и не возвращает никаких данных. Это значит, что в случае, если запрос будет выполнен с ошибкой, файл просто не переименуется и мы об этом не узнаем. Например, такое может быть, если в новом имени файла будут присутствовать недопустимые символы.

В такой ситуации поможет только очень тщательное тестирование процесса, логирование получившегося запроса и проработка возможных ошибок.

Комментарии

  1. Здравствуйте, Любовь. Большое спасибо за пример. Все сделал, но такое ощущение что вебхук не срабатывает, файл не переименовывается. Как-то можно проверить сработал вебхук или нет?

    ОтветитьУдалить
    Ответы
    1. Добрый день!
      Для проверки можно вывести получившийся адрес вебхука себе в уведомление и скопировать его в адресную строку браузера. В браузере будут выводиться детали: либо успешно выполненный запрос, либо сообщение об ошибке.

      Удалить
  2. Любовь, добрый день. Спасибо что делитесь опытом. Подскажите пожалуйста, а если файл не загружается на диск а формируется из шаблона прямо в сделке,в ручную или автоматически (понимаю, при этом файл физически, формируется тоже на диске) возможно ли его переименовать?

    ОтветитьУдалить
    Ответы
    1. Добрый день!
      У меня была такая задача.
      Файл формировали из шаблона автоматически, через бизнес-процесс.
      Насколько я помню, потом получали ID этого файла из доп результатов, копировали файл в другую папку, переименовывали и работали с ним - так требовалось по ТЗ. Но кажется, исходный файл при этом оставался с исходным именем и переименовать не получалось. Сейчас уже не уверена.

      Удалить
  3. Добрый день! У меня такой вопрос, даже не вопрос, а проблема )))
    Необходимо вывести множественные поля в шаблон документа и это оказалось большой проблемой.
    Например: Есть проект, каждый проект с абсолютно разыми этапами, исполнителями(сотрудники на портале) и датами.

    Этап исполнитель Дата
    --------------------------------------------------------------------------------------------
    Заключение Иванов А.А. 10.10.2021
    контракта Петров ВВ
    Сидоров ЕЕ
    ----------------------------------------------------------------------------------------------
    Подписание Савчук ОО 21.10.2021
    контракта Савельев АА
    ----------------------------------------------------------------------------------------------
    и т. д. их может быть и 40 и 50

    Думал как это сделать, игрался с полями, добавление через бизнес-процесс, но 40, 50!!!
    И, попытался это сделать через смарт-процесс, создал процесс, добавил необходимые поля и... все получилось практически идеально )) но, всегда есть но. Для того, чтобы они появлялись в шаблоне их необходимо было добавлять к сделке, хотя, добавляя в сделке процесс, он автоматически подтягивал сделку в процессе.
    В сделке добавил поле с привязкой к CRM смарт-процесс. Создавая несколько этапов в смарт-процессе, я могу в поле сделке их добавлять. Как говорил ранее, есть но!!! В этом поле выводятся все добавленные процессы, которые относятся к сделке и не относятся, появляется путаница. Для идеала нужно, чтобы в поле автоматически появлялись созданные смарт-процессы, которые добавлялись в сделке, как по Вашему мнению это можно сделать?

    Заранее безумно благодарен!!!

    ОтветитьУдалить
    Ответы
    1. Этап исполнитель Дата
      --------------------------------------------------------------------------------------------
      Заключение________Иванов А.А.________ 10.10.2021
      контракта __________Петров ВВ
      ___________________Сидоров ЕЕ
      ----------------------------------------------------------------------------------------------
      Подписание ________Савчук ОО _________21.10.2021
      контракта __________Савельев АА
      ----------------------------------------------------------------------------------------------

      пробелы здесь удаляются

      Удалить
    2. Здравствуйте)
      Пока, к сожалению, нет возможности разобраться в задаче. Со смарт-процессами пока мало работала. Если будут идеи - напишу)

      Удалить
  4. Добрый день. Все получилось, но есть одно "но", может Вы подскажете. Если загружать сразу 3-4-5 файлов, переименовывается только один, остальные остаются с прежними названиями. Как-то можно реализовать все что б переименовывать сразу несколько с добавлением какого-то индекса?

    ОтветитьУдалить
    Ответы
    1. Владимир, добрый день!
      Если файлов несколько, то нужно их обойти с помощью итератора и на каждой итерации вызвать вебхук для переименования.

      Удалить
  5. Спасибо за статью. Впервые опробовал вебхуки.
    Реализовал вебхук для сообщения в чат группы из бизнес-процесса.

    Почему-то нет стандартного активити, которое могло бы писать в чаты сообщение.

    ОтветитьУдалить
    Ответы
    1. Да, пока либо вебхуком, либо плагинами из Маркета можно отправить сообщение в чат.

      Удалить
  6. Вопрос:
    При переименовании файла - мы меняем и его разрешение (можем менять).
    А как сделать, чтобы формат файла не менялся при переименовании, при условии - что загружаемые файлы могут быть разных форматов и мы не можем прописать тот же docx...

    ОтветитьУдалить
    Ответы
    1. Добрый день!
      Не совсем поняла вопрос.

      То есть надо переименовать файл, но при этом сохранить исходное расширение?

      Удалить
  7. Здравствуйте, спасибо за ценные советы
    Я нашел то что я хотел (хотя я думал что это невозможно, но это Битрикс24 с колоссальными возможностями)
    У меня есть ещё проблема во внедрении.
    Как можно настроить шаблон товарного чека в Битрикс24 для кухни (без подключения кассы).

    ОтветитьУдалить
  8. Привет шаблона
    Номер заказа

    ---------------------------------
    Товар 1 сумма
    Товар 2. Сумма

    Итого:. Сумма
    ================
    Дата:

    Телефон компании:
    Адрес:

    ОтветитьУдалить
    Ответы
    1. Добрый день!)
      К сожалению, не подскажу.
      В последнее время в основном работаю с бизнес-процессами.

      Удалить
  9. Здравствуйте! Спасибо за советы!
    Вы не реализовывали задачу - с помощью rest добавить товарные позиции из сделки в смарт-процесс ?
    Я так понимаю метод crm.item.productrow.add - а как правильно его использовать в вебхуке не получается разобраться

    ОтветитьУдалить
    Ответы
    1. Получилось частично разобраться, с помощью приложения из маркета).
      А вот как прописать параметры правильно в стандартном активити WebHook? помогите, пожалуйста.

      Метод crm.item.productrow.add
      Параметры:
      {
      "fields": {
      "ownerId": 26,
      "ownerType":"Tbe",
      "productId": 2,
      "price": 2000,
      "quantity": 4
      }
      }

      Удалить
    2. /crm.item.productrow.add.json?ownerId=26&ownerType=Tbe&fields[productId][]=2&fields[price][]=2000&fields[quantity][]=2
      В таком виде не работает( что не так?

      Удалить
    3. Добрый день!)
      Если ещё актуально, то должно сработать так:
      /crm.item.productrow.add.json?fields[ownerId]=1&fields[ownerType]=Ta7&fields[productId]=1 только с Вашими значениями.
      У меня товарная позиция добавилась

      Удалить
    4. Спасибо! Получилось!

      Удалить
  10. топовый контент

    ОтветитьУдалить
  11. Здравствуйте! Может быть сталкивались с таким вопросом - на определённой стадии, автоматически, добавить сотрудника в чат сделки/лида.

    ОтветитьУдалить
    Ответы
    1. Добрый день!)
      Для облака или коробки?
      Для коробки есть пример кода.

      Удалить
    2. Здравствуйте! Для облака

      Удалить
    3. Сотрудника в чат сделки/лида можно добавить с помощью im.chat.user.add.
      Но получить ID чата сделки/лида, который нужно передать в параметр CHAT_ID, можно только с помощью дополнительных доработок или с помощью плагинов из Маркета.

      Удалить
    4. Спасибо большое за ответ!

      Удалить
  12. Здравствуйте.
    Подскажите, а как с помощью вебхука заполнить множественное поле типа "Привязка к сущности CRM"?
    Мне нужно привязать поле к CO_123 и к C_123 например.
    Спасибо.

    ОтветитьУдалить
    Ответы
    1. Добрый день!
      А заполнить множественное поле нужно у какого объекта?

      Удалить

Отправить комментарий

Популярные сообщения

Расширение возможностей бизнес-процессов с помощью вебхуков: работа с задачами