Google apps script onedit trigger не срабатывает, когда zapier добавляет строку

У меня проблема с тем, что мой триггер Google App Script не срабатывает должным образом. В моей таблице Google есть два листа. Один из них хранит запасы, а другой отслеживает количество заказов. У меня есть связь с Zapier, поэтому при размещении нового заказа он добавляет новую строку в лист «Заказы». Я хочу, чтобы моя основная функция выполнялась всякий раз, когда размещается заказ и на листе «Заказы» добавляется новая строка. В настоящее время он срабатывает, если я выхожу на лист и вручную редактирую информацию, но он не срабатывает, когда Zapier автоматически добавляет строку.

Вот код:

function onEdit(e) {
    var activeSheet = e.source.getActiveSheet();
    var range = e.range;
    if (activeSheet.getName() !== 'Orders') return;
    var productOrdered = orderID();
    var amountOrdered = orderQuantity();
    var productList = productArrayFunction();
    var productMatched = findMatchingProductId(productList,productOrdered);
    var rowNumber = lookup(productOrdered);
    var subtractInventory = subract(rowNumber,amountOrdered);
}

Возможно, я поступаю неправильно, но мне кажется, что это должно работать так, как задумано. Я не эксперт по кодированию, поэтому будем благодарны за любые рекомендации.

Запир не человек.

TheMaster 31.10.2018 14:09

Итак, есть ли способ запустить функцию после того, как Zapier создаст новую строку?

Logan Garske 31.10.2018 14:58

Не на onEdit(). Вопрос следует адресовать в службу поддержки Zapier. В зависимости от того, как он работает, он может вызвать другую функцию. Без исходного кода дополнения (?) Zapier (?) Я не могу сказать много.

TheMaster 31.10.2018 15:25

Возможный дубликат Запуск триггера onEdit при обновлении листа Zapier

TheMaster 22.03.2019 09:32
0
4
848
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Zapier использует API Google Sheets для обновления вашей таблицы Google. Однако событие onEdit требует, чтобы пользователь напрямую взаимодействовал с листом; это означает, что он не будет обнаруживать обновления, сделанные API.

Я предполагаю, что вы используете Zapier в качестве посредника между сторонним API / сервисом и Google Таблицами. Вероятно, вы можете подключиться к этому API / сервису напрямую с помощью скрипта Google Apps. Это позволит вам иметь больший контроль над тем, как данные поступают на ваш лист, и как ваши скрипты управляют и / или реагируют на любые изменения (вы даже можете отказаться от подписки Zapier).

Этот предполагает, что onChange запускается независимо.
TheMaster 22.03.2019 09:39

Как упоминал Dimu Designs, вы не можете использовать простой триггер для взаимодействия с API. Ссылка: https://developers.google.com/apps-script/guides/triggers/

Однако вы можете запустить свою функцию как следующий шаг в многошаговой функции в Zapier. Ссылка: https://zapier.com/help/code/#how-get-started-code-zapier

Итак, для ясности, я нет отвечаю на ваш вопрос; Я просто предлагаю решение.

Другие вопросы по теме