Каким образом можно получить идентификаторы всех файлов, находящихся в определенной папке на диске с помощью бизнес-процесса?

Как я могу получить список файлов из указанной папки с файлами в БП CRM по ID папки, который хранится в поле сделки, чтобы затем использовать эти файлы в другом БП для отправки по электронной почте? Файлы загружаются напрямую в папку из-за ограничений формата в БП CRM.
  • 26 марта 2024 г. 10:49
Ответы на вопрос 2
Для того чтобы получить идентификаторы всех файлов, находящихся в определенной папке на диске с помощью бизнес-процесса в CRM, можно использовать следующие шаги:

1. Создать бизнес-процесс, который будет получать ID папки с файлами из поля сделки.
2. Использовать API или стандартные функции CRM для получения списка файлов из указанной папки по её ID.
3. Далее можно обработать полученный список файлов и использовать их в дальнейших шагах бизнес-процесса, например, для отправки по электронной почте.

Для работы с файлами в папке в БП CRM, возможно придется использовать API CRM или подобные инструменты для доступа к файлам и их обработки.

Например, в случае использования Bitrix24, можно воспользоваться методом "disk.folder.getchildren", чтобы получить список файлов из определенной папки по её ID. Полученный список файлов можно затем использовать в следующих шагах бизнес-процесса.

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

В любом случае, для реализации данной задачи рекомендуется обратиться к документации CRM, а также консультанту или разработчику по вопросам работы с файлами и API в рамках бизнес-процессов.
Попробовал решить задачу через PHP-код и результат записать во множественную переменную. В итоге пустой ответ. не могу понять где ошибся: 

\Bitrix\Main\Loader::includeModule('disk');
\Bitrix\Main\Loader::includeModule('crm');

// Получение ID папки из поля документа сделки
$folderId = $this->GetDocumentField('UF_CRM_1700572757268');

if ($folderId) {
$folder = \Bitrix\Disk\Folder::loadById($folderId);
if ($folder) {
$files = $folder->getChildren([
'filter' => ['TYPE' => \Bitrix\Disk\Internals\ObjectTable::TYPE_FILE],
'select' => ['ID'] // Получаем только ID файлов
]);

$fileIds = [];
foreach ($files as $file) {
$fileIds[] = $file->getId();
}

// Установка ID файлов в переменную 'files' для бизнес-процесса
$this->SetVariable("files", $fileIds);
}
}
Похожие вопросы