Два клиента получили один номер заказа

Логистический бот транспортной компании оформлял заказы через Google Sheets. Дело шло гладко, пока однажды два совершенно разных клиента не получили одинаковый номер заказа. Я сразу подумал на LLM - может, галлюцинировал. Но нет, галлюцинация была в архитектуре.

Воркфлоу читал последний номер через HTTP Request, который дергал фиксированную ячейку X6498. Когда заказов накопилось больше 6498, нод просто вернул старое значение из той же ячейки вместо того, чтобы сдвинуться вниз. Два заказа подряд получили номер 7042.

Фикс казался простым: заменить HTTP на Google Sheets Read Rows (читать весь столбец X), потом Code нод для Math.max(…numbers) + 1. Но это открыло урок: адрес ячейки в боевой системе - враг. Когда таблица растет, адрес не растет. Нужна динамика.

Мораль: фиксированный адрес ячейки - антипаттерн, когда ячейка хранит «последний», «сегодняшний» или «свежий» что-то. Всегда читай все, потом код вычисляет нужное. Оно немного медленнее, но гарантирует, что растущие данные не сломают логику.

#автоматизация #логистика #Google_Sheets #n8n #отладка #граблина_дня