Обработка выгрузки кодом
Обычный режим подходит для выбора полей, переименования, типов и вложенности. Если нужны фильтрация, группировка, вычисления или другая структура всего результата, переключитесь на Обработку кодом. Для этого требуются права управления выгрузками и редактирования сценариев.
Два режима обработки
| Режим | Назначение | Ограничение |
|---|---|---|
| Записи | Изменить значения каждой записи | Сохранить число и порядок записей |
| Набор | Группировки, фильтры, итоги, изменение числа объектов | До 10 000 входных записей и 16 МБ |
На вход код получает записи после сопоставления полей. Как получить их и вернуть результат, описано в SDK: преобразование выгрузки.
Код работает в песочнице, без доступа к сети и файлам. Лимит одного вызова: 30 секунд. Превышение размера набора останавливает операцию с ошибкой; результат не обрезается молча.
Проверка и сохранение
Нажмите Сохранить режим и код, затем Проверить на данных. Кнопка проверки может сначала сохранить текущие изменения. Проверяется выборка первых пяти записей. Время выполнения, включая проверку, входит в вычислительный расход подписки; использование AI учитывается отдельно.
Для файла и Webhook режим набора обрабатывает всю допустимую выборку. Для endpoint: только текущую страницу ответа. Поэтому итог по странице не равен итогу по всему каталогу. Не складывайте средние по страницам без учёта их размеров. Если нужен общий итог, используйте обработку набора для полного файла или Webhook.
Возврат к обычному режиму
Переключение на обычный режим отключает выполнение преобразования после сохранения. Код и его версия сохраняются. После смены режима снова проверьте результат - его форма может измениться. Одновременное редактирование другой вкладкой может привести к конфликту версий: загрузите актуальную версию перед повторным сохранением.
Python и другие языки
Редактор преобразования поддерживает PHP, JavaScript, TypeScript и Python независимо от языка сбора. При переключении языка сохраните новый исходник на выбранном языке. В Python используется def run(ctx):, вход читается через ctx.params().get("items", []), выход формируется словарями в ctx.emit(). Возвращаемое значение функции не формирует выгрузку. Полный справочник Python-преобразований. PHP-примеры этой статьи сохраняют PHP-синтаксис.
Логический предел набора составляет 16 MiB, но каждое сериализованное входное/выходное сообщение дополнительно должно помещаться в 12 MiB вместе со служебными данными. Фактически допустимый объём может быть меньше. При превышении сократите выборку или большие поля; система сообщает ошибку и не обрезает данные молча.