При запуске одного из скриптов, всегда сначала запускается один определенный, а после уже вызываемый
У меня в проекте есть три скрипта, которые ходят на сервер Озон за информацией. Один скрипт отвечает за выгрузку статистики по продажам. Второй за статистику по рекламе. Третий за выгрузку остатков.
Если я запускаю любой из скриптов, сначала отрабатывает скрипт с выгрузкой статистики по рекламе, а после уже вызываемый. Даже если я вызываю конкретную функцию из другого скрипта, все равно всегда отрабатывает скрипт с выгрузкой статистики по рекламе.
Триггеры проверил, ничего нет.
Составлял код при помощи chat-gpt, так как сам не являюсь специалистом по JS.
Вот ссылка на копию таблицы, в Apps Script. Если нужно еще что-то предоставить, скажите. https://docs.google.com/spreadsheets/d/1yg7SfphYcmpY_cqM8sPp62aKVGaPq4tGUPw3tWpFwkA/edit?usp=sharing
Все ключи API, SKU и пр. удалены по понятным причинам) Но если запустить любой код, видно, что ошибка возвращается с performance.ozon.ru, хотя в скрипте stocks или orders обращение идет к api-seller.ozon, т.е. понятно, что выполняться начинает скрипт ads
Ответы (1 шт):
Потому что у вас на листе ads есть такой код:
// Функция запуска всех процессов
function mainFunction() {
createSales();
}
// Запуск mainFunction
mainFunction();
Так вот при запуске любого скрипта с любого листа, понятное дело, будет запущена функция mainFunction()
, которая запустит createSales()
, а та в свою очередь запустит запрос к https://performance.ozon.ru:443/api/client/statistics/json
.
Если по простому, то при запуске любого скрипта с любого места этого проекта - движок GAS сначала соберет данные со всех листов в проекте, условно соединит их воедино и сначала выполнит то, что находится в глобальной видимости, например у вас это :
// Объявления переменных
var reports = {}; // Объект для хранения отчетов по каждой кампании
var globalTokenData; // Глобальная переменная для хранения токена
var globalUuid; // Глобальная переменная для хранения UUID отчета
// Запуск mainFunction
mainFunction();
И только потом будет запущена та функция, что вы выбрали и запустили руками